12/21/2017 - A suitable display is found, design of the PCB continues.

A project log for Sinclair Scientific Calculator Emulator

A register level TMS0805 CPU emulator on an Arduino Nano runs the original 320 instruction calculator program. A custom PCB houses it all.

Arduino EnigmaArduino Enigma 03/18/2018 at 06:330 Comments

A previous search revealed that there were LED modules that were 15mm wide and had 3 digits. We need 3 of those side to side to get the 9 digits a Sinclair Scientific needs. Previous implementations using two packs of 4 bubble LED modules needed a separate LED to indicate the negative sign of the mantissa.

The leftmost digit will only be used to display the sign for the mantissa. The decimal point will be "on" all the time after the middle digit. Digit number 7 will be the negative sign for the exponent. A full display will look like this: -8.8 888 -88 a blank one:  0.0 000  00

The US suppliers are out of stock of the smaller LED modules. Time to visit AliBaba.

A lot of displays appear, but careful examination of the display datasheets was needed. This fella here looked promising, it has a single decimal point in the right place, but something was amiss with the number of pins. It has 10 pins, 11 pins are needed for a 3 digit seven segment display with a decimal point. The DP segment is tied together with the C segment. Building a truth table, it becomes evident that the decimal point will be "ON" all the time a digit other than 2 is displayed. That's an interesting optimization. I wonder what equipment out there cannot display a decimal point when 2 is showing in the middle digit. 

This is the first time I have used AliBaba, I learn that the suppliers of LED modules there deal in minimums of 100 or 1000 units. The lesson learned here was that for 10 units, go to AliExpress, for 1000 units, go to AliBaba. A single account is good for both sites. Also, a credit card is needed to order in the site. They do not take Paypal. Being leery of using a credit card on an overseas website, I start looking into prepaid credit cards. The ones at the Pharmacies sometimes do not work on overseas websites, one has to read the small print to find that out. Finally, Movo.Cash appears. A separate prepaid virtual card is created that can be loaded through Paypal and used to pay at the Ali sites.

Looking through AliExpress, the following display is found. It has the right number of pins, the decimal point is individually selectable and enough dimensions are given in the datasheet to design a PCB. Note that the pin at position 6 is missing.

With that information, design on the display side of the PCB can continue.

Working on an external lampfield device for the enigma machine simulator, I decided on the following pattern to take the charlieplexed signals to all the lamps in the display. Run all the signals horizontally on one layer and on the opposite layer, run vertical traces to get the desired signals to each LED. An arbitrary LED can be fed from any two pins.

Maybe this design pattern can also be used to wire a multiplexed LED display module. Shown below are the sockets for the three display modules. Frtizing does not have a footprint for this component (of course). So I am using a connector with 6 pins at 0.1 spacing to represent the top row and a 5 pin connector at the bottom. The connectors are placed in the appropriate locations by entering a value in their x/y coordinates. The separation between modules DS1 and DS2 is what I calculated from the datasheet above. We will revisit this decision later. 

The leftmost pin (12) on the top connector selects the leftmost digit. Pins 8 and 9 select the middle and right digits respectively. Notice that those pins on each connector are brought to an individual via at the bottom of the circuit. The rest of the pins will be connected to bus lines, represented by the place-holder vias on the left and right sides of the circuit. Three bus lines are laid down and pins 7, 10 and 11 in each display module are connected together using those bus lines. This is enough for a proof of concept. Work can continue.

Time to go to instagram for a quick post:

Eventually, the completed circuit will look like this. Pins 12, 8 and 9 (the digit selection pins) for each module immediately go down to a via. The rest of the pins connect to a bus line, with the same pin in each connector going to the same bus line. Notice that the top-most bus line connects pins 11 of each top connector together. That now gives us multiple convenient points to connect this to the microcontroller. In this case, Pin 11 of DS1 is the one that connect to the Arduino Nano. The other two will  be fed through the bus line. Similarly, The Arduino connects to pin 10 of DS1, which in turn connects to the second bus line feeding pin 10 on DS2 and DS3

It begins to look more and more that this whole board will be hand-routed.