There seems to be some interest in building this emulating calculator so I will start a build thread.
I got introduced to a web based calculator emulation via this thread.
I got interested and start playing w/ the idea of implementing the emulation on an msp430, my code is based on Mr Ken Shirriff's work from the following pages.
TI DataMath 2500II/1500? emulations
I am posting the bits that's needed for whoever interested to build it.
This is all that's there
1 MSP430G2452, from your Launchpad G2 (the "other" chip in the package)
2 bubble led, from sparkfun ($2.95 ea)
20 tactile buttons, 6 x 3 x 4.3mm, from DX ($4.76/100)
1 spdt dip size switch, from DX ($7.37/100)
1 CR2032 cell holder, from DX ($3.14/20)
1 miniature red led thru-hole, forgot where I got it (see picture)
1 47k pull-up resistor
* The miniature red led is to show the "negative" sign. The original calculators have 9 digit displays, since we have only 8 digit, I used a led to show the negative sign when needed.
* You can try different CR2032 cell holders, or even paper-clip diys, the pcb make provisions to mount different cell holders.
I am attaching the schematic here but it is not very readable, I started my pcb design by placing components 1st, make traces. And lastly I let Fritzing to auto route the schematic.
It is easier to understand the connections w/ the ascii art schematic, in my opinion
MSP430G2452 ----------------- /|\| | | | | --|RST | | | 2 x 4 digit bubble led | digit 0 P2.0|----- +---------+ +---------+ | digit 1 P2.6|----- | % % % % | | % % % % | | digit 2 P2.1|----- +---------+ +---------+ | digit 3 P2.2|--/-------+ | digit 4 P2.3|--/---|>--+ led (minus sign) | digit 5 P2.7|--/- | digit 6 P2.4|--/- | digit 7 P2.5|--/- segment a to g + dot........ | | / ....\ | | / \ | segment A P1.2|-----+-----+-----+-----+-----+-----+-----+-----+ | | _=_ | _=_ | _=_ | _=_ | _=_ | _=_ | _=_ | _=_ | | segment B P1.3|-o o-+-o o-+-o o-+-o o-+-o o-+-o o-+-o o-+-o o-+ | | _=_ | _=_ | _=_ | _=_ | _=_ | _=_ | _=_ | | segment c P1.7|-o o-+-o o-+-o o-+-o o-+-o o-+-o o-+-o o-+ | | _=_ | _=_ | _=_ | _=_ | _=_ | _=_ | | segment D P1.1|-o o-+-o o-+-o o-+-o o-+-o o-+-o o-+ | | _=_ | _=_ | _=_ | _=_ | _=_ | | segment E P1.5|-o o-+-o o-+-o o-+-o o-+-o o-+ | | _=_ | _=_ | _=_ | _=_ | | segment F P1.4|-o o-+-o o-+-o o-+-o o-+ | | _=_ | _=_ | _=_ | | segment G P1.0|-o o-+-o o-+-o o-+ | | _=_ | | segment H P1.6|-o o-+ (not all buttons populated) | |
The source code is in github
There is also good amount of H/W information commented inside the code
If you plan to design your own PCB, the basic principle in relationship w/ the code is
- P1 for LED segments
- P2 for LED digits
- P1 also for key button scanning
- You can move things around as long as you observe the above. I.e. If it fits better on your PCB, you could swap digit 1 w/ digit 3, segment A w/ segment E, etc, etc. All you need is to change #define in a header file and compile.
I will post the PCB separately. Also working on a better design and will post it also.