Lately I've been messing with a somewhat new "gadget", the ESP8266
This SoC has Wi-Fi and serial connection, people are using it has a standalone (controlling lights, getting data from sensors) or just adding Wi-Fi to their arduino project for 5€ (or less). It can be programmed in C using the arduino ide or using their SDK or in lua.


But what does this have to do with a calculator forum? Since I began using graphic calculators in school I always wanted to find a way to communicate (wireless) with another calculator OR Wi-Fi, and this way i could get resources to use in the class (or cheating Evil or Very Mad ) eheh
Well now that I no longer use calculators (university classes barely need them) i could get to some hacking
The idea is simple, the ESP8266 takes care of all the WiFi communication and just needs to send the info it gets to the calculator over serial. The calculator then process the receive data and shows the received data.

The problems:
I know zero about programming for the calculator
The CG20 wont be able to show most images so its going to be only text browser probably

Later on ideas, maybe IRC Client?

I did a search before about using the serial port with microcontrollers and found this http://www.casiopeia.net/forum/viewtopic.php?f=11&t=1557
Looking forward for this project Very Happy
Have you taken a look at globalCALCnet, WiFi for TI calculators via the Spark Core and globalCALCnet, and Gossamer? I had a lot of fun using the Spark Core to get calculator internet working, and I wouldn't be surprised if the ESP8266 was another good choice. In fact, Cemetech member Ivoah sent me one, but I haven't had a chance to mess around with it yet. Since the Prizm natively has an RS232 (TTL) serial port, and the ESP8266 speaks serial, you don't even need to do any work to make the Prizm and the ESP8266 talk! Good luck, and I hope we'll be able to help you.
KermMartian wrote:
Have you taken a look at globalCALCnet, WiFi for TI calculators via the Spark Core and globalCALCnet, and Gossamer? I had a lot of fun using the Spark Core to get calculator internet working, and I wouldn't be surprised if the ESP8266 was another good choice. In fact, Cemetech member Ivoah sent me one, but I haven't had a chance to mess around with it yet. Since the Prizm natively has an RS232 (TTL) serial port, and the ESP8266 speaks serial, you don't even need to do any work to make the Prizm and the ESP8266 talk! Good luck, and I hope we'll be able to help you.


So this idea was already made but with a different device, the only issue I find is that I barely see any of these things on casio calcs, is there any main reason, harder to code? Less interest?
You should get a look at that ESP Razz if you need help with it, i can help you.
dicamarques wrote:
KermMartian wrote:
Have you taken a look at globalCALCnet, WiFi for TI calculators via the Spark Core and globalCALCnet, and Gossamer? I had a lot of fun using the Spark Core to get calculator internet working, and I wouldn't be surprised if the ESP8266 was another good choice. In fact, Cemetech member Ivoah sent me one, but I haven't had a chance to mess around with it yet. Since the Prizm natively has an RS232 (TTL) serial port, and the ESP8266 speaks serial, you don't even need to do any work to make the Prizm and the ESP8266 talk! Good luck, and I hope we'll be able to help you.


So this idea was already made but with a different device, the only issue I find is that I barely see any of these things on casio calcs, is there any main reason, harder to code? Less interest?
You should get a look at that ESP Razz if you need help with it, i can help you.


Lack of interest is probably the leading cause. As TI pretty much has a monopoly on the education market, every student has a TI graphing calculator.
Ivoah is absolutely right but i have a feeling part of the problem is that Casio while quite popular in Europe it is still smaller and more fragmented (at least language wise) market than US. So less developments are coming out for Casio and frequently when developers move to other platforms or projects or unis nobody is there to continue their know how etc. If unis allowed graphical calculator i think the development would be more continuous.

dicamarques, remember to supply 3.3v when playing with your wifi board - I read higher voltages destroy it.

On the other hand releasing something for cheating would be quite counter productive as the calculator could get banned. So making such wireless modules externally recognisable to prevent cheating would be most ethical. Then exam modes theoretically takes care of that too. I started developing a chat interface to work over serial connection already and am thinking of ways of incorporating it with runmat but may end up never finishing or releasing it. IRC or web browsing will be even harder I think
amazonka wrote:
Ivoah is absolutely right but i have a feeling part of the problem is that Casio while quite popular in Europe it is still smaller and more fragmented (at least language wise) market than US. So less developments are coming out for Casio and frequently when developers move to other platforms or projects or unis nobody is there to continue their know how etc. If unis allowed graphical calculator i think the development would be more continuous.

dicamarques, remember to supply 3.3v when playing with your wifi board - I read higher voltages destroy it.

On the other hand releasing something for cheating would be quite counter productive as the calculator could get banned. So making such wireless modules externally recognisable to prevent cheating would be most ethical. Then exam modes theoretically takes care of that too. I started developing a chat interface to work over serial connection already and am thinking of ways of incorporating it with runmat but may end up never finishing or releasing it. IRC or web browsing will be even harder I think


The school I went to had some contract with casio and we could get the calculators slightly cheaper than buying it in any store, and the professor barely knew how to work with any Texas.
Thanks, I already knew that Razz I already have a working weather station and experience with electronics

Cheating in an exam would be kinda hard, this would pop up the top of the calculator and would be like the TI module, only if you had a dumb professor that wouldn't notice your calculator being a bit bigger xD

Is the calculator able to send anything over serial? The main idea is to make the ESP a relay, everything it receives it sends to the calculator, and how the ESP should be programmed, with AT firmware and the calculator just sends AT commands or with a custom firmware and the calculator sends custom commands
I was once pointed to BASIC commands to do serial communications but at the end I believe they were for particular devices not calculator to calculator commands, but may be useful for your idea although i have never done anything in BASIC.
Just as a test I used FXTerm from @MPoupe https://www.cemetech.net/forum/viewtopic.php?t=8119 to see if the calculator could read the ESPs serial directly



Was going to show it printing hackaday's retro page but for some reason it wasnt reading the serial
That's actually really awesome; nice job! I'm glad that MPoupe's program was able to help.
Here's the calculator showing Hackaday's page
Nice job! I really like how you connected the 1/8" jack to the breadboard, ingenious!
That's actually pretty interesting !
I'll keep an eye on that ! Smile
Are you going to work on interpreting the html and make a full on browser kinda like gossamer? maybe even better than gossamer because it'll be color and probably faster cause there's no extra work to get the two to communicate! I also have a casio prizm so I could help test your program if you needed it Smile I wish you the best of luck! Would you be able to post a schematic of what you have on your breadboard?
Your and mpoupe's work looks quite impressive.

Browser can become more than text browser given that jpeg, png etc images viewing has been successfully implemented in other add-ins. Also i wonder if the wifi module's firmware itself can support some of the basic html interpretting etc.

Speaking about schematics I wonder how power hungry is the proposed wifi module and how it would be handled?
I think you would need some kind of external battery after looking at some reviews. It uses a lot of current.
Nemhardy wrote:
That's actually pretty interesting !
I'll keep an eye on that ! :)
Hi Nemhardy, just recognised your name - do you have any feedback on my lock add-in - I have actually updated it recently in case you still wanted to test it - i just don't know many other people with prizm and interested in this type of add-in.

Sorry for slight off topic above, but given the power etc requirements with wifi it just ties up with some of my backplate redesign topic and my updated lock add-in even tries to incorporate possible elimination of reset button if someone needs it in the future.

Now properly back to wifi proposal by dicomarques - I don't have any of the electronic components to try out the fxterm - would you mind sharing a video how prizm handles the input of the web addresses please? I wonder how sending and receving via serial is handled. In the chat add-in i'm working on i have to continuously read serial in order not to miss any incoming messages which makes handling non-blocking input, then own messages sending and screen refreshing harder - but im doing it purely between two calculators via 3-pin cross cable supplied with the prizms so maybe your board or Mpoupe's fxterm provide some good solution for this.

Thanks again for sharing your progress
amazonka wrote:
Nemhardy wrote:
That's actually pretty interesting !
I'll keep an eye on that ! Smile
Hi Nemhardy, just recognised your name - do you have any feedback on my lock add-in - I have actually updated it recently in case you still wanted to test it - i just don't know many other people with prizm and interested in this type of add-in.

Sorry for slight off topic above, but given the power etc requirements with wifi it just ties up with some of my backplate redesign topic and my updated lock add-in even tries to incorporate possible elimination of reset button if someone needs it in the future.

Now properly back to wifi proposal by dicomarques - I don't have any of the electronic components to try out the fxterm - would you mind sharing a video how prizm handles the input of the web addresses please? I wonder how sending and receving via serial is handled. In the chat add-in i'm working on i have to continuously read serial in order not to miss any incoming messages which makes handling non-blocking input, then own messages sending and screen refreshing harder - but im doing it purely between two calculators via 3-pin cross cable supplied with the prizms so maybe your board or Mpoupe's fxterm provide some good solution for this.

Thanks again for sharing your progress

It WILL reduce your battery life, but its not that much that you'll need extra power, after all this just need 3v to 3.7v (thats really a limit, any higher and you risk breaking it). The schematic is pretty basic:



The code I used (for this test I programmed it with the arduino IDE, much simpler for me):

Code:
 //http://cemete.ch/p247594

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
const char* ssid     = "Stargate_wOw"; //your WIFI Name
const char* password = "12345678"; //WiFi Password
const char* server = "retro.hackaday.com"; //Website to show

WiFiClient client;

void setup() {
  Serial.begin(115200);
  delay(10);
  // We start by connecting to a WiFi network

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected"); 
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void loop() {
   if (client.connect(server, 80)) {  // http server is running on default port 80
    Serial.println("connected");
    client.print("GET /index.html");  // PUT HERE YOUR SERVER URL e.g.
    client.println(" HTTP/1.1");
    client.print("Host: ");   // http server is running on port 80, so no port is specified
    client.println(server);
    client.println("User-Agent: Mihi IoT 01");   // PUT HERE YOUR USER-AGENT that can be used in your php program or Apache configuration
    client.println(); // empty line for apache server
    int i = 0;
    while ((!client.available()) && (i < 1000)) {
      delay(10);
      i++;
    }

    while (client.available())
    {
      String Line = client.readStringUntil('\r'); //here we read the client output and print it to the console
      Serial.print(Line);
    }
    client.stop();
  Serial.println();
  Serial.println("closing connection");
  }
  delay(20000);
}


Also that reminds me, we can make mesh networks with the esp, it wouldnt be a bad idea to use it as a wireless Calc To Calc communicator. It Also supports Station mode (as in it needs a wifi router to connect to) or Access Point mode (as in it is the router itself and any wifi device can connect to it)
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement