8x8x8 LED Cube
8x8x8 Single Color LED Cube built with an AtMega32.
Building the Software
You need an AVR GCC Toolchain (eg. WinAVR) to compile both AVR firmwares. You need a C Compiler for your computer (only gcc tested, others should work) and a recent JDK with Java3D to build the PC Software, CubeControl. It should work on Windows, Mac OS X and Linux. To compile a project, just enter it's directory and run make. If you get errors compiling CubeControl, try changing the hard-coded JDK paths in the libSerial makefile, found in CubeControl/libSerial.
This LED-Cube uses an AtMega32 for displaying animations and an AtMega8 for Audio Visualizations. I first built the Circuit on a 160x100mm hole-grid board. This was very cumbersome, so I created a dual-sided PCB Layout with SMD Parts. You can find this Layout and the Schematic in the Hardware folder, as PNGs and Eagle files. There's also a partlist.
CubeFirmware controls the AtMega32, which in turn displays images and communicates over USB. It's in the CubeFirmware folder. Compile with avr-gcc, using the makefile (just run 'make').
This firmware controls the AtMega8, which interfaces the MSGEQ7 to get sound data. It is addressed by the CubeFirmware as a TWI-Slave. Compile it like CubeFirmware.
CubeControl is a PC software, written in Java and mostly platform-independent, to create Animations for the Cube and send them to it. It depends on Java3D to display a rotatable, clickable 3D View of the LED-Cube. It comes with it's own Serial Library to communicate with the Cube. Compile it with the makefile. You need a working javac and gcc in your Path. To compile under windows get something like MinGW or try Microsofts compiler. A more or less recent Version of CubeControl can be found as CubeControl.jar. It includes a Mac and a Windows Version of the serial driver, so it is compatible with both of these platforms.
Warning: Java3D 1.5 is incompatible with more recent OS X versions and/or Java 7. Possible workaround.
Also the Windows build of CubeControl is not tested very thoroughly. If you're on a 64bit Windows, you may also need to modify the libSerial makefile (add the
-m64 flag in the gcc call).
Allows you to test CubeControls up-/download capabilites. Unix only!
Allows you to send test data or animations saved by CubeControl to the Cube. Unix only!