OpenSauce 2025: My homebrew lightpainting hardware and how it's evolved over the years

Appearing at OpenSauce 2025

When I broke “the board”

I’d always wanted to design my own circuit boards but I never got truly motivated until I broke “the board”.

Let me explain… Normally when you have a birthday party and a friend brings some random junk from her husband’s work, you’d probably make a mental note to never do anything with that friend again. Except, in my case, my friend’s husband was a semiconductor engineer who researched high-power LEDs and it was some circuit boards including a demo board for that year’s best and fanciest and coolest LEDs and, as a photographer who does lightpainting, it was a perfect artist’s brush for my medium.

Until one day, it broke, mid shoot, and I had to go to my backup option, which I’d not been using much at all. I’d tried which was something that I’d soldered up at the start that lived in an Altoid’s tin.

Clearly just one of a thing was a bad thing. That friend had long departed to a different country and … this seemed like something worthy of some new exploration and customization.

Thus, I did a refresher to see what had changed since the last time I’d gotten out all my electronics stuff. KiCAD 4.x had happened in the intervening time period and seemed to be a very promising open-source tool for my needs. I dug through DigiKey’s catalog to get one LED of every color of the rainbow plus some other bits cooked up a replacement board.

Of course, once you realize that you can just design a thing and get a pretty easy-to-solder PCB with fancy silkscreened labels and solder mask all perfect … why stop there? There were all of these brainstorms that I’d had over time but never really gotten anywhere with. So even before I’d gotten a chance to use the first board, I’d already started working out what follow-up boards would be. Previously, I’d spent some time trying to make some AVR powered boards with programming to do some intersting things, but nothing really worked out, but making my own PCBs seemed to open up a lot of new possibilities.

Unfortunately I got about three shoots with the board before the pandemic hit. Which meant that one of my pandemic hobbies, besides baking, was working on a bunch of fancy new boards that I wasn’t entirely sure when I’d actually get to use and, once the vaccination campaign started, I had a whole new version of my medium.

Hardware was hard in 2005

In 2005, there wasn’t really Arduinos or many modules, the C compiler for most microcontrollers was a paid expensive option, there were no accessible 3D printers or laser cutters, there were no PCB fabs that you could send off a design to that they would fab for you cheaply, Radio Shack was disappearing from the planet, and there wasn’t nearly the same sort of communities and open-source libraries that there are today.

It was hard to find things like buttons. You’d go to DigiKey and see a zillion buttons and it was hard to find the one that would fit into a perfboard or breadboard.

Some of the things I’ll be showing

I’m showing the whole evolution, starting with the earliest prototypes through what I’m currently using or currently in the process of migrating to.

Along with examples of what I’ve done photographically with my boards, I’d like to display the whole evolution of my lightpainting hardware, starting from some of the perfboard prototypes, including a bunch of duds that seemed like a good idea until I tried to actually use them and realized that was going nowhere. Like the time I decided that I could write the whole firmware myself in assembler. Or the board with the really fancy UI.

Boards on display

  • gen2a, 2005-2007
    • 8 red LEDs, AVR
    • Firmware in assembly language because AVR-GCC wasn’t out
    • No buttons, couldn’t find anything I knew would work, didn’t feel like blowing a bunch of money on random bits
    • Only so much it could do
  • gen2b, 2005-2010
    • 3 RGB LEDs, AVR
    • Firmware started out as assembly, rewritten in C
    • Moderately more useful, but without buttons or a UI, it was too much work
  • Altoids Tin, 2005-2009
    • Transportable
    • Still couldn’t find any good buttons, so it used jumpers
    • Very random selection, includes some now-rare LEDs like the earliest blue LEDs from Radio Shack
  • Demo Board, 2008-2019
    • Was a huge part of my toolset for a long time.
    • Friend’s husband said he grabbed some random bits from work for me to play with (he’s a semiconductor engineer)
    • Used it till it broke, then realized that so much of my art depended on an irreplacible object
    • gen3piano was this but “mine”
  • Adafruit MiniPOV4, never used
    • Sounded great because of the USB programming, but it used VUSB and the software was moldy by the time I’d gotten it built
    • Had been sitting unused for years, finally soldered it in 2019 only to discover they’d stopped doing anything with it long ago
    • Got me thinking about what “good” would be?
  • Pixelblaze, never used
    • Got it in 2018
    • Poor power management and the manual misled me.
    • No buttons and no way to add that
    • I ended up using the strips for my project
    • Got me thinking about what “good” would be
    • Not “mine” because closed source
  • gen3piano, 2019-present
    • My first-ever PCB design
    • Basically the same idea as the demo board, just mine.
    • I use a constant-current driver, 8 LEDs, and 8 buttons.
  • gen3basic, 3 boards, 2020-2021
    • First actual complicated board design
    • An Adruino clone board, which made coding so much easier!
    • Because it’s a custom PCB, I could use whatever button I wanted. Sadly, this was not a good one.
    • Designed so it could drive regular LEDs, APA102’s, or APA102 strips depending on how you populate
    • Various glitches, one of the buttons would crash the AVR for some reason for example.
    • Only really used as a driver for APA102 strips
    • I’d hold the board in one hand and the strip in the other, which was not so ideal.
    • Also, the 328 started to run out of memory driving a 1M 144 LED strip.
    • Swapped it over to the M4 Feather LED lightpainter before going to a pair of Teensy staves.
  • Teensy 4.1 staff, 2021-present
    • The Teensy has a lot of RAM and can drive a lot of LEDs quickly.
    • The staff is still chonky - a USB power brick, the board holder, the staff, but it goes on a stand and holds together fairly well.
    • I brought the Arduino firmware version, I also have a CircuitPython version.
  • gen32u4ia, never used, ca 2021
    • ATMega32U4 (turns out the 32U4 core is annoying)
    • 16 LEDs
    • Plenty of buttons
    • Never really could do anything useful with it?
  • ESP32 Feather Lightpainter, 2023-2024
    • Uses my custom perfboard with breadboard and perfboard sections, which means it looks a lot nicer than any of the older perfboards
    • Uses through-hole PTC fuses, level converters, etc.
    • Uses a chonky-but-friendly button.
    • Hole in the back of the case for a USB power brick
    • Uses WLED instead of my custom firmware
    • Turned out to be unexpectedly useful to have bendy LED strips
    • Replaced by the gen3smolESP, feather got scavenged for that
  • gen3FETish, never used, ca 2023
    • One of the few times I’ve screwed up so bad it wasn’t worth bodging it.
    • Didn’t read the datasheet
    • When I switch it on, the voltage is too high on the enable pin and it lets the magic smoke out of the switching power supply
    • Easy access to good 5V COB boards made me take a step back and do it all differently
  • gen3smolESP, 2025-present
    • Replaces the ESP32 feather lightpainter, much less chonky.
    • Drives 2 NeoPixel strips, has a Li-Ion cylindrical battery cell, and a switching power supply.

Extra credit side-project

I wanted to make illuminated sculptures, but I only have so much room to work with. Thus, I asked myself “How would I make something that looks neat but fits into a ziploc bag?”… or, failing that, a Sterilite container?” A lot of my inspirations seemed to be mostly air anyways, so this didn’t feel impossible. Since I’ve always liked the trusswork that was popular in the late modernist period that made the previous brutalist architecture look suddenly dated, so that’s where I started focusing.

Around the same time, I’d been browsing through the NASA Tech Report Server to look at the wealth of papers from the 1980s. I realized realized that the classic concept art renditions of Space Station Freedom was only really scratching the surface of NASA’s ambitions to build giant structures in orbit, all in trusses and with great consideration to the size and weight of the structure.

All of this coalesced into my personal SpaceframeSCAD, a tool to build parametrically defineddefiend pieces complete with joining and alignment features in order to build a variety of structures, that can be assembled into site-specific illuminated sculptures. Surprisingly, my tool extended beyond light-up sculptures and artwork; the node system lets me build tomato cages that look like something out of a Starship Enterprise arboretum that can then transform into greenhouses for the spring.

My display piece was a lighted honeycomb hex-wall using this system, just one of the truss systems that the library can produce.

Also, last year at the Maker Faire, we had some demo pieces that were connected to the display with Molex MicroFit 3.0 connnectors. After all of the kids yanked at things and everything, we came to the conclusion that the Molex MicroFit 3.0 connectors, with the crimper I was using, seem to be fairly bulletproof, so the hex-wall uses them and I’m re-building all of my other in-use hardware to also use them.


Posted:

Updated: