BUILDING DSKY SUBSTITUTE DISPLAY PCB
Installing components and testing by stages
I decided to solder on the remaining relays and their output resistors. Somehow I found the remaining transistors on the floor and finished up all of the 23 input circuits. Testing showed faults in 19, 21 and 22 leading me to investigate these three circuits.
I found bad solder joints for all three issues, repaired them and now had all 23 input circuits performing perfectly. Having placed all relays, I then checked all eight of the output circuits watching the 2K resistance appear on each output pin when the corresponding keyboard input pin was taken to ground through another 2K resistor. Everything is good.
I left off the limiting resistors for all the LEDs because I want to select them to cause all the lights to appear to be the same brightness as the 7-segment displays. Until I have those operating, I can't compare and pick appropriate resistances.
I am missing 14 white LEDs, and 2 green LEDs to compete the prior stages of the construction. With everything above installed (except LED limiting resistors and the missing components) I could move on to the five surface mount ICs. Two of them create an I2C chain that will drive the 14 alarm lights and the Comp Activity light. The other three drive the 7-segment displays and sign LEDs.
The I2C chain was installed first, because these can be easily tested by tacking wires from an outboard Arduino and cycling all the LEDs. Checking with a VOM on each limited resistor LED position lets me validate the operation of the chip. If I had the limiting resistors soldered, I could have watched the lights but this depends on matching brightness to 7-segment displays which comes later.
Initially I only saw the lights controlled by the first of the I2C chips operating, but soon I realized that I had interpreted the data sheet wrong. The proper I2C address for the second chip was x24, based on the way I had connected the three address pins to ground or 5V.
With that corrected in the software, I could light any of the fourteen caution/warning light positions since the one that had a test resistor in place illuminated and the other 13 were pulled to ground at the appropriate time to light them.
Secondly, I will solder on each MAX7219 chip in sequence, checking the cathode and anode pins of a display position as I drive them from tacked wires leading to an outboard Arduino. If I like what I see, I will add the next chip in the chain. All three chips are chained in one serial link to drive all 24 digit positions. Those consist of 21 real 7-digit modules and three custom sign displays.
I began with chip 1, soldering it onto the board, taking on the three serial link lines and connecting them to an outboard Arduino. Each chip needs a filter capacitor across 5V and ground plus a current limiting resistor (10K). I am short one capacitor, which must be ordered.
Cycling between blank and the digit 8 which lights all segments, plus cycling the sign bit between blank, 1 and 4 which give me the plus and minus sign LEDs, the chip should be grounding the cathode line of each segment in turn and putting 5V on the segment lines.
The external Arduino was tacked onto the pins for the serial interface to communicate with the display driver chips. All worked well - the live chip showing the digit 8 did deliver the proper voltages to anodes and cathode pins.
Once all the above were validated, it was time to insert seven 7-segment displays for the first chip, giving me the digits for Register 1 plus Verb and the sign for Register 3. With the displays at full brightness, I tried resistors to set the sign to the same apparent brightness. It looks good enough with no resistor in circuit.
|During testing of 7-segment displays|
|All components installed on back except for headers|
The second and third chips then had their 14 display modules and signs installed. At this point, I needed to verify that the outboard Arduino can fully drive all positions and signs properly. This, after all, is the heart of the DSKY. I sent out a test pattern to verify that all was correct.
I see that one of my display modules is not activating the middle segment, thus the number 3 looks like a reversed capital C. Also, nothing is working on the third chip, that which serves register 3, PROG, and the sign for register 1.
I reflowed the solder on the module with this missing segment and that came back to life. The problem with the third chip was more difficult to diagnose. Power and ground were good to the chip, but eventually I noticed that the clock input from the serial link was not connected. Physically, the chip leg was soldered to the pad - several times as I worked on it - but it seems the trace from the nearby via to the pad was open.
I used a small bit of a resistor lead to bridge the via to the chip pin, after which my third chip came back to life. All appears good. I did make a change to the test program to cycle through the digits.
I am not fully satisfied with the appearance of the plus and minus signs - it looks like two dots in a row or four dots for the plug sign - but it will have to do for the purposes of this project.
|Minus sign on register 2|
|Plus sign on register 2|
A test dropping the 14V input is used to check the blanking of the entire EL panel side of the DSKY when the computer goes into standby. I had to power the 14V to get the relay circuit to provide switched 5V for all the legend and line LEDs.
Alas this circuit isn't working as I intended. My fault. I used a resistor divider to drop the 14V supply from the AGC (BPLUSSW) which is off when the computer is in standby. That did produce the +5V as the input to the relay driver circuit.
BUT - the relay driver circuit is designed so that when the input is at ground, the relay fires. The relay is a normally-open type, so the switched 5V supply to light up the lines and legends on the display will only be energized if the relay is closed, thus if the input is at ground.
This is the inverse of what I want. Further, it isn't working, probably a soldering flaw of some kind. Still, I need to do some rework on this portion of the board to make things operate as desired. I want to have the switched +5V on only when the input of +14 from the AGC is there. I need an inverter of some type. That is my mini design challenge for the day.