Go Down

Topic: matriduino (Read 3462 times) previous topic - next topic


Hi there
I've been busy working on this stuff, not sure it will work, but it might be of some interests.
I really really really like led matrices, but I wanted to have something less ugly than a bunch of leds on a perfboard. So I settled on Eagle and I tried to make this : a square PCB, with an 8x8 matrix of LEDs on a 1206 package on the top side. The bottom side have an ATMega168 with its resonator and decoupling capacitors, a reset button, a TLC5940 and a 74HC164 for driving the matrix.
I have to send this to seeedstudio to check if it works, but hey, why not ? ^^

I uploaded a PDF with the schematic and stuff here : http://melka.one.free.fr/matriduino/matriduino.pdf
You can download the eagle project here : http://melka.one.free.fr/matriduino/matriduino.rar

If you see any problem, please tell me, so that I can send it to the fabhouse ^^



This looks pretty cool.  But I'd like to make a few suggestions.  I'm working on something similar, but I don't know how to make get the components on to the other side of the board...

To reduce the parts count you can charlieplex a grid say 8*7.  Then you can run the 8*7 grid off of 8 pins... or 10*9 off of 10 pins.. etc... then you can drop the 5940 and the 74HC164D in pace of a few resistors to make it a much cheaper project.

Also I cant really tell from the schematic, but using a 6pin, icsp, edge connector would be really nice... then you will ust have 3 pads on each side on the edge somewhere... and you can flash the device with a 2x3 header attached to your icsp programmer, just by contact, when you are done programming, there is nothing protruding from the board.

pm me if you like, I can send you my schematic of the 8*7 charlieplex...


Dec 13, 2008, 05:10 pm Last Edit: Dec 13, 2008, 05:11 pm by melka Reason: 1
Hi abalien

I don't know how to make get the components on to the other side of the board...

If you mean that you don't know how to place them on eagle, you have to click on the "mirror" button then click on the components. It will switch it from top to bottom.

I wanted to use the TLC5940 to have PWM on all LEDs, so that I can have a greyscale matrix, not only a on/off. The 74HC164 if for switching between each columns.

I made this 4 pin connector for MISO/MOSI/SCK/RST + 2pins for VCC so that I can separate power and programmation. I'm planning on making a custom cable, that I'll use with my current Arduino (diecimila) using the bitbang mode of the FTDI chip. I don't really want to use headers, but I think I'll slder wires directly on the pads. But you're idea for the test pads instead of the drilled pads is a good one, I might use it, thanks ^^


it should be added a 74hc164 is only good for about 40ma total current, 20ma for a single pin.

you may want to look at the tpic595

Mike Mc

This looks pretty cool. Are you planning on producing these?


@unsped : thanks, I'll check it, hopefully I stille haven't sent it to seeedstudio ^^

@mike : we'll see, I'll start by releasing the Eagle Files and PCB via seeedstudio's propaganda service, but maybe sparkfun or any other will be interested in producing a batch of those. But first, I have to test it ^^


@unsped : I can't find any supplier for the tpic595, do you know where I can find it ?


Digikey carries them: http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-2019-5-ND

Also, www.findchips.com says they are available from: Newark, Mouser, Jameco, Future, Arrow, and others.  (tpic6c595)

Dr. David Harris
OpenLCB Dev Team


Sorry for the dumb question, I looked at the basic hobbyist supplier (sparkfun, etc...) ^^

What do you think would be the most efficient : the TPIC or an ULN2803 ? The ULN seems to be interesting for driving the columns but it will eat a lot of my ATmega pins... however, 300mA output is really interesting, if I want to drive "hi-brightness" leds, for example.


Read the datasheets carefully.  You need to take into account the total current through all the outputs.  The ULN2803 will do 500mA though one output, but you might exceed the package specs depending on the voltage and hence wattage.  The
Dr. David Harris
OpenLCB Dev Team


If I use the ULN2803 (or the TPIC) in this project, I'll only have one output at a time, with 8 leds per output. If I go with standard white leds in a 1206 package, I'll have a maximum of 20x8=160mA per output. My guess (after having read the datasheets) is that it can withstand this much amp without any pb.

Here's an updated schematic :

I plan on using a 16v unregulated power supply (I might have to change the connector on the PCB, though), feeding two LM78xx, one for the 5v needed by the chips (LM7805) and a 12V output for the ULN2803 driving the leds. Not sure about the capacitors values wired to the LMs, though.

I still have the 74HC, because I want to have the RX/TX pins of the mega available, so that I can (maybe) use those pins to connect 2 modules together using a standard serial connection. I could not do that if I used 8 pins for driving the ULN.

I will try to see what is interesting to do with the TPIC


FYI, I sent the following circuit (check my blog) to seeedstudio, I'm gonna use it to prototype stuff, but someone might be interested.
It's just the top side of the matriduino project, only the LEDs with 2x8 pins headers (rows/colums) so that I can prototype the stuff.



Well, I just thought about that : TPIC and ULN both have 8 DRAIN outputs, so does the TLC... Gotta find a solution, like 8 dumb transistors to be able to source current to the LEDs... Think, me, think.... ^^


I think I found the chip I needed. It's the UDN2981. Seems to be like the ULN2803, but acts as a source... Perfect ^^
I ordered some from futurlec (2.20$ piece), will keep you posted if this thing works.


I used that chip in my rgb matrix and had some trouble with it. I do fast PWM and some leds just wouldn't turn off 100% anymore. I'm not absolutely sure as to why that is, but it might be a slow chip. Let's see how it goes.

Go Up