SPI Pixel-Protokolle 2026 — WS2812B & APA102 korrekt treiben
SPI & NRZ — wie Pixel-LEDs wirklich kommunizieren
Pixel-LEDs sprechen nicht DMX512 oder sACN direkt — sie sprechen serielle Pixel-Protokolle auf Drahtebene. Dazwischen sitzt ein Controller wie QuinLED oder Falcon, der Art-Net/sACN in SPI übersetzt. Wer das Prinzip versteht, wählt den richtigen Chip, vermeidet Flackern und treibt Matrizen mit 60 fps statt 15 fps. Grundsätzlich gibt es zwei Familien: Single-Wire NRZ (ein Daten-Draht, Timing-kritisch) und Zwei-Draht Clock+Data (Takt + Daten, robust). Beide haben Vor- und Nachteile für WS2812B, WS2815, APA102 und SK9822.

Single-Wire NRZ — WS2812B, SK6812, WS2815, TM1814
Ein Draht trägt alles, Timing codiert 0/1:
WS2812B @ 800 kHz (typisch):
Bit 1: ~0,85 µs HIGH + 0,40 µs LOW
Bit 0: ~0,40 µs HIGH + 0,85 µs LOW
Reset: >280 µs LOW (neuer Frame)
Reihenfolge: GRB, 8 Bit pro Farbe, 24 Bit pro PixelDer Controller bit-bangt oder nutzt I2S/RMT (ESP32) präzise. Vorteil: Nur ein Draht, einfache Verkabelung, billigste Chips (~0,05 $ pro LED). Nachteil: Timing-kritisch — Interrupts, WLAN oder langsame MCU zerstören das Signal. Keine Fehlerprüfung, kein Clock. Bei 500 Pixeln @ 30 fps geht’s, bei 2000 Pixeln bricht die Rate auf ~15 fps ein, weil Reset+ Datenlänge addieren. Siehe WS2812B Detail und Spannungsabfall.
Varianten: SK6812 (±150 ns toleranter), WS2815 12 V mit Backup (BI), TM1814 RGBW, GS8208 12 V dual-signal. NRZ braucht Strom einspeisen alle 2–3 m.
Zwei-Draht Clock+Data — APA102, SK9822, P9813, LPD8806
Hier gibt es Clock (CI) und Data (DI): Clock liefert Synchronisation, Daten tragen Werte. Kein kritisches Timing, Clock kann 1–20 MHz laufen:
APA102/SK9822 Frame:
Start: 32 Bit Null
Pro Pixel: 1 111xxxxx (5 Bit Global Brightness) + B + G + R (je 8 Bit)
Ende: 32+ Bit Eins (je nach Länge)
Clock: 8 MHz typisch, bis 12 MHz stabilVorteile: Bis 20 kHz Frame möglich, Global Brightness (5 Bit) dimmt ohne Farbstufen, kein Jitter. Ideal für POV, Video-Walls und Resolume Zuspiel. Nachteil: Zwei Drähte, etwas teurer (~0,12 $), Controller muss Clock mappen. Nutze twisted Pair für Clock, sonst Übersprechen. Siehe APA102 und Hardware Übersicht.
SK9822 optimiert (16 kHz PWM), P9813 älter.
Vergleich — wann welchen nehmen
| Merkmal | NRZ Single-Wire (WS2812B) | Clock+Data (APA102/SK9822) |
|---|---|---|
| Drähte | 1 (Data) | 2 (Clock + Data) |
| Rate 1000 px | ~15–30 fps | 200–500 fps |
| Timing kritisch | Ja (RMT/I2S nötig) | Nein |
| Global Brightness | Nein (nur 8 Bit) | Ja, 5 Bit → 31 Stufen + 8 Bit Farbe |
| Flimmern low-bright | stärker | geringer (SK9822) |
| Max Takt | 800 kHz fix | 8–20 MHz einstellbar |
| Preis | ~0,05 $ | ~0,12 $ |
| Ideal für | Budget-Streifen, Indoor | Video, POV, hohe fps, Outdoor-Profi |
Faustregel: Unter 500 Pixel und 30 fps nimm WS2812B/WS2815 — günstig, genug. Ab 1000 Pixel, 60 fps oder wenn Farbe bei <5 % kritisch ist, nimm APA102/SK9822. Für 12 V Outdoor mit Backup: WS2815 oder GS8208.
Verdrahtung, Level und Strom — Praxis
Level-Shifting: ESP32/ESP8266 liefert 3,3 V, Pixel wollen 5 V TTL. Ohne Shifter flackert bei 3 m Leitung. Nutze 74HCT245 oder 74AHCT125, GND gemeinsam. Bei QuinLED ist Shifter onboard — ein Grund, Fertig-Controller statt Naked-ESP zu nehmen. Siehe QuinLED und Falcon.
Kabel: NRZ 3-adrig, SPI 4-adrig (Clock verdrillt mit GND). >3 m Differential/Advatek. Strom: WS2812B 55 mA (5 V), WS2815 15 mA (12 V). Einspeisen alle 100–150 (5 V) bzw. 200–300 (12 V) mit Mean Well HLG, GND stern, Sicherung 5 A.
Fehlerbilder und wie du sie löst
- Erste LED leuchtet, Rest dunkel: Data verpolt oder Shifter fehlt, Level zu niedrig. 5 V messen am Streifenanfang (VCC≥4,7 V), Shifter prüfen.
- Zufallsfarben/Flimmern: GND nicht verbunden zwischen Netzteil und Controller — Brücke legen. Oder WLAN-Interrupt stört NRZ-Timing (bei Old-ESP) → auf QuinLED mit RMT wechseln oder auf APA102 umsteigen.
- Ende rosa/weiß gelb: Spannungsabfall, nicht Protokoll. Spannung am Ende messen, neu einspeisen.
- Langsame Rate trotz kurzer Kette: NRZ 800 kHz limitiert — auf SK9822 mit 8 MHz wechseln oder Split auf mehrere Ausgänge am Controller.
- Clock+Data dunkel: Clock vertauscht (CI/DI), oder Controller sendet NRZ statt SPI — im Config SPI-Protokoll wählen (WLED → LED Preferences → APA102).
Weiter: Protokolle, Art-Net/sACN als Input, Farbwissenschaft und Mounting.
FAQ
WS2812B oder APA102 für Anfänger? WS2812B — ein Draht, billig, jede Anleitung nutzt ihn. Wenn du später 60 fps oder feines Dimmen brauchst, wechsel zu APA102/SK9822 ohne Neu-Verkabeln des Netzteils (nur Clock nachziehen).
Brauche ich immer Level-Shifter? Bei QuinLED und Falcon nicht — onboard. Bei nacktem ESP32 ja, sonst 3,3 V Data an 5 V Streifen → flackert bei >1 m. 74HCT245 für 2 € löst es.
Wie viele APA102 schaffe ich bei 60 fps? Bei 8 MHz ~ 1024 Pixel × 32 Bit ≈ 32 kbit, Frame ~0,004 s → ~250 fps theoretisch. Real limitiert WLED/USB auf ~550 Pixel pro Ausgang bei 60 fps. Splitte auf 2–4 Ausgänge am QuinLED Dig-Quad.
Warum hat mein 12 V Streifen 4 Adern? WS2815 hat Data + Backup-Data (BI) — reißt eine LED, leitet BI weiter, Rest bleibt an. APA102 hat Data + Clock, kein Backup. Nicht verwechseln.
Kann ich NRZ und SPI am selben Controller mischen? Ja — QuinLED und Falcon erlauben pro Ausgang Protokoll wählen. Ausgang1 WS2812B NRZ, Ausgang2 APA102 SPI, Eingabe gemeinsam via sACN oder Art-Net.