The “user interface” is simplistic but gets the job done. With only two buttons on the CLUE board, it requires a little patience to navigate around. The main things to know are:

  • Remove the jumper between pin 0 and ground before using the light painter.
  • The software distinguishes between button “taps” and “holds” — short and long presses perform different operations. A “hold” does not repeat taps like a keyboard does…it’s a distinct interaction here.
  • The display refers to the buttons as L and R (left and right) rather than A and B. There’s a software option to rotate everything 180° if it’s easier to wire up your light stick that way, so “A” isn’t always on the left.

On startup, the code scans the folder defined by the PATH variable (e.g. 'bmps-72px' by default) looking for compatible BMP image files, and builds a list. (“Compatible BMPs” are explained on the “Make Pixel Art” page.)

The first screen displayed then lets you choose one of these images, by tapping the left and right buttons to cycle among them.

This is really the first of several configurable settings. When navigating these settings, let’s call it “config mode.”

By holding the left button, this takes you “up” a level in the configuration menu. Now tapping left/right cycles among other settings: IMAGE, TIME, LOOP and BRIGHTNESS. Find a setting you want to change, then hold left to go “down” a level and change that setting, hold left again to go “up” and pick another setting.

  • IMAGE is where you started. This lets you pick an image to load and light-paint with.
  • TIME sets how long the LEDs are “on” for light painting. Wider/taller images will usually need longer times, and correspondingly longer camera exposures.
  • LOOP sets whether an image “paints” just one time (loop off), or repeats in a continuous cycle (loop on).
  • BRIGHTNESS sets the overall image brightness. By default this is at the maximum, but you can dial it down if it helps with helps with your camera exposure, if you want background objects in the scene more visible.

Holding the right button from any config screen will switch over to “paint mode.” You’ll see a LOADING message on the screen, and the image-loading progress is displayed along the DotStar strip. Once loaded, the DotStar strip and the display will turn off (so the backlight doesn’t mess up your photo).

In paint mode, tap either the left or right button to trigger one “paint” of the image while your camera’s shutter is open. The “on” time of the LEDs is determined by the TIME setting, 1 second by default.

It’s a little different if LOOP mode is ON, where tapping left or right starts and stops an ongoing paint cycle, rather than a single pass.

Photos look best if the stick is already in motion when you tap a button…you’ll have a bit of momentum going already, whereas tap-and-then-move will make a “smushed” image. It’s awfully helpful to have a second person working the camera. One person adjusts camera settings and give directorial feedback on the other’s speed and movement. It can be done solo, it just requires more patience.

From paint mode, hold either the left or right button to return to config mode and make changes, load a different image, etc.


If no response from the LEDs, try a known-working CircuitPython DotStar test program, changing the pin numbers to match your wiring. Common issues include:

  • Clock and data wires swapped. On the CLUE these can easily be switched in code…it’s not picky about which pin has which job.
  • Verify there’s a GND connection from CLUE to the DotStar strip.
  • If testing with CLUE plugged into USB and DotStars powered from the battery pack, verify the power switch is ON.
Looping lizards!
This guide was first published on May 06, 2020. It was last updated on May 06, 2020.
This page (Using the Software) was last updated on Sep 22, 2020.