Go Down

Topic: Question about 74hc595 and 8x8 RGB Matrix (Read 5175 times) previous topic - next topic


I have:
1 - 8x8 Common Anode RGB matrix
4 -  74hc595 shift registers.

According to the following schematic each chip is responsible for one color and 1 chip for the anodes..

What dictates what chip will handle which color? And what dictates which one will be the chip serving the anodes?

I have built the following schematic on a breadboard, when I  was done the colors and the anodes were wrong.
A little testing and I was able to figure out what chip = what color and what the anodes were.
Rewired, the breadboard circuit worked perfect.

Before I build this onto a pcb  and solder it, I want to make sure I have the correct layout correct

All credit for this schematic goes to: Francis Shanahan


Functionally it looks good. Check the actual pin numbers against the datasheet.
You may want to break out cathode OE/ pins so you can drive them with separate PWM pins for fading/color shifting, vs off or full on.
Which RGB display are you using?
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.


I suggest to put a 10k pullup on the common OE line and wire it to a pin on the arduino. From personal experience with this way of driving an RGB matrix I can tell it is useful ;-)

If you're thinking about doing 'true color' with software pwm, you will need it. Otherwise you may notice that the last line looks inexplicably brighter than the remaining 7. Also you can put another 595 in parallel with the one driving the anodes for a bit more brightness. Ideally add a source driver like the UDN2981A to it and while we're at it replace the other 595 with real drivers like MBI5168. Then you'll also have to send the appropriate amount of blanking data to the drivers, or you'll see ghost images.

Some more info can be found on my blog, if desired ;-)


Thanks for the replies guys..
Yes the last line was a lot brighter than the rest... :~


Try sending 4 zero bytes at the end of your function that talks to the matrix.

Go Up