Images
Final results footage
Some useful files
Interactive Matter XMOS Led Tile Application
About this project
I was asked by a friend to build the electronics for a massive LED installation for the ‘Hsinchu Biomedical Science Park Exhibition Center’.
The result was very impressive: An 10 meter long installation, consisting of 30 moving triangles with controllable RGB LEDs in them, acting as a moving display.
A XMOS controller driving 60 stepper motors, with about 100 meters of HL1606 digitally controlled LED strips composing a moving LED matrix of 30×102 pixels. The concept and design was done by Taiwanese partners. Interactive Matter only provided the electronics and programming.
You can see further detail on my blog post on Interactive Matter.
Driving the HL1606 LED strips
The basic idea was simple: The XMOS XC-2 kit has 4 processing cores, three of them having two 12 pin connectors. So each core can support 16 HL1606 LED strips (some control pins and 8 data pins per connector, with two connectors per core). Due to the parallel architecture of the XMOS controllers it was very easy to create some scalable implementation for the HL1606 driver). Implementing the driver was also quite a breeze since adafruit hosts the datasheet (see links) there are some good Arduino tutorials for this (see links). The big problem was that the HL1606 only supports 2 grayscale levels, while it was only practical to use just 1 bit control (on or off). So this called for some kind of software controlled PWM. The lenght of the strip and the communication speed controls the update rate of the LED strip. And especially the communication speed varies widely with electric noise, cable length, power supply quality and so on. The solution to this was to implement some pulse density modulation. By this the grey scale modulation the color depth automatically adapts to the image refresh rate on the LEDs. The faster the update of the LED strip in comparison to the update of the RGB data displayed on the LED strip, the higher the perceived color depth. Nice (and necessary).
Driving the stepper motors
For the stepper motors I used the simple pololu A4983 stepper motor driver carrier chained with some Microchip MCP23S08 to adapt the Pololu drivers to SPI. So I could drive up to 32 motors from a single XMOS connector. A simple and effective plan. But at the beginning of the construction phase I completely underestimated how much work it is to solder 60 motor drivers.
But finally it was done, only to learn that there was a mistake in the MCP23S08 footprint. But no design is a good design without fix wires (see images).
Assembling everything
Finally the XMOS and the motor drivers were shipped to Taiwan, where the arrived safe and sound. But the result of the unpacking gave the impression of the scale of this project.
And the scale of the project got even more visible once the stepper motors and drivers where installed onto the base board. (see images)
See the rest of the installation in the images! More detail also available on my original blog post on Interactive Matter.
Comments