Color Kinetics pixel strings

I have iColor Flex LMX gen2 Color Kinetics pixel strings, they are like ws2811 everyone knows, but older, they use chip named Chromasic. To use these strings I need dedicated Color Kinetics controller PDS-60ca. Such controller can drive 2 strings with 50 nodes each. Problem is that I have many strings and only one controller and it's hard and expensive to buy more controllers :confused: Thankfully, someone reverse engineered its data protocol:

Item WS2812b Chromasic
Baud Rate 800 kHz 454.4 kHz
Bits Per Pixel 24 36
Idle Pattern Hold data line low Send zeros
Addressing Mode Reset to address first node; used data is โ€œswallowedโ€ by the node and not sent to downstream nodes. Send start code to address first node; consumed data is replaced by start codes sent to downstream nodes.

I just need simple rainbow effect, nothing more. Is it even possible to achieve it with Arduino? If Arduino can drive ws2811 with 800kHz then I hope it's possible to send data with 454.4kHz? How can I do it?
If I send this with 454.4 kHz baud rate:

111111111111100000000
101111111111100000001000000000000000000010011000000000000000
101111111111100000001010100001111000000010000000000000000000
100000000000000000001000000000000000000010000000000000000000
100000000000000000001000000000000000000010000000000000000000
100000000000000000001000000000000000000010000000000000000000
100000000000000000001000000000000000000010000000000000000000
100000000000000000001000000000000000000010000000000000000000
100000000000000000001000000000000000000010000000000000000000

I should get static first node set to red with a bit of blue and the second node set to yellow. If it would be working, then next I would try with dynamic rainbow effect.

Any idea how to send data with 454.4kHz?

Look at the cpp files in the fastLed or Adafruit Neopixel library. It will involve some in line machine code.

1 Like