This is the first project that I have completed with the ATMEGA328 mounted on the PCB.
I got the inspiration from an Instructables 4x4x4 cube (http://www.instructables.com/id/LED-Cube-4x4x4/) and built one first. I created the PCB myself and it had some pin headers on it that required my Arduino Uno to control it. I adapted the code from the instructables guide to use with the Arduino and added a couple of custom animations myself. I really wanted to be able to display text and a 3d sine wave so this led me to this project to make a 5x5x5 cube.
I created my design using Fritzing (http://fritzing.org/) and then sent of my gerber files for some custom PCBs. This cube consists of 125 3mm blue LEDs. Each layer of the cube has the cathodes of the LEDs is connected together and controlled using a NPN transistor for a total of 5. The 25 anodes from each layer are connected to the other layers and controlled using 25 transistors. These transistors are then controlled using rows and columns to address each LED. The gates of the transistors are connected together to form each column and the base of each transistor is connected together to form rows.
Each transistor has a 1k ohm resistor and each row had a 82 ohm resistor to limit the current going to the LEDs. I wanted it to be a bit brighter so I changed out the 82 ohm resistors to 68 ohm resistors. This is overdriving the LEDs rated current of 20ma a little but since it is multiplexed, I am not too concerned. This took 2 days of troubleshooting to get it to work. I found a couple of minor issues with my initial PCB design that I corrected using a couple of jumpers and then I still couldn't get it to run. I finally added a .1nf capacitor across the power terminals and it finally worked. I'm quite happy with the results. I don't have the 22pf capacitors typically used with the crystal installed in the video. It runs fine without them.
I am powering the cube using a USB to 2.5mm jack. This allows me to use a USB adaptor to plug into the wall or just plug it directly into a computer to power it. In the next design, I'll add a header for programming the ATMega without having to pull it from the socket.

I welcome your feedback and if there is interest, can post my Frizing file as well as share the code used.
http://www.youtube.com/watch?v=AqrUI1yvz7I