The board was complete except for mounting the 154 LEDs, but my vacation got in the way a bit. Now that I am back, I began soldering it chains of LEDs. These are installed and soldered over the honeycomb assembly, which ensures that the PCB with the LEDs will fit properly when all done.
I did the first chain, which has 15 LEDs for the IAR register, another 15 for the SAR register, and 8 LEDs for the T clock states T0 through T7. After examining the solder joints under the microscope and testing for shorts or unusual conditions, I was ready to drive these with a simple test program running on the Arduino.
I did see all positions light, but there was some color shifting late in the chain which I attribute to inaccuracies in the timing of the Arduino driving the serial data. The library for the Arduino was made for a faster controller chip than the APA106 used in my bulbs, but in addition the timing requirements of the controller chip are different.
A few bulbs in a row will tolerate the inaccuracies bu these multiply as the chain grows longer. When I adjusted the library parameters to emit at a 400KHz rate, consistent with my chips, the outcome was perfect.
I moved on to solder in the second chain, which implements 16 LEDs for SBR register, 16 LEDs for the AFR register, and 8 LEDs for the X clock states X0 through X7. My test program drove these to validate the correct operation of all the new lights.
The third chain implements 16 LEDs for the ACC register, 16 LEDs for the EXT register and 8 LEDs for the DEBUG lights. Again, using the test program I drove these to confirm the wiring and solder joints. My test program produced one serial output but I jumpered them together to the three chains, so that the lights on all three chains behaved identically. This helped me test out all the bulbs and the behavior.
The last chain was completed and tested. It supports all the miscellaneous lights:
- 5 LEDs for op code
- 5 LEDs for the tag bits
- 3 LEDs for the index register
- 6 LEDs for the interrupt levels
- 6 LEDs for the cycle counter
- 2 LEDs for Carry and Overflow conditions
- 1 LED for the wait state
- 2 LEDs for parity bits 1 and 2
- 3 LEDs for ADD, Add control and Subtract control states
- 3 LEDs for the conditions ZR, TC and AS
|Board completed with all LEDs soldered in place|
The PCB with the LEDs rests atop the honeycomb, but across the middle of the honeycomb is a metal plate joining the top and bottom halves together, plus two metal screws that attaches the plate to the rest of the console panel.
|Honeycomb structure with metal plate and screws across the midline|
|PCB with LEDs inserted into honeycomb|
I chose to put an insulating layer across the top of the plate and screws. A few other points on the edges of the honeycomb received matching spots of insulation to provide an even surface for the PCB as it is placed against the honeycomb.
Watch a video of the Arduino test program stepping each chain through all lights then simulating flickering partial illumination - Click here for video