Front panels

Jon Elson elson at
Sat Oct 31 16:15:38 CDT 2015

On 10/31/2015 03:11 PM, Charles Anthony wrote:
> What I don't know how to do is drive 500 or so LEDs.
> I am guessing a bunch of shift registers, but I've pretty much reached my
> design limits. I need some guidance on locating and understanding the
> technology to run that many LEDs.
it really isn't that complicated.  The simplest might be a 
byte shift register, ie. a bunch of octal D-FFs like
the 74HC374.  Given a byte-wide group of GPIOs on the Beagle 
Bone, you could send out 63 8-bit words
with one additional GPIO to act as a clock for the FFs.  The 
LEDs could be driven directly from the FF outputs with a 
resistor.  With the current generation of high-efficiency 
LEDs 10 mA would be plenty of current, and so the FF outputs 
would still be close enough the specs to drive the next 
stage.  One downside of this scheme is if the serial 
transmission was slow, you'd see a blink each time the Bone 
sent a new light pattern.

If you want to get more complicated, you could have one 
HC374 for the shift register and one HC374 as the latch.
You'd shift all 63 bytes through the byte-shift register, 
pulsing the byte clock 63 times, and then pulse the latch 
clock once to latch all the 5xx bits of light info into the 
latch register, which would allow the LEDs to be updated 
without any flash as the shift reg is being shifted.

Now, another way to do this is with multiplexing.  You could 
maybe have 8 64-bit words that loaded to a small RAM, and 
the RAM is scanned to load data to banks of 64 LEDs.  This 
reduces the number of drivers to, say, 64 cathode drivers 
and 8 high-current anode drivers, but complicates the rest 
of the thing a fair bit.  It will also cause the whole panel 
of LEDs to flicker at the multiplexing rate, which could be 
annoying when you flick your eyes across the panel.


More information about the cctalk mailing list