SK6812 with Paul Stoffregen's WS2812Serial library

SomeoneFromGermany

Well-known member
Hello,

does someone know which parameter I have to use in "WS2812Serial leds(numled, displayMemory, drawingMemory, pin, "here");" to get the library working with the slightly smaller timing of the SK6812 led (T0H 0.3µs, T1H 0.6µs, T0L 0.9µs, T1L 0.6µs), or is there no possible way to realize this?
I don't want to buy those SK6812's RGBW if this don't work.
I'm using the t41 for this btw..

Thanks
 
SK6812 LEDs and WS2812Serial Library

Hello,

does someone know which parameter I have to use in "WS2812Serial leds(numled, displayMemory, drawingMemory, pin, "here");" to get the library working with the slightly smaller timing of the SK6812 led (T0H 0.3µs, T1H 0.6µs, T0L 0.9µs, T1L 0.6µs), or is there no possible way to realize this?
I don't want to buy those SK6812's RGBW if this don't work.
I'm using the t41 for this btw..

Thanks

I am having the exact same issue, is the library compatible with SK6812 LEDs?
 
I have personally used it with SK6812 LEDs. Seems to work fine.

Are you experiencing problems with real SK6812 LEDs? Or is this a more theoretical question about timing parameters? (which is fine... just need to know if we're talking about use of real hardware and if so, what is the actual observed problem)

If you want to adjust timing, I'd suggest using OctoWS2811. On Teensy 4.1 you can use PinList to control any set of pins, even just 1 pin. Look for the PinList example in File > Examples > OctoWS2811. You can also edit the library code to easily adjust the timing parameters, because it uses on of the Quad Timers to control the waveform.

With WS2812Serial, you simply do not get precise control of the waveform timing because it's using serial data at 4 Mbit/sec.
 
I have personally used it with SK6812 LEDs. Seems to work fine.

Are you experiencing problems with real SK6812 LEDs? Or is this a more theoretical question about timing parameters? (which is fine... just need to know if we're talking about use of real hardware and if so, what is the actual observed problem)

Hi Paul,
I was just wondering what the correct way of writing that initialisation line was for SK6812 RGBW strip, as I was getting a lot of flickering whatever I tried, and the github didn't seem to mention SK6812s. But I have now discovered I had a grounding problem - so I am using these lines without problems now:


Code:
byte drawingMemory[NUMPIXELS * 4];       //  4 bytes per LED
DMAMEM byte displayMemory[NUMPIXELS * 16]; // 16 bytes per LED

WS2812Serial leds(NUMPIXELS, displayMemory, drawingMemory, LEDPIN, WS2812_GRBW);

As far as I know, the strip is actual SK6812, according to the supplier.

incidentally, in the process I discovered my WS2812Serial library was out of date - is there a quick way of updating Teensyduino and its libraries?
 
is there a quick way of updating Teensyduino and its libraries?

Just run the Teensyduino installer. It's ok to install "on top of" a prior version.

A new installer is published approx every 3 months, so if a library has been changed recently, it'll get picked up with the next installer. But WS2812Serial hasn't changed since February 2021, so if you have 1.56 installed you should have the latest version.
 
I have personally used it with SK6812 LEDs. Seems to work fine.

Are you experiencing problems with real SK6812 LEDs? Or is this a more theoretical question about timing parameters? (which is fine... just need to know if we're talking about use of real hardware and if so, what is the actual observed problem)

If you want to adjust timing, I'd suggest using OctoWS2811. On Teensy 4.1 you can use PinList to control any set of pins, even just 1 pin. Look for the PinList example in File > Examples > OctoWS2811. You can also edit the library code to easily adjust the timing parameters, because it uses on of the Quad Timers to control the waveform.

With WS2812Serial, you simply do not get precise control of the waveform timing because it's using serial data at 4 Mbit/sec.


Hi Paul, I am actually having a problem with SK6812s. They seem to be offset in the array position. Could this be due to the T0L timing? I am using the Oocows2811 library on a teensy 4.1. Any help you have would be appreciated!
 
I don't know what you mean by "seem to be offset in the array position". Could you be more specific about the actual visual effect you're seeing, and the the code you're running? Photos might be easier than describing with words.
 
I don't know what you mean by "seem to be offset in the array position". Could you be more specific about the actual visual effect you're seeing, and the the code you're running? Photos might be easier than describing with words.


I'm sorry, Paul, I should have been clearer. I have a strip of 100 leds. If I direct address a pixel, for example leds[25]=CRGB::White;, pixel 57 will light white. I have tried unplugging the same strip of SK6812's and replacing them with ws 2812's and it works as expected. I have also tried another 6812 strip and it behaves the same as the other 6812 strip. I was wondering if the T0L time could be the issue causing alignment issues since the data sheet says it is nearly double that of a 2812. Any ideas?
 
Back
Top