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!