Most of our ESP8266 or ESP32 devices come with custom firmware. However, they could also be flashed with some open source firmware packages. In this comparison we'll look at some of the features of these packages.
ESPHome | Tasmota | ESPurna | ESPEasy | |
Captive Portal |
WiFi Credentials OTA Update |
WiFi Credentials Configuration Restore |
See below | |
OTA Upgrade | YES | YES | YES | |
Integrated Web Server | NO | YES | YES | |
Home Assistant API | YES | No, uses MQTT | YES | |
MQTT | YES, but server fixed at compile | YES | YES | |
CLI (on target) | NO | YES |
YES - Telnet |
|
Build Methodology | Defined by YAML |
Pre Compiled Binary Custom via code modification |
Pre Compiled Binary Custom via code modification |
ESPHome
ESPHome's easy configuration via YAML makes it one of my favorite firmware choices for ESP8266 devices. My one major criticism with ESPHome is the inability to redefine the MQTT server after compilation. Thus, even if you deploy a device with the captive portal enabled so that the WiFi credentials can be changed after configuration you are still stuck with a device that can't really be used unless you upload new firmware to it.
Captive Portal:
Tasmota
https://tasmota.github.io/docs/
Web Configuration:
ESPurna
https://github.com/xoseperez/espurna
Captive Portal Note: There doesn't seem to be an auto direct to a captive portal, at least not on my iphone. When the device in in AP mode you need to manually visit a website and login with a user name / password given on the debug terminal. From here you can configure your device to connect to your internet connected WiFI connection and then finish configuration.