This is a Sinclair Scientific Calculator emulator running on a custom PCB powered by an Arduino Nano. Options Fully assembled - gets you a working tested calculator. PCB + LED Display + Buttons -...Read More…
This is a Sinclair Scientific Calculator emulator running on a custom PCB powered by an Arduino Nano.
As this project builds upon the work of so many other people, the PCB Gerbers and the full Arduino source code are available online if you want to roll your own.
The 1974 Sinclair Scientific was unique as it took the work of geniuses to implement a reverse Polish notation (RPN) scientific calculator with trigonometric functions on a chip barely capable of doing addition, subtraction, and multiplication and division as iterative algorithms. The Texas Instruments TMS 08XX CPU was also limited to storing a 320 instruction program in its internal ROM.
Implementing all of those functions was not without cost. The calculator was slow, some answers can take up to 15 seconds to show up, meanwhile a blank screen is shown. Its accuracy is limited: 4 * arctan(1) yields a value of PI of 3.1440 as shown on the product screenshots. Calculating arctan(0.0001) goes into a loop for a minute and a half before yielding the wrong value of 0. The decimal point is in a fixed spot as storing numbers in a scientific format simplifies both internal calculations and displaying the result. Reverse Polish Notation was used as it simplifies the processing of the operands. There is no space in ROM for important constants, so those were printed on the face of the calculator.
Part of the genius of this product was realizing that sometimes "Worse is Better", the limited accuracy and its other quirks were offset by the fact that this calculator was Cheap! When first released, it cost around $100 when other scientific calculators cost almost $400. After a year, a kit was released for £9.95 (around $24) (incl. VAT)
The hardware portion of this project is basically the KIM Uno key and display circuit with fewer keys and an extra digit. Each individual segment of the display is controlled by one of 8 output pins on the Arduino Nano. 3 pins are used as outputs for the keyboard matrix and are read by the same pins as the seven segment display, turned temporarily into inputs. Finally, each multiplexed digit is selected by one of 9 output pins. And this is when I ran into trouble.
Initially, I thought the Arduino A6 and A7 pins could be used as outputs to select digits 0 and 1 on the multiplexed display. When the PCBs came back and digits 0 and 1 absolutely refused to light up, I read the fine manual and realized that A6 and A7 were input only. The only way to salvage the situation without using a second IC like a shift register was to use the serial port pins D0 and D1 on the Arduino Nano as selection pins for the first two digits on the display.
This means that this board needs a couple of green wire fixes:
On the assembled version, those have been made for you on the back of the board underneath the Arduino.
The Arduino software is a very thin layer interfacing to the original code. There is one option however, code execution speed. If the calculator is powered up, it runs at the original speed and the display is blanked out while a result is being calculated, just like in the original hardware. If the keys 1,2 or 3 are pressed during power-up, prior to 0.0000 00 being shown, the screen will stay illuminated all the time and the speed will be either slow (1), normal (2) or very fast (3). It is very interesting seeing the intermediate results the calculator goes thru before arriving at an answer. The normalize function can be seen working on the slowest setting. Type 0.0001 + and the 1 will be shifted left while the mantissa is incremented.
This work could not have been possible without this:
Sinclair Scientific Calculator Simulator http://files.righto.com/calculator/sinclair_scientific_simulator.htm
Another calculator based on the TMS CPU http://files.righto.com/calculator/TI_calculator_simulator.html
Recent Hackaday articles on the Sinclair Scientific https://hackaday.com/?s=Sinclair+Scientific
Wikipedia page https://en.wikipedia.org/wiki/Sinclair_Scientific
|Shipping Rate||First item||Additional items|
United States Postal Service: Parcel Post
United States Postal Service: Combined Shipping
When purchasing multiple items, pay only 1 shipping.
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!
Get your own enigma machine simulator or use the enigma engine source code provided to create your own.