Let's Make Robots!

Wiring up my 8 x 8 bicolour display

Hi All. Hope you are all having spiffing Sundays. Sorry, this isnt robotics, but dont find the guys over at arduinoCC especially helpful

I have fallen out of love with my Cyclops robot at the moment (as in, am now trying to think og additional functionallity to add to expand it, but am struggling somewhat) So i turn to my box of bits, and have found this!


Now i bought this with the idea of playing with Mr Conways Game of life and developing a version with slightly different rules, but annoyingly, this little fellah takes up ALL my Arduino Pins. Not to worry! i decided to solve this by buying a pack of Shift registers!


but APPARENTLY, if i wire this up to three Shift registers (one for the Anodes, and then one for each colour each for the Cathodes) i am likely to fry the chips.


This is where the advice comes in.

Should i cut my losses and buy an Adafruit Backpack version, and put what i have in storage (back pack is a ready built shield, with the same display, all chipped up and ready)

Should i cut my losses with the Shift registers, and buy some specific display chips?

Or, the last option, could i solve my issues by putting a transistor on every chip pin to protect it?

I think the transistors might be cool, because if i built Take offs on the Display pins, i could then wire up a bigger, more powerful display (bigger bulbs, rather than more lights) fairly easily? I am a bit of an electronic noob obviously, so a bit of advice, or a nudge in the direction of someoine who has sorted these issues would be greatly appreciated.

Cheers All!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I think you are confused. What makes you think you would fry your shift registers?

I have read all the datasheets and cannot see your problem.

Thanks Team.

(Re)found this too.


which is pretty much where i am. Will get the transistor array on order, and start wiring up, leaving a hole for the IC.

annoyingly my "usual" supplier has Sink arrays, but not source arrays.

When driving a matrix, normally either an entire row or an entire column is driven at a time.  To simplify, assume you are driving a row at a time.  Put a one in the row position you want to light (the row shift register) and zeros in all the column positions you want lit on that row.  Each column is only driving zero or one LED and if the current is low (say 5 mA) the shift reg should have no problem.  BUT, the row shift reg has to provide all the current for the row (up to 8 LEDs, 40 mA) through one pin.  Not good.  Transistor drivers on the row will fix that.  Transistors on the rows will provide enough current and they wouldn't be necessary on the columns.  You can switch it around and drive one column and all rows at a time and the transistors would need to go on the columns.  If you put transistors on the columns, you HAVE to have more resistors between the shift reg and the base of the transistor to limit current.  If you put transistors on the rows, they aren't necessary although not a bad idea.  This all assumes NPN transistors, too.  On the rows, you can hook the NPN as:  Collector to +V, Base to shift reg pin, Emitter to LED Row.And of course you still need the resistors on the columns.You don't need resistors on the rows, because the current is already limited by the column resistors. You do have to be careful not to turn on more than one row at a time, though.  HTH.

Here is a datasheet for the 74hc595 shift register.


Under Absolute Maximum Ratings it states 35 mA continuous current per output (in or out).  It should have no problem with a single LED up to about 25 mA, but a row of 8 at even 5 mA will exceed its rating.


I found the instructable by searching google for "how to drive 8x8 matrix rgb arduino"

Would this setup, (this is spanish i think) work? The anodes are being given a pin each, so this may well spread the load?

or would this setup only work on the condition that not all the LEDs were loaded on a given row?

So ive built this. I think it should do the trick.


in the diagram, the serial OP is connected to the serial OP of the second IC.

surely it should be connected to the Data input?

i have connected it to the DI, rather than the SOP so as i understand it, it should push data firstly through the green IC, and then into the Red. (I suppose that would mean one would start with Data.

now just to get some code going!

need to start with something simple, to test the display....

Am i correct in connecting the OP to the SOP? or have i missed something?

I can't look at that diagram without my head exploding, but to cascade the 595's you can connect pin 14, QH' of the first chip to pin 9, SER of the second chip with all the control inputs tied together and it will act like one big 16 bit shift register


Oops Sorry. How about this one? I have wired it up like this, but with pin 9 from the top IC, going to pin 14 of the second IC, rather than looping down to Pin 9....

and it goes a little bit like this:

Pin 9 of the top chip to 14 on the bottom should work.  Shift all 16 bits, then latch them.  The bottom chip will have the first byte you transfer and the top chip the second byte.