I sat down and built the schematic for my 4x4x4 LED cube tonight. I only built out 2 layers. The other 2 layers are identical to the first two. They are stacked on one another in 3-dimensions by attaching the anodes of the LED "segment" to 16 columns and attaching the common cathode of each "digit" to one of 8 pins on the MAX7219 driver IC.
View KiCad files on GitHub.
Pins 3, 10, 5, and 8 will be connected to the other two layers. Pins 1, 12, and 13 will be connected to the microcontroller's SPI interface.
I'm pretty excited about using the MAX7219 again. I've written previous posts about it as a driver for a 7-segment display.
- FPGA for Fun #1 (Part 1) - Driving the MAX 7219 LED Display Module
- FPGA for Fun #1 (Part 2) - Driving the MAX 7219 LED Display Module
- Driving the Max 7219 7-Segment Display Module from ASP.NET Core on the Raspberry Pi
The same concepts still apply, but rather than driving 64 segments of 8 LED digits, we'll be driving 64 individual LEDs arranged in a 4x4x4 cube.
The design was challenging because I had to figure out how to evenly divide the digits while also enabling easy physical construction. I went through three previous revisions until I finally landed on this one.
I have the LEDs already, so I will start working on the actual cube. I ordered some MAX 7219 ICs and sockets from China, so they'll take a while to get here (around half a month to a month). I already have an Arduino Pro Micro clone that I can use as a microcontroller. I need to solder some female headers onto a perfboard so that I can easily remove the Arduino. I decided not to hassle with creating a standalone Arduino circuit. It just seems like too much trouble when I can get a pro micro with built in USB programmer for less than $5.