Let’s Build It: 3x3x3 LED Cube Part 1: Concept

If you’ve ever seen a video of an LED cube, it’s pretty impressive. Here’s a video of my LED cube, and the one that you will be learning about in this post:

Today, we are going to cover the concept of how these led cubes work, and what materials we will need to gather before we start to build and program one. While LED Cubes can be any size, 3x3x3 is usually the easiest size to work with and program.

What is an LED?

An LED is a special type of Diode that emits light when current is run through it. What’s a diode you ask? A diode is an electrical component that only allows electricity to flow in one direction. So with an LED, if you apply current in one direction it lights up, but if you apply current in the opposite direction it stays off

The Cube:

The cube itself is made up of 27 LEDs arranged in a specific pattern so we can control which lights light up and which ones stay off. The idea behind the cube is that we want to be able to control the LEDs individually. And, as a matter of fact, we can!

The Concept:

LEDs have 2 leads coming off of them, a positive anode and a negative cathode. If we want to light specific LEDs in our 3x3x3 cube up, we can solder the leads together in a specific way so that we can. For a minute, let’s take a trip back to 8th grade algebra. If you remember the torture of graphing functions over and over, you might recall that if we have a vertical line and a horizontal line, there is exactly one point where the two lines intersect. Why do we care? Well, since the LEDs have 2 leads, if we solder all the negative ends (cathodes) together in each 3x3x1(length x width x height) level that’s 3 LEDs long, 3 LEDs wide, and 1 LED high. This is a view from the top down:

This shows one layer of the cube, the actual cube is made of 3 of these stacked on top of eachother

And each positive end (anode) in each 1x1x3 (one LED long, by one LED wide, by 3 LEDs high) column together we can specify a level and a column which will light up one LED. We can even go a step further and call each level a horizontal line on the  z-axis of a 3d graph and each column a point on the (x,y) plane. Then to get an LED to light up, we would define an (x,y) coordinate that relates to the position of the column that our LED that we want to light up is in. Now, all we need to do is define a position on one of the 3 positions available to us on the z-axis (there are only 3 positions, because our LED cube is only 3 LEDs high).

This diagram shows the what the connections should look like from the side view. Red connections indicate the anode connections, and blue indicates the cathode connections.

Red Indicates Positive Connections and Blue indicates Negative/Ground connections

So how does this allow us to control individual LEDs? Well, say we want to light up the top layer, rear right LED. We would ground the top layer, while keeping all the other layers charged (remember, the LED won’t light with current flowing the wrong away) and then charge the rear right anode.

Why don’t you try one?

How would we light the middle layer center LED?

Highlight here for the answer:

We would charge all the layers except for the middle one, which we would ground. Then we would charge the center anode.



  1. very cool.i love the addition of the video Clay. and i love how you hid the answer. i’ve never seen that before. crazy simple. thanks.

    but dang – i still don’t get this.
    how are you designating the 3x3x1 level and the 1x1x3 level?

    • Simharry3
    • February 10th, 2011

    Sorry about the confusion, what I was defining was a (Length x Width x Height) of LEDs. All I was trying to say was that we want to connect each cathode of the LEDs in each 3 LED by 3 LED by 1 LED layer. Then, you need to connect all the anodes in each 1 LED by 1 LED by 3 LED column. I have fixed this in the tutorial as well. Thanks for the feed back, and hope this helps!

  2. yes .. thank you Clay.

    • BRIAN
    • February 4th, 2012

    you can provide the code for the arduino please?

  1. No trackbacks yet.

Leave a comment