It’s been so long since I’ve last blogged about a zany project that I couldn’t resit writing this up when a co-worker brought up a new project to me. The project itself is still TBD but the first step is seeing if part of what we wanted to do was possible on the quasi-cheap… Enter, FadeCandy!
FadeCandy is a tiny USB device for driving controllable WS2811/WS2812 LEDs. Perfect for me because I have a ton of those from my past projects.
Here’s a bit on it from Adafruit:
A new collaboration between Adafruit & Micah from Scanlime, we are excited to introduce Fadecandy, a NeoPixel driver with built in dithering, that can be controlled over USB. Fadecandy is not just hardware! It is a kit of both hardware and software parts that make LED art projects easier to build and better-looking so sculptors and makers and multimedia artists can concentrate on beautiful things instead of reinventing the wheel. It’s an easy way to get started and an advanced tool for professionals.
Link to the main Fadecandy github page: https://github.com/scanlime/fadecandy
With a bit of googling I found a lot of people building fairly complex projects with FadeCandy and Raspberry Pi. So I knew something as simple as what I wanted to do was going to totally be possible.
I’ve been busy building APIs these days at work, so I knew my way around Python & Flask and other related things to build the framework for what I wanted quickly. Using some example code from the above linked to projects I was quickly able to come up with a working prototype!
REST API to control some Blinky Things
Without giving too much away on the end goal of the project, in a nutshell I wanted a very simple way to address individual (or groups) of LEDs over an API. I am not doing animation or visualizations so speed is not important, but persistence and stability IS important. Meaning, the system needs to remember what settings were applied after it has been interrupted (reboot, crash, shock myself, etc).
I think the first go at it is pretty neat so far.
I couldn’t get the brightness and whitebalance right in the video yet, so bear with it. All the colors are washed out pretty bad. I assure you the reds are red, blues are blue, and so on…
Raspberry Pi 3 (any model will probably work)
Power Supply – I’m using a 300w 5v supply that I had on hand for my xmas lights, but anything powerful enough according to the neopixel specs will work until you scale up.
Check out my code here: https://github.com/jasper9/project-helio