HELP - Mega's interface with 10x10x10x led cube


Im really new to arduino and the world of electronics, so i need a little help.

I made a 4x4x4 Led Cube n it worked great off my new Arduino Mega so i made a 10x10x10 cube (common cathode). Now the problem is that i understand i need 100+10 outputs from my arduino to run the cube. I was planning to cascade 13 74HC595's for the anodes and run the commons directly through arduino using transistors as switches for the ground. Is it advisable to use 13 shiftresistors? and possible? is there any better way to do this? :-/

Also im not really sure how to go about writing the code for this. Can someone point me in the right direction?

Thanks in advance. :)

Hey Guys

Please i really need help on this... Any sort of information or comments would be usefull..


Any sort of information or comments would be usefull

Well I think 1000 LEDs for someone new to electronics is just a bit stupid.

Yes you can cascade that many shift registers but you will need supply decoupling on each chip. You also need to consider the current drives for both sourcing and sinking, you have got away with the native drive capacity so far but in scaling up you need to do things properly if they are to work. There is an absolute limit of 200mA for the current supplied by one arduino no matter how many pins it is spread over. How are you driving the LEDs? Is it charliplexing? If so you can't use shift registers as you will not be able to tri state the outputs, you need some sort of port expander like the MCP23S17. All in all this is a big project in every sense of the word. Why do you think there are not that many schematics for such a large cube about on the net?

Well I think 1000 LEDs for someone new to electronics is just a bit stupid.

Well i know its a little extreme.... but i hope to learn on the way and if it doesnt work I would just convert it into 8cube....

I read the link you provided (thnx), it was really helpfulll. I dont think decoupling should be a problem, i can manage that. Also im planing to multiplex it not charlieplex.

Yes i was also concerned about sourcing and sinking current. But if i light up only a limited no of LEDs at once i dont think it should be much of a problem. I was hoping to sink the 10 layers with help of MOSFETS or something like TIPp110 or TIP31. Still have to figure out the sourcing of current though...

The main problem for me seems to be the code.... I have limited coding experience...

If someone can point me in the right direction that would be really helpfull...


The specifics of the code will depend on the specifics of your circuit, however the general principle of multiplexing is the same just turning stuff on and off in sequence. For and example of that see:-

Thanks Mike,

I made a basic first draft of the circuit how it should look like. Can you please take a look and tell me if i am thinking on the right lines.

I calculated that if i switch on all LEDs (20mA) in one layer i will need ( 20 x 100 = 2000mA = 2Amps ). So i thought of using TIP31( rated at 60V and 3 Amps) to sink the current. And if i switch on all LEDs in one column i will need (20 x 10 = 200mA). As the shift resistor cant provide that i thought i could use ULN2003 (rated at 500mA per pin) to source the current. I know while working the actual current drawn might vary but i am taking the max i think the led would draw.

Are these calculations right? I understand that switching on the entire cube at once would mean 20Amps of current so i have no plans of doing that.... may be i will try and do that with the help of POV.

Thanks for the link it was helpfull.


the link to the images

I can't seem to down load them and they are way too small to see much. it says:-

The owner has disabled downloading of their photos

Things I have spotted is:- 1) You need resistors in line with the base of the transistors 2)

i thought i could use ULN2003 (rated at 500mA per pin) to source the current

This chip can only sink current and while it is rated at 500mA per pin, the sum total of current flowing at any one time is about 650mA due to power dissipation issues, see:-

Mike I am sorry for the error. But the schematics were useless anyway as i couldn't use ULN2003. Thanks for pointing out the obvious mistake... :P

Any ways i was looking out for other solution to my problem and i found TPIC6595. This is exactly what i need but this can only sink and i think one that sources is not available.

I also found NTJD4001N. I think it sould be able to handle my switching needs. I was wondering if there is a smilar package available with more Mosfets in a single package may be somthing like 8. But that might lead to power dissipation problems, may be thats why there arn't much available.

Also I wanted to ask if it would be better/possible to switch the cathode(layer) via the shift resistor itself? or do i need a separate set of S/R to run a different sequence. Or is better to switch them directly through arduino via mosfet? I know it depends on the way the project is designed and that way the code is written but i was just wondering as i haven't started writing the code.

A lot of questions... i know... but im really greatfull..

Thanks again


a new schematic.. here are the pictures.

Any ideas guys?

Is the schematic above right? or should I try something else?


The IRF540 needs 10V to turn it on and you have only got 5V from the logic chip. Look for a logic level FET. Also you need a P channel FET for switching the supply. I don't see where the current limiting resistors for the LEDs are in the circuit. C6 should be removed as it will damage your arduino (that is a very bad tutorial you copied that from)