SK6812 RGBW
SK6812RGBW addressable RGBW LED strip: the WS2812-family single-wire protocol with 32 bits per LED.
Live catalog
Prefer labwired_describe with the catalog id over guessing pins or addresses.
Status at a glance
| Aspect | Status |
|---|---|
| Catalog id | sk6812 |
| Bus | Single-wire NRZ (GPIO observer) |
| Address | — |
| Datasheet | OPSCO SK6812RGBW SPC/SK6812RGBW Rev. 01: §10 timing, §13 32-bit data structure |
| Source | configs/devices/sk6812.yaml (declarative, no Rust model) |
| Tier | smoke-proven (register-level tests: crates/core/tests/parts_batch5.rs) |
Pins / attachment
| Pin / net | Role |
|---|---|
| DIN | data_pin |
| DO | Cascade (not modelled) |
| VDD/GND | Power (digital twin) |
Support matrix
| Behavior | Status | Notes |
|---|---|---|
| Bit decode by HIGH duration (450 ns threshold) | ✅ | T0H 0.3 µs / T1H 0.6 µs |
| 32 bits per LED: R, G, B, W | ✅ | white byte on each pixel |
| Latch on ≥ 50 µs low (Trst ≥ 80 µs) | ✅ | |
Artifact sk6812_rgbw, 4 bytes per LED, lit_pixels counts W |
✅ | |
| Luminance, current, cascade delay | ❌ |
Stimulus
None — the stimulus is the firmware's own edge timing.
How to run
- Place the part and an MCU in Playground, or add it to a system YAML:
- Agent:
labwired_list→labwired_describe id=sk6812→ wire →labwired_validate→labwired_run/labwired_verify. - Register-level smoke:
cargo test -p labwired-core --test parts_batch5— a two-LED frame at the datasheet timing (one LED lit by W alone) decoded to its wire bytes plus the artifact; the negative control runs the same check against the 24-bit WS2812 decoder and a strip on another pad, and both must fail. The same file's negative control proves the check fails against a stand-in that answers only 0x00 or only 0xFF.
Limitations
- Wire order is published verbatim (R, G, B, W per the datasheet); strips with a G-R-B-W die order publish G first.
See the YAML header for the full datasheet trace and every named approximation.