Driving WS2812 LED's with STM32 DMA+Timer

The WS2812 aka the Neopixel is a very well know LED, it combines a fully self-contained PWM driver ic with RGB led’s in a cheap and (relatively) painless to work with package. The downside to these is their not-very-fun protocol that requires effort to ensure you drive it at the correct timing. Other fantastic people have already done a deep dive into this protocol. The TL;DR is that the protocol works out to encode the bit as 0 or 1 based on the pulse length, with minimum off times between bits....

July 1, 2021 · 12 min · Ben V. Brown