Pixelblaze and shift register CMOS chips for a simple LED array

Noob here. Just got my PB, and am excited to dig in.

I would like to try a unique design at first, without using a SK9822 string with the embedded control for each LED.

I would like to build an array of discrete LEDs, say in a 8x12 configuration. I would like to illuminate a pattern in this array for a fixed period, then a period of no illumination (while shifting in the next pattern), then illuminate the array with the new pattern. Then, iterate on this cycle for a number of patterns.

I have a bunch of CMOS 74HC595 shift register chips lying around, along with my LED stash.

Looking at the timing diagram for the SK9822 string, if I were to discard the leading start frame of 32 bits (all 0’s), and discard the first 8 bits of each payload frame, the remaining 24 bits could be shifted into the 74HC595 chips, one bit per LED. In short, the individual RGB 8-bit values for each controller would be re-mapped to a single LED in the array.

After 4 payload frames were received (discarding the final end frame), the shift register chips would hold 96 bits of pattern information. Then, the Output Enable for the 74HC595 drivers would go active, illuminating the LEDs. After a delay, the OE would go inactive, and all LEDs would no longer be illuminated while the next pattern was being shifted.

Does this approach sound optimal? (Hopefully, I could come up with the logic design to interface the 74HC595’s to the Pixelblaze serial output, and discard the non-pattern bits in the frames.)

Thanks in advance for any insights and recommendations!

I am not familiar with the SK9822, but in principle you can build an array and interface logic in this way. You’d obviously need some logic to strip out the unwanted bits, perhaps discrete logic or a small CPLD. The 74HC595 can be used, especially if the LEDs are not being multipexed.

But I have to ask why…? As an academic exercise, you could do this, but ready assembled arrays (mostly using WS2812 type LEDs) are very cheap these days. So does it make sense? Only you can decide.

Thanks for the note! I will likely try to see if I can build the interface logic to apply PB to an array of individual LEDs.

The reason is that the project I have in mind needs illumination from UV LEDs, rather than the RGB encoding normally used with the SK9822 type of LED string.

Thanks again!

@tomd, I was wondering if you were planning to run something other than RGB LEDs. My first thought was, “Cool! A big array of laser diodes!”

The easy solution for a job like this – you should just be able to solder in your UV LEDs – is to use bare WS2811 driver chips and run them from the Pixelblaze as though they were WS2811/WS2812b LEDs. The Pixelblaze won’t know the difference, and you can program your patterns to use the color channels any way you want.

Thanks for the note! I’ll check into the specs for the stand-alone WS2811 LED driver chip – that sounds like an ideal solution (and the easiest to interface to the PB).

Much appreciated!

zranger1: Thanks for the pointer to the WS2811 driver chips – that looks like the ideal way to support individual UV LEDs with PB!

I’ve placed my order. :grinning:

Tom D

Other than Adafruit NeoPixel UV LED Strip with 32 LED/m [White PCB - 1M] : ID 3851 : $24.95 : Adafruit Industries, Unique & fun DIY electronics and kits of course :smiley: … but those are only 395nm and I might wire up my own with 365nm LEDs.

sorceror: Thanks for the pointer to the UV LED strip! Who knew? :grinning:

Actually, as you hinted in your note, I’m planning to wire up individual 365nm LEDs, using the WS2811 driver chips recommended by zranger1 in an earlier append.

Any advice and/or recommendations would be most welcome!

Tom D.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.