Light painting is an artistic medium combining light, motion and long-exposure photography. For as long as a camera’s shutter is open, a single point of light in motion will create a continuous streak in the final photograph.

Digital technology takes light painting to the next level…dozens of point lights, with color and brightness individually under computer control, weave a swath of awesome across the completed frame.

Adafruit’s NeoPixel strips, combined with the Arduino microcontroller and a supporting cast of parts, make highly refined digital light painting achievable!

Things You’ll Need:

  • Arduino Uno microcontroller (NOT Mega or Leonardo, see below)
  • Adafruit Data Logging Shield (or other shield/breakout with SD or microSD card slot)
  • NeoPixel strip, sticks or pixels (up to 170 pixels maximum — a 1 meter 144 LED strip works great!)
  • UBEC DC-to-DC converter
  • 8xAA battery holder and AA cells (NiMH rechargeable recommended)
  • SD card (or microSD with adapter), FAT-formatted
  • Camera with a long-exposure mode, plus a tripod
  • Imaging editing software that can output 24-bit BMP files (e.g. Photoshop, GIMP, Pixelmator)
  • Wire: 20 to 22 gauge or thereabouts, stranded
  • Soldering iron and related paraphernalia
  • Optional: JST connectors, power blocks, etc.
  • Support frame. 3/4" square pine molding works just dandy, or you can get all fancy using aluminum extrusion if you like.
Some additional parts and tools are needed, depending how you put this together. Read through to see how we built ours. These parts are not available from Adafruit. You might choose different materials or assembly techniques depending on your particular skill set and items on-hand. Improvise! Adapt! Overcome!

Tailored to the Arduino Uno

There’s a frequent misconception with some projects that using an Arduino Mega will make everything just that much better. Some projects can benefit, but this isn’t one of them. The code achieves 100% performance on the Uno; it will not run any faster on the Mega. Much slower, in fact, due to its need to “bitbang” the SPI interface to the SD shield.

The Arduino Leonardo is also not suggested for this project, for similar reasons.

Savvy users could adapt the project for other boards or SD adapters provided there’s a fast SPI connection between the two. Also, some AVR-specific timer registers are used, so the code won’t compile as-is on other architectures. For most of us, the Arduino Uno and Adafruit Data Logging Shield offer the most trouble-free approach.
How about Raspberry Pi then?
We have a different project for that! It uses another type of LED pixels, better suited to the Raspberry Pi.

This guide was first published on Dec 10, 2013. It was last updated on Mar 08, 2024.

This page (Overview) was last updated on Nov 09, 2013.

Text editor powered by tinymce.