Vertical ghosting on 64x32 1/16 RGB LED matrix panel
All diodes and switches have capacitance when open circuit or biased with no current. This gives rise to slow decay time after switching commutation.

This bleed or ghosting thus has an effective RC decay time, which depends on commutation rate, and diode capacitance (which also increases with power rating) and driver decay time.

Your choices are several but depend on implementation.


1) add dead time or turn OFF all LEDs just before commutation to next string and increase dwell until the ghost disappears at the expense of average brightness
2) clamp the bus to achieve 0 mA in the LEDs and discharge its internal capacitance and bypass the driver current to each bus signal. Faster but at additional HW expense
3) reduce the commutation rate at the expense of the risk of peripheral motion flicker
4) use push-pull drivers at the expense of more HW cost
5) use passive bypass across the LED bus using up some 1% of the LED current but effectively reducing the LED off time when a short deadtime is added at the end.
6) use fewer LEDs in the MUX to reduce the commutation rate without compromising flicker so it does not have to be 16 x the frame rate using two Muxes of 1 to 8 or 4x 1:4 MUXed LEDs at the expense of more hardware.


I would experiment with 5)... add 1K across one LED to see if Ghosting diminishes (>3mA absorbed) then more or less to see if that has any effect as a starting point.

Failing that ... Then tweak your binary code to do 1)

Beware that that 5mm LEDs have extremely small gold whisker wirebonds to make them almost invisible so the PEAK current rating is only 50% more than rated e.g. 30 mA vs 20mA so pumping more risks damage to wirebond or adds heat to the junction. WHo knows how they did it?

Your LEDs may vary slightly in ratings. But this is why old 80 column 11?-segment LED displays made by HP did not MUX them in 80 steps but were specially made RED LEDs withstand 8x the current with 1:8 digits per commutation as I recall from late 70's on HP9825s.