Tasmota flashen op Sonoff Basic R2 met Linux
|
De Sonoff Basic R2 is een goede en goedkope slimme schakelaar. Met bijbehorende app zullen de meeste gebruikers tevreden zijn. Wil je meer mogelijkheden, of wil je niet afhankelijk zijn van een app, dan kun je een alternatieve firmware op de schakelaar zetten. Daarmee kun je bijvoorbeeld je schakelaar koppelen aan Node-Red of Home Assistant (HASS.io) d.m.v. het MQTT protocol. In deze blog bekijken we hoe we de Tasmota firmware op de Basic R2 kunnen flashen.
Tasmota flashen: Sonoff voorbereiden
Als eerste bereiden we de Basic voor op het flashen:
- Update de standaard firmware op de Sonoff naar de laatste versie m.b.v. de eWeLink-app
- Verwijder de stroomkabels van de schakelaar
- Open de behuizing
Om het aansluiten van de FTDI-adapter makkelijk te maken kun je een 4-pins header op het PCB van de Basic solderen.


Sluit daarna de FTDI-adapter aan op de Sonoff volgens onderstaande tabel. Let er op dat de adapter ingesteld staat op 3.3V, als de adapter op 5V staat kan de Sonoff beschadigd raken. Let ook op dat RX op TX wordt aangesloten, en vice versa.
Basic R2 | FTDI |
GND | GND |
3.3V | 3.3V |
RX | TX |
TX | RX |


Sluit daarna daarna de FTDI-adapter aan op de computer terwijl je de drukknop op de Sonoff ingedrukt houd. Door het door ingedrukt houde van de knop start de schakelaar op in de programmeermodus.
Tasmota flashen: ESPtool installeren
Installeer Python indien nog niet aanwezig. De meeste gangbare Linux-distributies zijn al voorzien van Python.
Download dan Esptool van https://github.com/espressif/esptool/releases. Pak het bestand uit en installeer Esptool:
sudo python setup.py install
Gebruik het volgende commando om de USB-poort waarop de FTDI-interface aangesloten is te vinden vinden:
dmesg | grep tty
In dit geval is de poort “ttyUSB0”, volgens de uitvoer:
[ 5723.651213] usb 2-1.4: FTDI USB Serial Device converter now attached to ttyUSB0
Bepaal daarna de grootte van het flash-geheugen van de Sonoff:
esptool.py --port /dev/ttyUSB0 flash_id
In dit geval is de grootte 1MB volgens de uitvoer:
esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8285
Features: WiFi, Embedded Flash
Crystal is 26MHz
MAC: 84:0d:8e:51:b8:65
Uploading stub...
Running stub...
Stub running...
Manufacturer: 51
Device: 4014
Detected flash size: 1MB
Hard resetting via RTS pin...
Een back-up van de firmware maken
Breng de schakelaar in programmeermodus door de USB-verdinding te verbreken en weer aan te sluiten terwijl je de drukknop op de Sonoff ingedrukt houdt. Gebruik een van de volgende commando’s om een back-up van de originele firmware van de Sonoff naar de harddisk te downloaden.
Voor een Sonoff met 1MB flash-geheugen:
esptool.py --port /dev/ttyUSB0 read_flash 0x00000 0x100000 firmware1MB.bin
Voor een versie met 4MB flash-geheugen:
esptool.py --port /dev/ttyUSB0 read_flash 0x00000 0x400000 firmware4MB.bin
Let er op dat je de juiste poort en geheugengrootte (0x100000 of 0x400000) aangeeft. In mijn geval was het juiste commando:
esptool.py --port /dev/ttyUSB0 read_flash 0x00000 0x100000 firmware1MB.bin
Als alles goed gaat zie je dan ongeveer de onderstaande uitvoer:
esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8285
Features: WiFi, Embedded Flash
Crystal is 26MHz
MAC: 84:0d:8e:51:b8:65
Uploading stub...
Running stub...
Stub running...
1048576 (100 %)
1048576 (100 %)
Read 1048576 bytes at 0x0 in 99.2 seconds (84.6 kbit/s)...
Hard resetting via RTS pin...
Breng vervolgens de schakelaar wederom in programmeermodus door de Sonoff aan te sluiten terwijl je de drukknop ingedrukt houdt.
Het Flash-geheugen wissen
Voordat we nieuwe firmware op de Sonoff Basic R2 kunnen flashen moeten we eerst het geheugen wissen. Gebruik daarvoor het volgende commando:
esptool.py --port /dev/ttyUSB0 erase_flash
Als resultaat zie je onderstaande uitvoer:
esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8285
Features: WiFi, Embedded Flash
Crystal is 26MHz
MAC: 84:0d:8e:51:b8:65
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 5.0s
Hard resetting via RTS pin...
Tasmota flashen op de Basic R2
Breng de schakelaar weer in programmeermodus door de Sonoff aan te sluiten terwijl je de drukknop ingedrukt houdt.
Ga naar Tasmota op GitHub en download het bestand “tasmota.bin”, of eventueel een andere versie naar keuze. Verplaats het bestand naar de map waar Esptool zich bevindt. Daarna kun je een van de onderstaande commando’s gebruiken om de firmware op de Basic R2 te flashen.
Voor een schakelaar met 1MB flash-geheugen:
esptool.py --port /dev/ttyUSB0 write_flash -fs 1MB -fm dout 0x0 tasmota.bin
Voor een versie met 4MB flash-geheugen:
esptool.py --port /dev/ttyUSB0 write_flash -fs 4MB -fm dout 0x0 tasmota.bin
Wanneer alles goed verloopt zie je onderstaande uitvoer:
esptool.py v2.8
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP8266
Chip is ESP8285
Features: WiFi, Embedded Flash
Crystal is 26MHz
MAC: 84:0d:8e:51:b8:65
Uploading stub.d 580480 bytes to 399923...
Wrote 580480 bytes (399923 compressed) at 0x00000000 in 35.5 seconds (effective 130.7 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin…..
Running stub...
Stub running...
Configuring flash size...
Compressed 580480 bytes to 399923...
Wrote 580480 bytes (399923 compressed) at 0x00000000 in 35.5 seconds (effective 130.7 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin…
Tasmota WiFi-instellingen
Als laatste moeten we de Sonoff met het WiFi-netwerk verbinden. Daarvoor moeten we in Tasmota het netwerk kiezen en het bijbehorende invullen.
- Start de Basic R2 opnieuw op door de USB-kabel los- en weer aan te koppelen, de schakelaar zal dan (3 minuten lang) te vinden zijn als WiFi-accesspoint.
- De LED op de Sonoff knippert; zoek nu met bijvoorbeeld je telefoon of laptop het accesspoint “tasmota-xxxx AP WIFI”.
- Maak verbinding met de Sonoff, open een browser en ga naar IP-adres 192.168.4.1.
- Je kunt Tasmota nu WiFi-netwerken laten scannen. Kies het netwerk waar je mee wilt verbinden.
- Voer het wachtwoord van het netwerk in en sla de instellingen op.
De Sonoff zal nu de verbinding verbreken en een verbinding opbouwen met het gekozen WiFi-netwerk. In de router van het netwerkzul je nu de schakelaar zien als “tasmota-xxxx”. Open het bijbehorende IP-adres in een browser om Tasmota verder in te stellen. Voor meer informatie hierover kijk je kijken op https://github.com/arendst/Tasmota/wiki/Initial-Configuration.