Pro firmware - Trying to add SK6812RGBW support, possible timing issue?


I am trying to add a third mode to the Pro firmware that makes it compatible with SK6812RGBW strips.

I have almost no knowledge of C/C++ or programming these things as I only work with highlevel languages.

My first plan was to make it receive RGBW data instead of just RGB, but after a few tries I gave up as I don’t know how to debug these things and I no idea of the USB-HID spec.

Instead I just added a new method to convert the RGB array data to RGBW array data. If all LEDs have the same brightness it’ll switch them off and use only the white one instead.

My changes so far are here

The problem I have is, if I keep sending my test colors

    0, 255, 0,
    255, 0, 0,
    0, 0, 255,
    255, 255, 255

every 500ms to the stick some other LEDs start flashing up or they’ll have the wrong color.

An example:

(From right to left it should be Red, Blue, Green, White)

Could it be a timing issue? The reset time of SK6812RGBW is 80 microseconds compared to WS2812B 50 microseconds, although I don’t know how to work around that.

The light_ws2812 library seems to support it as per

Any ideas?