Common/standard library and/or protocol for Arduino to be I2C slave for driving NeoPixel I would like to control a string of WS2812/NeoPixels from a SBC like a BeagleBone or C.H.I.P. I realize someone has gone through the trouble to come up with a way to drive the WS2812 string from a BeagleBone directly with the PMU, but I would like to have an Arduino like a Pro Mini do the signal generation, while the SBC would direct the Arduino what to display.

I found the node-pixel setup with I2C backpack on the arduino, but it requires on the SBC side NodeJS, Johnny-Five and other libraries that I would have no other use for. It seems overkill.

Is there some commonly used protocol over I2C for controlling NeoPixels (with the arduino being the I2C slave), or will I be better off developing my own simple protocol?

On the SBC side, I would likely be coding either in C/C++ or Python.
You should break your project up into smaller parts.


Consider using other led strips, that can be driven directly. Consider using ready-made parts or opensource code (google).
Make an Arduino drive a NeoPixel Ledstrip. (Check adafruit libraries/NeoPixel guide)(Sanity/wiring check)
Communicate with Arduino and Beaglebone over I2C. Try sending "Hi" and respond "Ok".
Think of a protocol, how to indicate start/stop of a message.
Send the "color bytes" using said protocol.
Unpack the color bytes and put them in a pixel array (See NeoPixel library).
Run "ledstrip.show();”


Please atleast try to do these steps. If one fails, you can create a question with details on what you have tried or what isn't working.

Maybe "nodepixel" already has the Arduino code for you. You then only need to know what bytes to send over I2C, which you can do with any programming language that supports I2C access on your platform.