I am using the Fadecandy board to drive multiple NeoPixel configurations – and I want them to run independently.

First a bit of explanation:

– Each Fadecandy board can drive up to 8 strands of 64 NeoPixels – whether they are neopixel rings


or a Neopixel matrix


or any other Neopixel configuration

I use fcserver-osx (or fcserver-rpi) to connect to the Fadecandy from my Ruby programs. Fcserver enables me to use the OPC protocol to communicate with the Fadecandy board, and more importantly, to let several independently running programs communicate at the same time to the Fadecandy board(s).

But this requires some careful setup of the Fcserver configuration file.

In my case I want to let one program control a neopixel ring, and another to control the Neopixel matrix. This shoddy be easy as OPC has the concept of channels, where I use channel 0 for the ring, and channel 1 for the matrix.

This was in the end (after a bit of experimentation) achieved by using the following fcserver.json configuration file.


Fade candy numbers pixels on strand 0 to the range 0..63, strand 1 to the range 64..127 etc.

This configuration file contains 2 maps where the first one maps the 64 pixels on strand 0 to OPC channel 0, and the 64 pixels on strand 1 to OPC channel 1.where OPC pixel 0 corresponds to Fadecandy pixel 64.

And even better – it works.