Wie du mit einem Arduino Nano ein Sonoff flashst


Aufbau

Es war so weit. Hier liegt ein neuer Sonoff POW Wifi-Switch. Ich wollte gerne die alternative Firmware Tasmota flashen. Mir fehlte aber der USB-FTDI-Seriell-Adapter in 3,3V. Ich hatte aber noch einen Arduino Nano mit FTDI Chip hier rummliegen. Das Problem ist, dass dieser 5V verwendet und der ESP8266 auf dem Sonoff mit 3,3V läuft.

Ich habe also auf einem kleinen Steckbrett einen Spannungsteiler für den TX-Zweig gebaut. Damit hat es geklappt. Als Widerstandswerte habe ich 1kΩ und 1,5kΩ verwendet.

Steckbrett

Der Prozessor des Arduino Nano wird mit der gelben Brücke von RST an Masse dauerhaft im Reset gehalten. Damit reagiert er nicht auf die ankommenden Daten des USB-Seriell-Wandlers (FTDI).

Der Sonoff wird über den 3V3 Pin mit Spannung versorgt (orange Kabel) und die Masse wird mit GND verbunden (schwarzes Kabel).

Achtung ¶

Jetzt wird es kurz verrückt! Die Bezeichnung von RX0 und TX1 auf dem Arduino stellen die Ports des Arduino-Prozessors dar. Aus Sicht des FTDI sind sie genau vertauscht. Das heißt, wir müssen RX mit RX und TX mit TX verbinden.

Der RX-Pin des Sonoff wird mit der Mitte des Spannungsteilers verbunden (blaues Kabel). Hier kommen die Daten vom FTDI mit 5V an und werden durch den Spannungsteiler auf 3,3V für den Sonoff reduziert.

Dann noch den TX-Pin des Sonoff mit dem TX-Pin des Arduino (was eigentlich der RX-Pin des FTDI ist) verbinden (weißes Kabel). Die 3,3V Daten des Sonoff werden auch bei 5V Logik als High erkannt.

Schaltung fertig.

Flashen ¶

Dann den Sonoff wie gehabt flashen.

Ich habe bei dem Sonoff POW übrigens solche Steckbrettkabel verwendet, ohne sie auf dem Sonoff zu verlöten. Wenn man sie etwas unter Spannung hält, geht es auch so.

!WICHTIG! ¶

Denk immer daran, dass bei der ganzen Aktion der Sonoff NIE mit der Netzspannung verbunden ist! Die Spannungsversorgung beim Flashen erfolgt ausschließlich über den USB-Anschluss deines Rechners.