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
- ★ OpenMQTTGateway (OMG) — turns an ESP32 (or Pi) into an MQTT bridge for everything else: 433 MHz, Bluetooth (Govee, Theengs, Xiaomi BLE), IR, RTL_433-style protocols, BTHome, Pilight. The "I have a weird remote and want HA to see it" answer.
- See also BLE & Bluetooth IoT and Sub-GHz / 433 MHz / RTL_433.
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.