Hello.
I play DIY with HUB75 and run out of '245 buffers. After quick digging i realized that ABC/ABCD/ABCDE don’t need individual control. They just need counter that counts up and have reset/synchronization capability. So I use 74hct4040 (equivalent to CD4040) as a row counter. This setup need just 2 input from rPi and can drive all 5 lines of the matrix (1/32 scan).
In this setup, 3 chains requires 18 data pins. Clock and reset for '4040 are extra 2 pins. OE, clock and latch for the matrix are 3 pins. Total 23 out of 28 GPIO pins. 2 less than actual “active-3” adapter.
Assuming the matrix have to be disabled for changing active row and for latching new data in, both events can happened simultaneously. That case clock pin for the '4040 row counter can be attached to latch pin on the LED matrix, freeing up one pin. Code just have to issue reset pulse after full screen redraw to not loose synchronization.
In this setup LED matrix takes 3 pins, counter 4th one (reset) leaving 24 of all 28 GPIO pins for 4 full chains.
Please correct me if i’m wrong. Can this counter solution works for all types of matrix available, or is there one that need different ABCDE drive algorithm?
Hi @BC_Mike, that’s an interesting idea and way to save 3 IO pins.
I know some matrices are a bit weird in how things are layed out (and AB matrices, as well as ABC matrices do weird things that are actually close to what you’re doing, encoding more address lines over fewer pins).
So your idea would work great for regular ABC (8 lines)/ABCD/ABCDE panels that get scanned sequentially, but would not work for AB/ABC(32 lines) panels.
See https://github.com/hzeller/rpi-rgb-led-matrix/issues/823
So, as long as you’re fine making a shield that only works for those panels (which indeed are the majority), that’s fine. If you want it to work with all panels, then it won’t.
Hope this makes sense. Not sure if @hzeller has more ideas/feedback about this. But basically I do like your idea, SmartMatrix also has support for a similar setup to free some pins.
Then, if you really want to go on a pin diet, there is this crazy setup:
Back to your original question @BC_Mike, your 4 channel board not work on every panel (AB panels and ABC /32 panels I mentioned), but those panels are not the norm.
I think you can totally try to design that on a breadboard, confirm it works, and if you know how to, send a PCB to electrodragon.
I’d buy a few to play with