The World's Smallest 4x4x4 RGB LED Cube

by HariFun in Circuits > LEDs

55606 Views, 385 Favorites, 0 Comments

The World's Smallest 4x4x4 RGB LED Cube

20160130_120721.jpg
in inches.jpg
in mm.jpg

I believe this is "currently" the world's Tiniest 4x4x4 COLOR LED Cube. There are smaller ones but are usually single color and made up of fewer LEDs (3x3x3).

The actual LED cube is less than 1 inch square. It uses sixty four 3.2mmx2.7mm SMD RGB LED (Surface Mounted Device, Red+Green+Blue, Light Emitting Diode).

In this Instructable, I will share with you how I built it.

Credit where credit is due:
Original design and code is by Asher Glick and Kevin Baker.

I "simply" made a super tiny version of it. :-)

Parts

SMD LED Specs.JPG
20151114_113527.jpg
I2CLCDextraIO_assemblyProject_small.jpg

64 x RGB SMD LEDs
These are the exact LEDs that I used, but you might want to shop around for square profile LEDs. It would make soldering easier. You'll see why in later steps.

1 x Arduino
I used an Arduino Nano clone. However, most Arduino with 16 or more I/O pins should work.
Unless you're comfortable modifying code with PORT commands, I'd recommend staying with a true ATMega based Arduino (do NOT use ESP8266, Arduino M0, Arduino Due, etc)

Custom PCB
Due to the insanely tiny dimensions that we're dealing with, soldering wires for the point to point connections is too complex to do by hand, so I designed a PCB for it. It would be cool to see more tiny cubes in the world so I've shared my custom PCB.

Soldering LEDs Into Pillars

20151205_203732.jpg
BeforeInsert.jpg
InJig.jpg
DisadvantageOfNonSquareLED.jpg
HariFun #122 - How to control 12 LEDs with just 4 Arduino Pins!

The cube consists of sixteen pillars.

Each pillar consists of four rotated LEDs such that powering any two of the four leads would turn on only one color of one of the LEDs. The Arduino switches the LEDs so quickly that our eyes are fooled into thinking that multiple LEDs are on at once.

After trying many different jig ideas to hold the LEDs while I solder them, my final jig is made of three layers of cardboard. This is where it would have been simpler had I used LEDs with symmetrical square profile. To keep the symmetry as I rotate the LED at each layer, I had to create a jig that hold the LEDs at different depths!

Please see the photos and video for more detail.

This project, as with any LED cube is very labor intensive, so I took every precaution possible to ensure success. I test all the LEDs at every step to catch mistakes as early as possible.

Designing the Custom PCB

OldCharliecube2.JPG
manual wiring.jpg
PCB and LEDs.jpg
Final PCB.jpg
pcb photo.jpg

First photo above is the bottom wiring of my normal sized CharlieCube. There was a lot jumper wires that cannot short each other. Difficult, but doable at that scale.

I had naively thought I would be able to do the same thing for this cube. However, due to the tiny size of the cube, running wires in around all the 64 pins at the bottom of the PCB (and not create a short) is pretty much impossible. So, I learned Eagle CAD (mostly from YouTube :-)) and designed my very first custom PCB. It is one giant sorry mess, but it works! lol

More Soldering :-)

Nail polish2.jpg
ScarySoldering.jpg
HariFun #123 - Death by Solder - The World's Tiniest RGB LED Cube (part 3)

The distance between pillars is only about 1 milimeter! To be safe, I painted the solder joints with clear nail polish so the pillars would not short out even if they accidentally touch each other.

I decided to solder the pillars onto the top of the PCB instead of the bottom because I was worried that I would not be able to keep the pillars straight and even with the other pillars if I could not see them as I solder. The side effect of that decision is that sometimes I had to put the iron tip between the wires. Despite that extra challenge, I think it was the right decision. I soldered the inner pillars first and worked circularly outward to minimize the obstruction.

Minor Code Tweak

HariFun #129 - The World's Tiniest RGB LED Cube is finally done!

The original CharlieCube uses common Cathode LEDs. However, my LEDs are common Anode!

Thankfully, Asher Glick did an awesome job isolating the code that controls the LEDs. I only had to invert the bits in cubeplex.h so what used to be High is now Low and vice versa!

// Original Common Cathode(-) version
PORTB = pinsB[pin1];
PORTC = pinsC[pin1];
PORTD = pinsD[pin1];
// Modified Common Anode(+) version
PORTB = ~pinsB[pin1];
PORTC = ~pinsC[pin1];
PORTD = ~pinsD[pin1];

Original code is available here.
Modified code is available here.

I truly hope that your would build this or even smaller ones! However, please realize that as with any LED cube build, there are many opportunities to make mistakes that would be impossible to fix. I will share the joy of your success, but sadly I would not be able to help you debug your cube. :-( So, take your time and test every step.

PS: If you succeeded in building one, please post a link to yours at this Instructable and/or my YouTube channel.
Good luck!

PPS: I used the lasercutter at my local MakerSpace, but it would be awesome to have one at home. If you think this is a cool project, I could use your vote to win a lasercutter. Thanks!!! :-)