Sinclair Scientific Calculator Emulator (v6-11-rc8)
Here is the latest version of the Sinclair Scientific Calculator emulator running on a custom PCB which accurately replicates the size and the circuitry of the original calculator. This is powered by an Arduino Nano.
PCB v6 is the same size as a real Sinclair Scientific Calculator, the keyboard and display circuit is accurate as well.
A matrix keyboard and 9 digit LED display are connected to an Arduino Nano. The Nano runs a port of Ken Shirriff JavaScript 0805 TI CPU Emulator. The emulator is executing the actual 320 instructions that ran on the 1974 calculator. The Nano has some glue logic implementing the translation of keypresses into the I/O signals the Sinclair code expects to see. The original code is given a chance to run one of its very unique 11-bit instructions that contained both the operand and the address of the next instruction. The Nano then inspects the internal state of the calculator's A register and outputs it to the LED displays.
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 now an accurate recreation of the Sinclair Scientific Calculator circuitry. The connections from the keys to the display were reverse engineered by pushing two keys at a time on the original calculator and seeing which two digits in the display were affected.
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
Hackaday.io project page: https://hackaday.io/project/91895-sinclair-scientific-calculator-emulator
Sinclair Scientific Calculator Emulator (v6-11-rc8)
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
- Comments(2)
- Likes(20)
- Engineer Dec 17,2024
- Engineer Dec 05,2024
- Engineer Jul 01,2024
- Engineer Apr 16,2024
- Hein Pragt Apr 18,2023
- Bernd Desens Mar 06,2023
- Engineer Feb 05,2023
- Igor Orlianskyi Nov 02,2022
- Ben Stone Oct 15,2022
- Jorge Tavares Jul 26,2022
- Felipe Fernandez Apr 13,2022
- Engineer Mar 20,2022
- John Corkett Jan 25,2021
- Engineer Aug 20,2020
- Andrew Aug 15,2020
- Benjamín Alejandro Luna Ramírez Oct 19,2018
- Artyom Zhuravel Oct 05,2018
- Thilo Niewoehner Aug 09,2018
- Engineer Jul 31,2018
- xyz Jul 11,2018
- 7 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
-
8design
-
7usability
-
9creativity
-
7content
-
10design
-
10usability
-
8creativity
-
8content
-
10design
-
10usability
-
10creativity
-
10content
-
10design
-
10usability
-
10creativity
-
10content
-
10design
-
10usability
-
10creativity
-
10content
-
10design
-
10usability
-
10creativity
-
10content
-
10design
-
10usability
-
10creativity
-
10content
More by Arduino?Enigma
- Tile Board for A Seven Segment Display Art Installation (v8) This is a tile board for a seven segment art installation. Each board is populated with an Arduino N...
- Motivational Board V1 Prod Thumbing through instagram, I find a post by @davedarkocom showing that all the components for his g...
- Sinclair Scientific Calculator Emulator (v6-11-rc8) Here is the latest version of the Sinclair Scientific Calculator emulator running on a custom PCB wh...
-
-
-
kmMiniSchield MIDI I/O - IN/OUT/THROUGH MIDI extension for kmMidiMini
117 0 0 -
DIY Laser Power Meter with Arduino
165 0 2 -
-
-
Box & Bolt, 3D Printed Cardboard Crafting Tools
156 0 2 -