Don't have an account? Register now to chat, post, use our tools, and much more.
I made a video of this a while ago and was suggested to post it here by a user of the name TheLastMillennial.

https://youtu.be/XhAPQs9kyEw

Code:

https://github.com/BoomBrush/Calcucall

Some background:

So basically in grade 12 I was bored in math class with a friend, and I was pretending to use my Ti84 calculator as a phone just being silly. I went to a public primary school, I did this all the time. Then as a joke I mentioned I do actually have an arduino capable 2G module (SIM900) that I could use to turn it into a phone however it wouldn't be very good as its not concealed and would require a huge antenna and also 2G services no longer exist in Australia. The SIM900 arduino shield I have lets you plug in some headphones and you can initiate a phone call from the arduino or send texts, even make HTML requests. Then it made my friend question me such as "why" and me being me I took that as a challenge. So I try anyway just for some fun before 2G shutdown for good and I kinda got stuck, the arduino is receiving packets from the I/O port but I can't seem to decode them into any of the data i'm sending. I kinda just abandon the project.

I recently got a SIM5320E module, which is an arduino compatible 3G mobile, basically the same thing as the SIM900 but uses 3G instead of 2G and has built in GPS. So I decided to try again. When I googled around for some libraries, I found one called ArTICL which seemed to let me transfer lists of numbers really easily. I tried it and hey it works! The rest is pretty easy because all you just need to get the arduino are is phone number and the SIM5320E module does the rest, connecting to cell towers etc.

How it works:

The program looks at the length of the list first, and if its a length of 1 then it determines whether to answer or hang up the call. If the length is 3, it makes a call. So from the calculator, you do Send({1234, 567, 890}) with the link cable plugged in and the arduino would be able to get the result as 3 separate integer variables of values 1234, 567, 890. The library tells you the length of the list you send, in this case it would be a length of 3. However, when answering and hanging up calls the calculator sends Send({0}) for hang up or Send({1}) for answer.

The link cable is simply soldered to an arduino nano with a SIM5320E 3G module attached to it.

Continuing issues:

The microphone produces some weird helicopter noise when heard from another phone, no idea why. Perhaps a better microphone would fix that, or some shielding of the wires from the antenna. Also, the earpiece for listening to another phone doesn't work, however it rings. So it's definitely connected properly because you can hear the buzzer but it's almost like you have muted the other person. I know on the SIM5320E there is a mute command but the making the volume max doesn't change anything.

Practical Uses:

Obviously, a calculator phone is not practical. I made it for a joke and because I was bored and I was putting off my english assignment. With AAA batteries, it lasts probably 10 minutes before needing to be recharged. I made it as a demonstration of the technology and to show off what kind of projects you can use arduinos and cell mobiles for. My mum is a grade 3 teacher and I showed her students this. They absolutely loved the project because they could directly relate to it. I remember pretending to use a calculator as a phone in primary school, and when I asked her students who else has done this about 90% of the class put their hands up. I used it as a demonstration of technology and how even crazy ideas can be made. This is why I made a video of it.

The SIM5320E module is actually capable of HTTP/HTTPS, email, web requests, ftp (lots more) as well as just making calls and texts WITH a built in GPS. So if I wanted to, I could technically make a calculator which gives me a live updating distance between myself (using the GPS) and Los Angeles by using the web requests. Then store it inside a text file in a remote ftp server or something crazy.

Where is it now?

Sadly, taken apart. The SIM5320E module is expensive (\$70aud each), and I already had to order a second one because I destroyed the first one by connecting the antenna+ to gnd or 5V while it was transmitting, and it didn't turn on after that. I am currently working on putting it in my mums car to use as a GPS tracker as the SIM5320E has a built in GPS.

More projects!

I'd imagine some people are quite interested in my projects. I have recently finished making my own stroboscope (See William Osman's video, its similar to that) I will be making a video on that probably this weekend and uploading next week.

I might also make a video on the GPS tracker I talked about in my mum's car.

This is pretty sweet. I watched your video, and found it very interesting!

I look forward to seeing your future projects!
That's a lot of hardware you crammed into the calculator. Thanks for sharing (and compliment your cameraperson for some good work in that video)!

For anybody wondering, the quoted SIM5320E module appears to be similar to one available from Adafruit, but not exactly the same hardware.

I wonder if it's would be possible to do away with the Arduino, since you can speak I2C on the calculator's link port with a little bit of software work and the GSM module has an I2C interface. A scan of the manual (I really dislike their documentation for that hardware!) seems to indicate it's meant to be controlled through a UART only (and you can drive I2C with AT commands on the UART), so that's no good. Might still be possible to control it with a software UART on the calculator (down to 300 baud, which should be pretty easy to do) or over USB though..

You could probably also turn it into a gCn client with relative ease, since you get TCP/IP functionality out of the module.

You mention the calculator is unresponsive when the Arduino is connected to the link port but not powered on. The calculator pulls these lines up normally, and when they're pulled down the software assumes that something is trying to communicate with it and goes unresponsive- it's not a great design choice: a common source of problems is when people get something stuck in the link port that pulls one of the lines down and they can't use the calculator.

Anyway, applying an idle pull-up to an AVR GPIO (on your arduino) will cause current to flow through the I/O clamping diode on the pin to VCC (figure from the ATmega328P datasheet):

Your Arduino's VCC is probably tied to GND while it's powered off, so by applying the pull-up voltage to the unpowered AVR you're effectively dissipating 5V across ~10kΩ to ground through the AVR's I/O pins. It's not enough current to damage the chip, but it will pull the line low and confuse the calculator's software.

A quick schematic I drew up that might be a little clearer:
I was shown your video by someone, and I was suitably impressed. I have a long history of cramming hardware into calculators, so this appealed to me a great deal. I was also gratified to see that you used my ArTICL library for the project; any suggestions or comments on it would be greatly appreciated. Good luck on those upcoming projects: I hope you'll share them with us (perhaps as you go?).
This is super cool! Keep up the good work, Boombrush! I look forward to using my Arduino to good use and using mycalculator to call and text Mom instead of begging Mom for a phone.
Awesome stuff, I was annoyed when 2G was switched off in AU since those SIM900 modules were really useful!

Also nice working fitting everything inside a calculator too .

(Also sweet, another Aussie?!)

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.

»
» All times are GMT - 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