Casio Calculator External Memory (Casio FX92+)

by Aditya Chugh in Circuits > Arduino

873 Views, 3 Favorites, 0 Comments

Casio Calculator External Memory (Casio FX92+)

github-intro.jpg
Casio Calculator External Memory (Casio FX92+)

The inspiration for this project came initially from the Casio 92B, which was the recommended calculator for the humanities in Belgium and France. Unfortunately the 92B, except for its elegance, was not very impressive...

Having recently discovered the 92+ and its algorithmic mode just after high school, I was happy to see that "the" calculator that had been with me for six years was going to keep me busy for a while! ...The only disappointment was of course that the 92+ has no internal memory. So I thought it would be interesting to create an external, detachable memory module to be able to save those long programs that become a heavy task to rewrite. Although this module can be compatible with any calculator (or any device with a matrix keyboard), it was primarily designed for the Casio FX-92+.

Supplies

- 1x Arduino Nano

- 4x CD4066 Quad Bilateral Switch

- 5x push button

- 2x 10k ohm resistor

Schematics & Build

schematic.png
4066.gif
pads.jpg
IMG-7876.jpg
IMG-7890.jpg
IMG-7891.jpg

The schematic looks impressive from afar, but don't worry, it is very repetitive!

I used an expansion port ribbon cable which I cut down to have only 18 pins, you could also simply use jumper wires soldered to the test pads as explained in the schematic and mapped in the 3rd image.

Upload MATRIXIO to the Arduino

MATRIXIO is a program to load the algorithms into the arduino's EEPROM. The Instructions and key coordinates can be sent manually via the arduino IDE serial monitor, or automatically via a loader written in Python.

After uploading MATRIXIO to the arduino, set the serial monitor line ending to "newline".

This should appear in the serial monitor:

MATRIXIO v1.0 (c) Jan 2022 Aditya Chugh -type 'help'-

MATRIXIO Commands

<strong>xy : 		Instruction, where x is column and y is row of calculator key
a~t : 		Shortcut instruction sequences
write : 	Enable writing of instructions to EEPROM memory
read : 		Disable enable writing of instructions to EEPROM memory
prog 1~5 : 	Memory address set to beginning of program 1~5
clear 1~5 : 	Clears all 200 instructions of program 1~5
list 1~5 : 	Lists all 200 instructions of program 1~5
addr 0~999 : 	Memory address set to 0~999 (for uno & nano)

On Casio FX-92B & FX-92+, the bottom-most row is matrixed differently, keys should hence be addressed as such : 

'0' : 65
',' : 64
'x10^x' : 63
'ANS/REP' : 62
'EXE' : 61

Shortcut instruction sequences for Casio FX-92+:

a : avancer de
b : tourner de
c : s'orienter à
d : aller à x,y

e : stylo écrit
f : stylo relevé
g : mettre var à
h : demander valeur

i : commentaire
j : afficher résultat
k : style
l : attendre

m : répéter
n : répéter jusqu'à
o : si alors
p : si alors sinon

q : exécuter
r : copier et insérer
s : insérer ligne
t : tout supprimer



Know the Keyboard Matrix

matrix.jpg

In order to enter instructions into the memory module, you will need to refer to this image to get the coordinates of the buttons needing to be "pressed".