New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for SJ1221/UCS5603 #589

JimmyM01 opened this Issue Mar 31, 2018 · 1 comment


None yet
1 participant

JimmyM01 commented Mar 31, 2018

I've been trying to get some new LEDs working. They're SJ1221s at Shiji-led. They're 12v with 3 dies per color. The SJ1221s have adjustable constant current and are fault tolerant with dual data lines. However their protocol doesn't jive with common WS2811/2812 LEDs. Looking at the protocol it seems that each color in a frame is 12-bits. 8 bits for the brightness of the color and 4 bits to set the constant current drive
I've attached the protocol and datasheet if you want to take a look.
SJ1221 control protocol.pdf

Even though the constant current bits are allowed per LED, just setting it like setBrightness() would probably be sufficient instead of inserting it the led array. So CRGB could still stay at 3x8bits.
What sort of effort is involved in creating a controller type in FastLED to output 12bits per color instead of 8?
These strips are quite new but due to their high brightness and 12V compatibility, I'm hoping to see more of them in the wild.


This comment has been minimized.

JimmyM01 commented Apr 1, 2018

That protocol is confusing me more and more. I just want some code that I can use to queue up data and send it out with WS2812 timing. WTF is a work code!? Some parts lead me to believe that each led just needs 12bits (8color+4current) but then there's some work code business and then greydata vs grey code. I'm sure part of it is the bad english. But I need to test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment