Sunday, August 16, 2020

7 Segment LED Board now drives 16 LEDs

The seven segment LED board can now drive 16 LED using only an Arduino Nano.  Using the circuit described below it can drive 18 LEDs using a stock Arduino Uno/Nano and 20 if the LED on pin D13 is removed by desoldering it.

Here is a picture of the board showing the first 16 digits of PI

The first board gets two Arduinos. The first one, at the top of the board sends instructions to the second one at the bottom of the board. The bottom arduino is responsible for receiving serial instructions and driving the LEDs, If a packet received through the serial port is not meant for the current board, it gets relayed to the next board. The TX pin in the bottom Arduino is connected to the RX pin on the next board's Arduino Nano.

This is the same board when it could only drive 9 LEDs.

We have previously written about this project: 

By daisy chaining these boards, a larger installation can be assembled. Note the Arduino shadows, the board on the top left has two Arduinos, the rest of the boards, only one.

Here is a picture of the PCB as displayed by Fritzing. Note all the segment pins are connected in the top layer using vertical traces. The segment pins on each vertical stack are connected to other stacks using horizontal traces on the bottom layer and vias under each display. Notice the middle pin on the B displays is connected to the Arduino and an A and a B display are connected together. 

A 5611AS display is installed in all the sockets labelled A and a 5611BS display is installed in all the sockets labelled B. Another display like the higher brightness 5161 can be used, but be sure to get the 5161AS and 5161BS, do not mix 5611 with 5161 in the same board as the brightness will not be the same.

The schematic for this board is drawn below:

The A segment is connected  to all the displays. 

A Common Cathode (5611AS) display and a Common Anode (5611BS) display are connected in parallel. Their common pin are tied together and become the 1/2 select line..

Unlike charliexplexing, this arrangement allows a whole digit to be illuminated at a time. To illuminate a seven (7) in the first digit, a,b,c are set to output and high, and 1/2 select is set to output and low. All other pins are set to input and low, to prevent the internal pull up resistor from weakly driving the pin high. To illuminate a one (1) in the second digit, b and c are set to output and low, and 1/2 select line is set to output and high. The circuit can be extended with as many select lines as available.

Here is a sample pin assignment for an Arduino Nano. The display segments (a..g) are connected to I.O pins. The decimal point (dp) can be connected, or turned into an additional select line  

The D0/D1 pins should not be connected to avoid interfering with the built in Serial capabilities. 

The D13 pin has an LED connected to it and cannot be floated by turning it to input and low, so it should be left unconnected unless the LED is removed by desoldering it.

The A0..A5 pins can be used as digital outputs, with the exception of A6/A7 which are analog input only pins and should be left unconnected.

With the above setup, 18 digits can be controlled. If the decimal point is turned to a select line, a stock Nano can display 20 digits. If the LED on D13 is removed, 22 digits can be controlled. 

This board is bigger than the previous one, measuring 142 x 142mm.  

There is only one place that consistently manufactures board this size:  The boards look good, function as designed and do not have extraneous markings like manufacturing codes placed. Other fab houses have returned boards to us with job numbers in prominent places in the front layer, or noticeable silkscreen issues.  

The Online Gerber Viewer was used to verify the accuracy of the files submitted:

Manufacturing took a couple of days, the progress of the board manufacturing could be tracked in the website: 

DHL delivered this package in 4 working days. In total, it took a week from submitting files to receiving the boards in the mail.

The boards were safely packaged and they came with a free 6 year anniversary sticker and badge.

The badge was designed by @akirasan (instagram: (twitter:

The badge uses a 2032 battery (not included). A pin is included and is easily soldered into place. Once powered up, the onboard RGB leds light up and sweep through the color spectrum.

The next stage in this project is to consolidate multiple 16 display modules in the same PCB.

Sunday, August 9, 2020

Design of an Enigma Machine Rotor using PCB, pogo pins and 3D printed parts

Here are a set of PCB that are accurately wired like the rotors and reflectors of an Enigma Machine. This project was inspired by:

The gerbers are available at:

Rotor Wiring: 

First line: RIGHT SIDE - Bottom Layer
Second line: LEFT SIDE - Top Layer



To use:

The rotor PCB are bolted to a 3D printed part. The order, from left to right is:
PCB, 3D printed Part, Head of Pogo pin.

The PCB markings are meant to be exposed and on the left side of the PCB when bolted to a 3D printed part. 

The ETW takes no pogo pins. The wires from the keyboard are soldered to either the exposed vias or the A1..Z1 contacts on the right side.

The UKW will have its dark side on on the left. The contacts will be on the right and hidden when bolted to a 3D printed part.

To make a machine, the minimum set of parts, from left to right are:
UKW(B or C), Rotor 3, Rotor 2, Rotor 1, ETW.

The wires from the keyboard switches go to the ETW (stationary entry wheel), the signals then go through the three rotors, in and out of the UWK (stationary reflector), back through another parh through the three rotors, then out of the ETW to the lampfield.