English Click this button for the international website

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:

  1. Update de standaard firmware op de Sonoff naar de laatste versie m.b.v. de eWeLink-app
  2. Verwijder de stroomkabels van de schakelaar
  3. 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.

Tasmota flashen op Sonoff Basic R2 met Linux - aansluitingen
Tasmota flashen op Sonoff Basic R2 met Linux – aansluitingen

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
Tasmota flashen op Sonoff Basic R2 met Linux - FTDI USB-interface
Tasmota flashen op Sonoff Basic R2 met Linux – FTDI USB-interface

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

Wanneer je de foutmelding: “A fatal error occurred: Failed to connect to Espressif device: Timed out waiting for packet header” ziet dan is de Basic R2 niet in programmeermodus opgestart. Start de Sonoff opnieuw op met de knop ingedrukt.

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.

  1. 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.
  2. De LED op de Sonoff knippert; zoek nu met bijvoorbeeld je telefoon of laptop het accesspoint “tasmota-xxxx AP WIFI”.
  3. Maak verbinding met de Sonoff, open een browser en ga naar IP-adres 192.168.4.1.
  4. Je kunt Tasmota nu WiFi-netwerken laten scannen. Kies het netwerk waar je mee wilt verbinden.
  5. 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.

Voeg een reactie toe

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *