Tasmota WS2812B Addressable LED Controller - image 1
Tutorialbeginner

Tasmota WS2812B Addressable LED Controller

Control WS2812B/SK6812 addressable LED strips with Tasmota on ESP8266 or ESP32. Full RGB color control, animations via Berry scripting, Alexa/Hue emulation, and MQTT integration for smart lighting.

Boards:ESP8266ESP32
Firmware:Tasmota
Use Cases:Smart LightingLed ControlAmbient LightingHome AutomationDecorative Lighting

Tasmota WS2812B Addressable LED Controller

Turn any ESP8266 or ESP32 board into a smart addressable LED controller for WS2812B, SK6812, and similar NeoPixel strips. Tasmota provides web-based color control, animations, Alexa emulation, and MQTT integration.

Why This Project

  • Stunning lighting — millions of colors, individually addressable pixels
  • Voice control — built-in Alexa/Hue emulation, no hub needed
  • Web UI — color picker, brightness, and white balance from any browser
  • Animations — Berry scripting (ESP32) for custom effects
  • Cheap — WS2812B strips are $3-8 per meter

Components Required

Component Purpose Est. Cost
Wemos D1 Mini (or ESP32 for Berry) WiFi controller $3-5
WS2812B LED strip (5V, 30-60 LEDs/m) Addressable RGB LEDs $3-8/m
5V power supply (sized for LED count) Power for LEDs $5-10
470Ω resistor Data line protection (optional) $0.01
1000µF capacitor Power supply smoothing $0.10

Power calculation: Each WS2812B LED draws up to 60mA at full white. 60 LEDs = 3.6A → use a 5V 4A power supply.

Wiring

5V PSU ──→ WS2812B VCC + ESP 5V pin
GND    ──→ WS2812B GND + ESP GND
ESP GPIO4 (D2) ──[470Ω]──→ WS2812B Data In

Critical: Connect GND between the ESP and LED strip. The data signal needs a common ground reference.

Tasmota Setup

  1. Flash tasmota.bin (WS2812B support is in the default build)
  2. Configuration → Configure Module
  3. Set GPIO4 to WS2812 (or WS2812B for SK6812 RGBW)
  4. Set number of LEDs: Pixels 60
  5. Color picker appears on the dashboard

Key Commands

# Set number of LEDs
Pixels 60

# Set color (RGB)
Color 255,100,0

# Set brightness (0-100%)
Dimmer 80

# Color temperature (warm/cool white)
CT 350

# Scheme (built-in animations)
Scheme 2    # 0=single, 2=cycle, 3=random, 4+=custom

# Speed of animation
Speed 5

# Individual pixel control
Led1 FF0000   # First LED red
Led30 00FF00  # LED 30 green

Alexa Integration

Tasmota has built-in Hue emulation — Alexa discovers it as a light:

# Enable Hue emulation
SetOption30 1

# Alexa: "Set living room lights to blue"
# Alexa: "Dim living room lights to 50%"

Berry Animations (ESP32 Only)

ESP32 with Tasmota supports Berry scripting for custom LED animations:

# Rainbow chase effect
import animate
var strip = animate.strip(60)
strip.set_cb(/ i, t -> animate.palette(animate.RAINBOW, (i * 10 + t) % 360))
strip.start()

Compatible Boards

  • Wemos D1 Mini — simple, cheap, works great for up to ~300 LEDs
  • Wemos D1 Mini + WS2812B Shield — plug-and-play with 7 LEDs
  • ESP32 — required for Berry animations and larger strips (1000+ LEDs)
  • QuinLED-OG — purpose-built LED controller board with level shifter

Resources