Skip to content
LED Matrix

WS2812B 8x8 RGB Matrix Panel

Addressable RGB matrix for full-color pixel art and animations.

The WS2812B matrix packs 64 individually addressable RGB LEDs into an 8x8 grid, each with its own driver chip built into the LED package, controlled entirely over a single data line using a timing-critical protocol (roughly 800kHz, NRZ-encoded). Unlike the MAX7219 matrix, there's no shared clock line — the timing is baked into the pulse widths on DIN — which means the library (FastLED or Adafruit NeoPixel) has to generate precisely-timed signals in software, and that timing sensitivity is the main practical difference to design around versus a driver-chip-based display.

Because every pixel can be any RGB color independently, this is the display to reach for when a project needs full-color pixel art, animated effects, or a VU meter — anything the monochrome MAX7219 matrix can't do. The tradeoff is power: at full brightness white, all 64 LEDs together can draw close to 4A, so anything beyond a few lit pixels at modest brightness needs a proper 5V supply rather than power pulled through the MCU's 5V pin.

Specifications

Matrix size8 x 8 = 64 individually addressable RGB LEDs
LED typeWS2812B — driver chip integrated into each LED package
Operating voltage5V DC (data logic level should also be 5V, or level-shifted from a 3.3V board)
InterfaceSingle-wire, timing-critical protocol (~800kHz NRZ) — not I2C/SPI
Max current draw~60mA per LED at full white brightness — up to ~3.8A for the full 64-LED panel
CascadingDOUT chains into the next panel's DIN for larger combined displays

Pinout

PinNameDescription
15VPower, 5V DC — use an adequately-rated external supply for anything beyond a few lit pixels
2GNDGround — must be common with the MCU ground
3DINData in — timing-critical single-wire signal, connect to a digital GPIO
4DOUTData out — connect to the next panel's DIN when chaining multiple matrices

DIN is timing-sensitive: on 3.3V boards (ESP32, Raspberry Pi) many panels still register a 3.3V HIGH correctly at short wire lengths, but a proper level shifter to 5V logic is the reliable fix if you see flickering or wrong colors on the first few pixels. Always add a large decoupling capacitor (~1000µF) across 5V/GND near the panel's power input, and a small series resistor (~300-500Ω) on DIN close to the panel — both are standard NeoPixel-family recommendations that prevent power-on glitches and data-line ringing from corrupting the first pixel's color.

Variants

The 16x16 panel is not just a bigger version to swap in casually — at 256 LEDs its worst-case current draw is roughly 15A, which changes the power supply and wiring gauge decisions entirely. Stick with the 8x8 for breadboard-scale projects unless the design has already accounted for that jump in power delivery.

VariantTemp rangeHum rangeAccuracyProtocolPrice
WS2812B 8x8 Matrix~$5-9
WS2812B 16x16 Matrix~$15-25
SK6812 variant~$6-10

Board Integration

Library

Adafruit NeoPixelby Adafruit

Library Manager → search "Adafruit NeoPixel" → install

Wiring

Component pinBoard pinNote
5VExternal 5V supplyDo not power more than a handful of pixels from the Uno's 5V pin — use an external supply rated for the full panel
GNDGNDMust share ground with both the Uno and the external supply
DIND6Any digital pin

Code

C++

Notes

A 330Ω resistor in series on the DIN line and a large (~1000µF) capacitor across 5V/GND on the strip are cheap insurance against power-on glitches.