WS2812

1-wire RGB · WorldSemi · ws281x

Channels
RGB
Bits / channel
8
Supply
3.5–5.3 V
PWM
400 Hz
Backup data
no
Packages
0

The original integrated part: a WS2811 die bonded into a 5050 package with the RGB LEDs. Six pins. Superseded almost everywhere by the WS2812B, which is cheaper to assemble and adds reverse-polarity protection.

Refresh & flicker

400 Hz PWM is low enough to be visible as flicker on camera and in peripheral vision when panning.

Timing

Sources disagree. This is normal and worth understanding: FastLED's numbers are tuned to drive real parts reliably, including clones, while the datasheet gives the manufacturer's nominal figures. Both are recorded here rather than picking one and hiding the conflict.

WS2812 bit timingWS2812 bit timing: a zero bit is 350 nanoseconds high then 800 low; a one bit is 700 high then 600 low; tolerance plus or minus 150 nanoseconds; reset 50 microseconds low1 · Bit encoding, to scaleDINhighlowbit 0 period 1150 nsbit 1 period 1300 nsT0H 350 ±150 nsT1H 700 ±150 nsT0L 800 ±150 nsT1L 600 ±150 ns"0" bit"1" bit0250500750100012501500175020002250time, nsDatasheet lists unequal bit periods (1150 vs 1300 ns); each bit is drawn with its own.± tolerance on each falling edge2 · One frame: 24 bits, most-significant bit firstDIN170110010007100110101700101100bitG · 8 bitsR · 8 bitsB · 8 bitsWire order GRB · frame = 24 × ~1300 ns ≈ 31.2 µs · example data, first bits 1 0 1 …3 · RESET / latchlast bits of frame 1first bits of frame 2LEDs latch the data they receivedRESET: DIN low ≥ 50 µs (not to scale)4 · Cascade: each DOUT feeds the next DINMCULED 1DINDOUTLED 2DINDOUTLED NDINDOUTLED 1 keeps the first 24 bits, re-shapes the signal and sends the rest out on DOUT;LED 2 keeps the next 24, and so on. The last LED's DOUT is left unconnected.
T0H 350 / T0L 800 · T1H 700 / T1L 600 ns · ±150 ns · reset 50 µs source: datasheet
SourceT0HT0LT1HT1LPeriodRateReset±
fastled ↗ 250 ns 1000 ns 875 ns 375 ns 1250 ns 800 kHz 280 µs —
FastLED’s figures are tuned for reliability across clones and differ from the datasheet’s nominal values. Both are recorded; the site shows which.
datasheet ↗ 350 ns 800 ns 700 ns 600 ns 1150 ns 870 kHz 50 µs 150 ns

Clones & compatibility

“Compatible” is never stated bare here — each relationship carries how strong the claim is, and what bites if you assume too much.

  • protocol compatible WS2812B

    Same signalling, different package and pin count: WS2812 is a 6-pin part, WS2812B is 4-pin. Not footprint-interchangeable.

  • protocol compatible of this WS2812B

    Same signalling; different package and pin count (4-pin vs 6-pin).

  • electrically similar of this WS2812S

    Both are six-pin 5050 parts with separate control (VCC) and LED (VDD) supply pins and a no-connect. The WS2812S sheet does not say it is the original WS2812 silicon, and its timing windows differ from the original sheet's 350/800/700/600 ns +/-150 ns.

Library support

FastLED
WS2812 ↗
Adafruit_NeoPixel
NEO_GRB + NEO_KHZ800
WLED
WS281x

Parts using this protocol

No package is catalogued for this protocol yet — it is seeded for family completeness, or it is a driver IC that drives external LEDs rather than shipping as an integrated package.

Dating evidence

Evidence, not a release date. A library commit proves the part existed by that date and says nothing about how long before.

  • 2012-12-12 announcement Adafruit launched the NeoPixel brand around the WS2812; the Adafruit_NeoPixel library's first commit is the same day, and Adafruit's retrospective 'NeoPixels: Five Years In' is dated exactly five years later ↗ day
  • 2013-07-23 first library support FastLED — first commit introducing WS2812 ↗ day
  • 2016-09-11 first library support WLED — first commit introducing WS2812 ↗ day