Do you remember the times when flashing ESP8285, ESP8266 or ESP32 was complicated? I have at least 2 tutorials that walk you through the process. It’s 2020 and we finally have a tool to flash Tasmota (and other .bin
files) with a click of a mouse, with the minimal setup: Tasmotizer! And what a name (and logo) it comes with!
Tasmotizer – what changed?
This small .exe file (or Linux package pip3 install tasmotizer
) contains the good old esptool packed with Python and wrapped in cute GUI sporting a dark theme (according to the GitHub page dark theme makes it go really fast)
The tool comes with 3 main options, and one a godsend feature:
- backup
.bin
- erase flash
- write flash (tasmotize!)
Backup
Tasmotizer will take care of the backup of the existing firmware automatically for you. The file is saved in the same directory as tasmotizer.exe and the name structure is backup_20200217_124735.bin
(backup_date_time.bin
). No more guessing the flash size! It’s done for you!
Erase flash
Instead of a separate option, there is a checkbox you can select to wipe the firmware off your ESP. Do this when flashing new firmware (after making a backup) so you won’t burn all your bridges behind you.
Flash happens just before flashing tasmota firmware, and you don’t have to reboot the ESP manually.
Tasmotize!
Tasmotizer lets you pick a .bin
file, a tasmota public release and tasmota dev branch if you like to test things out or contribute. The .bin
option is mainly to restore your backups.
Tasmota Release
Apart from the default tasmota.bin file, and the language versions, you have other versions available too:
tasmota-minimal.bin
-used to upgrade to latest Tasmota versions via OTAtasmota-lite.bin
without most sensorstasmota-sensors.bin
with more sensorstasmota-display.bin
support for displaytasmota-ir.bin
with IR supporttasmota-knx.bin
comes with KNX support
The dev releases come with experimental features and bugs. I guess you would not read this post if you were after these!
Tasmotizer in action
The most complicated part of flashing ESP based devices will be access to specific GPIOs needed for flashing. It’s simple enough if we are talking about development modules with all pins labelled and properly exposed. If you are trying to flash an ESP based device, not all of them come with dev pins or headers like Sonoff and some will require you to look up data sheets and probe pads on PCBs.
The process alone is very simple. Grab a serial connector: I use FTD1232 and connect your ESP device according to the table below:
FTD1232 | ESP |
Vcc | Vcc |
GND | GND |
GND | GPIO00 (for flash only) |
RX | TX |
TX | RX |
I have a couple of ESP-01 (ESP8266 based) so I made a special adapter which makes the process very easy. Connect all wires as instructed, then plug the FTD1232 to your computer. It should find a new COM port.
Make a backup, name it accordingly, as backups can’t be shared between devices.
Select “erase before flashing” and pick your tasmota.bin
file. Process will last about 1-2 minutes and after that, unplug the USB cable, and disconnect the GPIO00
from GND
.
Sending Config
Tasmotizer comes with a very convenient option: the ability to send config files. Hook up the ESP once again (without GPIO00
) and open the config option.
WiFi
Finally, you can set up the WiFi credentials for both, primary and secondary SSID. Simply type the AP name and password and your ESP will use these on the next initialisation.
It’s a shame you cannot specify the hostname this way – it would be great if you could set it from Tasmotizer.
MQTT
You can push MQTT details to your ESP device as well. All needed MQTT credentials can be pushed before you launch the ESP. Simply fill in the required fields (make a note of names and topics) and you are ready to go.
Buy USB Zigbee Stick CC2531
Buy it using these links to support NotEnoughTech.
Module/Template
Another super handy option is the ability to predefine the pinout of your tasmota device. If your ESP based device is already on the list, you can select the device from the Module list and tasmota will power up already configured for you.
If your device isn’t configured, you can select a generic
option or use the template to predefine pin functions.
{"NAME":"Generic","GPIO":[0,56,0,17,22,18,0,0,0,21,56,0,0],"FLAG":0,"BASE":18} GPIO# |00| 01|02| 03|04| 05| 09| 10| 12| 13| 14| 15| 16| CODE [17,148,29,149,52,255,255,255,138,255,139,255,255]
Property name | Value description |
NAME | Up to 14 characters for the Module name |
GPIO | Up to 13 decimal numbers from 0 to 255 representing GPIO0 to GPIO5, GPIO09, GPIO10 and GPIO12 to GPIO16 |
FLAG | 8-bit mask flag register |
BASE | Module number of a hard-coded device to be used when device specific functionality is needed |
- See Component list (for GPIO)
- See Modules list (for BASE)
- See Flag Mask table (for FLAG)
Once the config is pushed, the device will restart once again and use specified by you, information to set the Tasmota app. You can then use Fing app (or the latest release Fing Desktop) to look for a new device (or check the alert) and enjoy new Tasmotized ESP!
Conclusion
Flashing ESPs is a piece of cake now. With next to no setup (apart from soldering wires at times) and trying to figure out what some pins do, the process of pushing Tasmota firmware via Tasmotizer takes moment and is no longer a chore. How many ESP devices have you tasmotized yet? If you are looking for a guide on how to use Tasmota – as it happened, I have one as well explaining commands in MQTT and REST API. Let me know what do you think about Tasmotizer in this Reddit thread.