Well I ordered a 2nd cube, hoping to build it and avoid some of the mistakes I made with the first one. The board itself went together easily enough again, though this time I omitted the line in connection and associated parts. Using the same jig as last time to build the LED rows, this time I pre-bent the LEDs to keep them all as uniform as possible, and to ensure there was enough clearance between the anodes and cathodes to avoid any possibility of a short circuit.
Unfortunately, despite all my expectations of a successful build, I've experienced problems with this cube that so far I haven't been able to resolve.
The first problem was that the 3rd layer (counting up from the bottom) didn't light up anywhere. I double checked the wire connection to the layer - all good - and went over the entire cube with a magnifying glass to double check for shorts, paying particular attention to the side of the cube where the layers of each row are connected together - nothing found.
Using the spare ICs from my first cube, I swapped out the ICs in the U1 and U3 sockets, as these seem to be the ones that control the layers. No change. Next I swapped out the SM13A chips (the ones that control the columns) also to no effect.
This left the ATMega328 main processing chip. I would have tried the one from my first cube, but I have since re-programmed that one and used it in a different project. I also tried putting a brand new ATMega328 in the cube (one that only has the Arduino bootloader program) but when I tried to upload the cube program to it I got the following :
Sketch uses 14222 bytes (46%) of program storage space. Maximum is 30720 bytes.
Global variables use 123 bytes (6%) of dynamic memory, leaving 1925 bytes for local variables. Maximum is 2048 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x4e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x4e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x4e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x4e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x4e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x4e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x4e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x4e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x4e
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x4e
Problem uploading to board. See
http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
At one point I did get to the stage where the 3rd layer is lighting up, but it is flickering when any of the LEDs are illuminated, as well as the 6th layer doing the same when any LEDs in that layer are illuminated.
I have also noticed that one of the animations is misbehaving. It's the one where an entire layer lights up and moves from the bottom to the top and back again, one layer at a time. Instead of doing it in a smooth movement, the bottom layer lights up, followed by the second layer, but then it jumps back to the bottom layer.
At this point I decided to give up and see if you have any suggestions.
Sorry for such a long post, but this is an amazing product and I just want to get it working the way I know it should.
Update ; Having restored everything to use the components supplied with this cube, I am back to the point where the 3rd layer isn't lighting up at all. several of the layers are displaying symptoms of flickering, and the strange 'bouncing' effect on the bottom two layers is present in all the animations that involve vertical movement through those layers.