The Mystery of Ghosting LEDs

LED lamps are neat replacements for regular pinball bulbs, but when used on the lamp matrix, they flicker dimly when they should not be on. The goal of this work is to find a solution.

Here's the schematic for the column driver. The tieback diode in the 2803 isn't shown. Presumably, it is floating. Our working hypothesis is that the problem comes from column leakage. This is because the ghosting happens across columns, rather than down rows. On ST:TNG, lamp 26 makes lamp 16 ghost, 36 ghosts 26 and so on.
Here's some scope traces. The upper signal is the row 6 logic drive. The lower signal is the column drive at the playfield connector. The playfield is disconnected.

The timebase in 5ms/division. The bottom scale is showing 18V, and the top trace is logic level at the row driver input.

Here it is with the playfield connected. You can see matrix switching noise. The first two cycles, the lamps are off. You can see the same slow decay of the column voltage.

The third cycle, lamp 36 is on. Lamp 26 flickers because of the decay energy in column 2, and the row 6 pulldown.

After a chat with Ed Cheung, the nest step was to tie the column line to ground with a 200 ohm resistor. This pulldown immediately cleans up the column signal. The circuitry has - for practical purposes - zero leakage, and the 10M resistance of the scope slowly pulls the line to ground. The residual energy seen above now appears to be cross-coupling in the wiring harness, insufficient to light an LED.

However, the LEDs still light from leakage currents.

 

 

With the noise gone, we can now examine the timing more closely. This image shows the column voltage on top, and the row pulldown below.

You can clearly see that the row transitions before the column is turned off. The overlap is short: the timebase here is 25us per square. So this is only 10us.

Here's the leading edge. here, you see the row turning on some microseconds after the column transitions.

There's no win here. Switching the row and column sequence will move the ghosting to the leading lamp.

Next step: code review!