I am a beginning hobbyist when it comes to electronics. I have read lots of theory but I only have a little bit of hands on experience. I would like to build an 8x8x8 LED cube and I came up with this circuit, which I designed myself, to control all of the LEDS. circuit

Can I get feedback on if there are any potential problems in the circuit? Will it sufficiently be able to handle the power that it is expected to draw. I expect to be able to control the input pins via an arduino. At first I had resistors in the circuit, but removed them because I believe the darlington's can handle the current without resistors.

  • \$\begingroup\$ @angelatlarge, can you elaborate? Make an answer out of your comment. \$\endgroup\$ – Octopus Mar 27 '13 at 22:00
  • \$\begingroup\$ Duh, sorry, I meant a current limiting resistor. Not really worth an answer, but see here for an introduction to the topic. \$\endgroup\$ – angelatlarge Mar 27 '13 at 22:05
  • \$\begingroup\$ Well, as I said in the question, I considered having limiting resistors in the circuit, but Ive read that the resistors in the darlington array are sufficient. \$\endgroup\$ – Octopus Mar 27 '13 at 22:07
  • 3
    \$\begingroup\$ I think you might be thinking about the base resistors in the darlington array: these allow you to hook up your controller to the darlington array without the array drawing too much current from your uC. But you still need current-limiting resistors on the output. If darlington arrays were to be limited to sinking the kind of current that was safe for LEDs, they would not be very useful except for driving LEDs :) And yes, your ULN2003 can handle a lot of current (in some sense of "a lot") but your LEDs cannot. \$\endgroup\$ – angelatlarge Mar 27 '13 at 22:09
  • \$\begingroup\$ You only need 8 current limiting resistors it seems. The LEDs are addressed individually, so the time one can be on is 1/(8x8x8) = 1/512 seconds total per second. You'll have to find LEDs that can be pulsed at really high currents to get high brightness, and also something to supply the current. Alternatively there are dedicated LED matrix driver chips. \$\endgroup\$ – geometrikal Mar 27 '13 at 22:27

Based on comments it seems that limiting resistors will be necessary: one each between the P1-P8 LED state outputs and the LED arrays, for a total of 8 resistors.

If 3.2V 20mA LEDs are used, then 100 Ohm resistors will be appropriate.

(5.0V-3.2V) ÷ 0.020A = 80 Ohms 
(rounded up to the next appropriate standard resistance value) = 100 Ohms

It could also be beneficial to hook up the reset pins on the CD4017's to the Arduino for control. The P1-P8 LED state control pins can have their duty cycles controlled for LED brightness control. Strategic use of the clock signal is necessary to cycle through each column of LEDs within each of the eight layers.


If you add up all the voltage drop for driving say 10mA average x8 peak x 8LEDs on, worst case, what do you get? 640mA and how hot will the ULN get based spec,d 'C/W and max specs must never be exceeded.

Better choice are low Vce NPN switches for row drivers.(Zetex)

  • \$\begingroup\$ The CD4017 is a decade counter. Never will 64 LEDs be active at once. At most you would have 8 LEDs cycled through 64 seperate columns of 8 each. Maximum current would be 80mA (assuming 10 for each). \$\endgroup\$ – Octopus Jan 20 '15 at 21:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.