NeoPixel (WS2812) Bit Timing

The FSM Story

4 min readAug 27, 2022

Inspired by Tim’s (blog link) FSM theory, I set out to measure a few different WS2812(B) neopixels in the draw.

In my previous post (link), I described a 555 timer circuit with its CV (control voltage) pin adjustable via a secondary voltage source. The output pulse of the 555 timer is fed into DIN pin of a neopixel. That makes a very simple test circuitry, no MCU, no programming.

By adjusting the voltage at the CV pin, you control the pulse width (duty cycle) of repeating pulse outputs. At the same time, once that pulse output is connected to DIN of the neopixel, DOUT pin of the neopixel will try to relay the digital ONE or ZERO signal downstream, from which you can measure and tell if you are sending digital ONE or ZERO to the internal circuitry of the neopixel.

In each of these scope plots below, the top yellow trace is DIN signal, the bottom trace is DOUT signal, and the time division is 100ns.

I’ve included Tim’s FSM timing diagram for reference:

Neopixel First Set

digital ZERO




memento of electronics and fun exploration for my future self