Development on TASMOTA continues apace (with the ongoing C-19 movement restrictions, possibly even more rapidly than usual) and lots of new and interesting stuff has been popping up in the code recently (for instance, if you want to connect an anemometer, to add wind-speed to your weather-station, Matteo Albinola has you covered). However, one of the most exciting recent additions has been the arrival of baked-in support for the ESP32, based on Jörg Schüler-Maroldt’s work. This first appeared in version 220.127.116.11, back at the beginning of May, after Jörg created the libesp32 compatibility library and an initial pull request back in April. Since that time there have been a lot of “
#ifdef ESP32” lines added to the code.
Now (version 18.104.22.168, as of June 17th 2020) we not only have the ESP32 compatibility and compile additions but also the addition of ESP32 hardware Ethernet support with the recently added
xdrv_82_ethernet.ino driver file. The new, tasty goodness doesn’t end there, though. If you take a quick look at the headers of that driver file, you’ll find the pinout defines and TASMOTA template for the Olimex ESP32-POE, so not only do we get the ESP32 and ethernet, we also get PoE thrown in (the Olimex board currently sells from their site for €17.95, but is also available from the likes of Mouser and even Amazon in some areas).
If you bought one of the exceedingly cheap ESP32-CAM boards (AIThinker/Geekcreit), you now have the option of TASMOTA enabling it, too. Look for a second new driver file,
xdrv_81_webcam.ino, to see the pinout details and TASMOTA template for that device.
Okay, so new, sexy additions to the code, but how do we compile TASMOTA for the ESP32. Well, if you’re using PlatformIO (and you should be!), it couldn’t be much simpler. Copy the Sonoff-Tasmota code into a clean directory (or git clone the repository) and then:-
- In that directory, copy the
- Edit your new
platform_override.inifile and uncomment line number 29 so that “
; tasmota32” becomes just “
- Type “
Sit back and watch for a couple of minutes while the compile runs. It will compile two different versions. The vanilla “tasmota” (ESP8266 version) will be created in
.pioenvs/tasmota/firmware.bin. The tasmota32 (ESP32 version) will be created in
[ For anyone who hasn’t compiled TASMOTA before, the customizations for your local network settings and for the target device itself are made in the
./tasmota directory. The simplest method for a first time compile is to use the
user_config_override.h file to update only the bare essentials. Once you’ve made sure that you can compile successfully, you can modify the (very much more complex)
./tasmota/my_user_config.h file for full customization. ]