HackerLights was a project to develop tools to “paint with light”, meaning that anyone could develop full-motion, full-color light patterns for the popular WS2812 addressable LED products. Patterns weren’t simple repetitive algorithms, but were designed in image and/or video editors and streamed off of MicroSD cards. This meant that each pattern was truly a blank canvas of virtually unlimited size and complexity.

To really get the full effect (and some music selections that maybe worked better at the time than they do now), the system has to be seen in motion:

As an early embedded programming project, this was an introduction to “serious” microprocessor programming, where resource limits and the ability to juggle multiple tasks dominated software development. The Atmel 168P processor has a scant 2K of RAM, so tricks like multiplexing memory buffers between device drivers were discovered. The assembly-language LED driver could not coexist with serial UART communications (without corrupting the LED output), so a combination of techniques, including enabling/disabling the UART communications interrupt at various parts of the LED output cycle, and having the remote PC send a signal byte in advance of its main communication, were developed. Later feature additions included predicted current limiting, RC-Controller input, and a master/slave communication link for synchronizing multiple boards.

The HackerLights control board. Looks suspiciously like an Arduino Nano.

Besides the embedded project, HackerLights evolved into a research project of sorts into what sort of user interfaces and design tools worked for this novel medium. There are no standard UIs for animating a 1D array of LEDs, especially if that array can be shaped into non-linear arrangements. Furthermore, arrangements of hundreds of LEDs running at 30 frames per second mean that naive “choose each color for each frame” interfaces are doomed to overload the user. A complex, but suprisingly functional web GUI was developed to author patterns, arrange them into sets, and download them onto the HackerLights controller.

HackerLights was exhibited at the InLight festival in Richmond in 2016. Although the idea of HackerLights as a product has been abandoned, the project lives on in a permanent installation at the HackRVA Makerspace in Richmond, VA.