This is the github repo for my 3D persistence of vision display. Here you
can find the arduino/teensy source code (
./code/), eagle schematic and
board files (
./Eagle/), and the python program I wrote to simplify the
creation of images containing simple shapes (
This was my Matura project (the end of (the equivalent of) high school in Switzerland), and I did most of the work in the second half of 2014. You can find various more detailed reports below, but here's a quick summary:
The display itself consists of 10 LED rows mounted in a double-helix arrangement. Each of them contains 16 RGB LEDs driven by three shift registers, for a total of 480 LEDs or 160 Pixels.
The shift registers are controlled by a Teensy 3.1 microcontroller board using an SPI bus (All 30 shift registers are daisy chained together). The controller is mounted on a wooden disc below the ten LED boards.
All of this is mounted on a 4mm steel shaft, supplied with 3.3V DC using two copper slip rings, and spun up to 60 Hz by a brushed DC motor. A hall sensor and a magnet enable the controller to measure the rotational speed and to adjust its timing, so that the image always stays still despite the speed not being quite constant. The image is updated 100 times per revolution, or 6000 times a second.
Currently there's no way to supply images at runtime, the display has to be stopped so that a new program can be uploaded using the Teensy's USB port.