Mark Fickett Art: Sandworm

Continuous-Integration Build Status with History & Notifications

light above office partitions

The Sandworm primairily serves to show the status of continuous integration tests — the nose is the current state, with history of past states receding back along the body of the worm.

As well as showing build state (green for passing tests; red for failing tests; blinking for a broken build), the Sandworm shows strobes in different colors as reminders for events. (In the video, yellow indicates an imminent meeting. Not pictured, blue signals time to get coffee, white is time to go home.)

Arduino on ceiling tiles

The lights are controlled by an Arduino sitting on the ceiling tiles above the worm. It communicates (serial over USB) with a desktop computer for status information.

rotary dial with wires

A rotary dial allows selection among several projects (the Arduino reads the pulses from the dial and communicates with the computer, which then sends new state); dial 9 to start coffee time.

Code and Hardware

The system uses several libraries available on github:

Matthew Fickett's Desk Meters project (analog meters and lighting for a custom desk) also makes use of these libraries.

The light enclosure is a reuse of a project of Matthew's — somewhat the worse for wear.

Commercial hardwear:

Were I to reimplement it, I would put most of the processing desktop-side in Python, which would allow more rapid development of code to render color patterns, and more processing in that step. I might also look into obviating the Arduino entirely; neither the LED strip nor the rotary dial has a complicated interface, and in this setup it requires the desktop computer always be connected anyway.


front with dark shapes and red nose front detail underside, dark underside, light red, past dividers side, below

2011-11-23 / Plexiglass, Paper; Arduino, Addressable RGB LED Strip, Rotary Dial; Python

In: Arduino