Tooling

IoT Firmware Platforms (ESPHome, Tasmota, WLED)

Drop-in firmwares that turn an ESP32 / ESP8266 into a Home Assistant device.

These projects are the reason ESP32 took over the hobby smart-home market: you flash a firmware once, point it at MQTT or HA, and the device speaks the right protocol with no embedded C in your future. For the chips themselves see MCU Platforms; for the IDEs see Arduino & PlatformIO; for the smart-home brain see Smart Home Hubs.

ESPHome — Home Assistant's official firmware

  • ESPHome — YAML config compiles to native firmware for ESP32 / ESP8266 / RP2040(W) / BK72xx (Beken) / RTL87xx (Realtek). Tight HA integration via the native API; no MQTT required (but supported). Hundreds of supported sensors / displays / motors out of the box.
  • ESPHome Builder add-on — runs inside Home Assistant; web UI for editing YAML, viewing logs, OTA. The default install path.
  • External components — Python add-ons that extend YAML; community ecosystem is huge (mmWave, Modbus inverters, niche I2C parts).
  • License: ESPHome is GPL-3 (the firmware) + MIT (some libs). Devices you flash are yours forever.

The ESPHome / Home Assistant pairing is the "Apple ecosystem" of OSS smart home: each side knows about the other and gets out of your way.

Tasmota — the original

  • Tasmota — older than ESPHome; replaced the stock firmware on Sonoff / Shelly / Tuya devices for years. Web UI on the device, MQTT-first, rules engine, supports a huge catalog of templates. Runs on ESP8266 / ESP32 / ESP32-S2/S3/C3/C6.
  • Tasmota IR / 433 — IR-blaster and 433 MHz transceivers in firmware; the cheapest way to control IR climates / receive 433 sensors.
  • Berry scripting — Lua-like; lets you customize without rebuilding firmware.
  • License: GPL-3.

ESPHome vs. Tasmota: ESPHome is YAML-defined and recompiled per-device; Tasmota is one binary with runtime config. ESPHome is faster on the wire (native HA API) and cleaner for sensors; Tasmota is friendlier for "I bought a no-name Wi-Fi plug, give me a web UI now."

WLED — addressable LED specialist

  • WLED — runs on ESP32 / ESP8266; controls WS2812 / SK6812 / APA102 / Neopixel strips. Web UI, mobile apps (iOS / Android), HA / MQTT / DDP / E1.31 / Art-Net. 2D / 3D matrix support. The unambiguous default for "smart LED strip."
  • See Lighting & LEDs for the broader picture.

ESPurna

  • ESPurna — older ESP8266-first firmware; broader template library than Tasmota in some niches; smaller community in 2026. Reach for if a specific device is supported here and not elsewhere.

OpenMQTTGateway — the universal bridge

ZigStar / ZigUSB / niche

  • ZigStar firmware — for the ZigStar coordinator boards (UZG-01 / UZG-04). See Zigbee Stacks & Coordinators.
  • ZigUSB / SLZB-06 — Smlight's PoE Zigbee coordinator; runs a coordinator firmware flashed at the factory; remote firmware updates via web UI.
  • Sonoff DIY firmware — Sonoff's own "open-ish" firmware for some Wi-Fi modules; mostly superseded by Tasmota / ESPHome flashes.

Flashing tooling

  • ESP Web Tools — flash from a Chrome browser via Web Serial. ESPHome / Tasmota / WLED all ship a "flash from browser" page using this. Saved a generation of users from esptool.py.
  • esptool.py — Espressif's official CLI flasher. The fallback when Web Serial fails.
  • NodeMCU PyFlasher — GUI wrapper; Windows-friendly.
  • Tuya-Convert / CloudCutter — flash Tuya Wi-Fi devices OTA, no soldering. See Tuya Cloud Workarounds.
  • tasmotizer — Tasmota-specific GUI flasher.
  • LibreTiny / LibreTuya — toolchain that lets ESPHome flash Beken BK72xx / Realtek RTL87xx chips found inside Tuya/Smart Life devices, without converting them to ESP first. Big deal for Tuya owners.

Pick this if…

  • Default for HA users, custom YAML control: ESPHome.
  • Drop-in replacement for off-the-shelf Wi-Fi devices: Tasmota.
  • Addressable LEDs: WLED.
  • BLE / 433 MHz / IR universal bridge: OpenMQTTGateway.
  • Flashing a Beken / Realtek Tuya device without rip-and-replace: ESPHome with LibreTiny.
  • Browser-based flash for a beginner: ESP Web Tools.

On this page