MD_Cubo LED Cube Arduino Library  2.1
Library to control LED Cubes
ICStation '595 Implementation

ICStation 595 4x4x4 Cube

Source: ICStation "ICStation 4X4X4 Light Cube Kit For Arduino UNO" at http://www.icstation.com/icstation-4x4x4-light-cube-arduino-p-5312.html

The ICStation 595 monochrome cube shield is implemented using 2 74595 ICs with an SPI interface to the Arduino controller, and is therefore a 'scan and refresh' type of device. The 595 IC outputs are connected across the LEDs and each layer of the cube is enabled for a short period (LAYER_TIME), switching in rapid succession to create a Persistence of Vision in the user's eyes.

The hardware architecture implemented shown in the schematic below.

The shield uses pins 0 through 3 for the SPI interface and 4 through 7 to activate each layer (called D16..D19 in the schematic. Because of the way the LEDs are wired through only one resistor per layer, the result is less than impressive from a brightness perspective, but it works.

Implementation Overview

The software implements an SPI interface through the standard Arduino SPI object.

Cube data is buffered in memory organized as vertical layers of 16 bits (1 word). At each refresh, the 595 is loaded with the data for a specific layer and the Arduino corresponding to that layer is set to ground (LOW) to enable the circuit for that layer.

The cube data is held in memory buffers until an update() call is made, at which point it is entirely written to the cube through the SPI interface. The animate() call is used to scan the refresh of the cube. No interrupt timers are used in this implementation.

No intensity changes are implemented in this architecture.