A couple of years ago I made a set of LEDs for my niece using a Raspberry Pi with a single button for changing the colour. The Pi was a little overkill for that but it's what I knew and had available so it's what I used. At some point it stopped working - unsurprising as there was no way to shut it down cleanly - so my brother asked me to see if I could fix it.

I didn't bother. I knew it was a poor design so I decided to upgrade it, starting from scratch for my first Arduino project!

Improvements

  • Near-immediate startup and no issues with sudden shutdowns thanks to the Arduino
  • A single USB cable powers the Arduino and lights - the old one needed a separate 12V adapter for the lights
  • Addressable LEDs require less power and enable per-LED animations
  • Physical controls for choosing brightness, mode and colour/animation
  • A nicer case that leaves the USB port accessible for reprogramming

Hardware

I used some components that I had lying around for putting into an as-yet unmade guitar pedal, including the metal case and buttons. I also scavenged the potentiometer cap from my broken Small Stone phaser pedal, and a nut from my otherwise-fine Snake Bite reverb.

Figuring out how to put everything together was quite tricky. I knew the features I wanted but finding the best layout was something that took up residency on a background thread of my mind for several days! I ended up with 3 working-but-untidy prototype boards before I got something I was more or less happy with. And it works!

Cutting the holes in the case was really quite satisfying. I ended up overshooting a little on the hole for the USB port but it's not too bad. I managed to get the input holes in a reasonably straight line too.

Overall I'm quite proud of the final device and looking forward to giving it back to my niece!