ESP8266-WiFi-Modul flashen

Da ich mich seit kurzem wieder intensiver mit den Themen Smart Home und „Home automation“ beschäftige habe ich beschlossen einige meiner Baustellen, Stolpersteine und Lösungen hier zu veröffentlichen. Wie im Beitrag zu meinem Smart-Home-Project V1 bereits erwähnt setze ich auf das WLAN-Modul ESP8266-ESP01 ESP8266-ESP01, da dieses unter anderem klein, zuverlässig und günstig ist.

In diesem Beitrag möchte ich zeigen wie man den ESP01 in den Flash-Mode versetzt und eine entsprechende Schaltung aufbaut um dieses kleine WLAN-Modul mit der Arduino IDE mit eigenem Code zu füttern.

WICHTIG: Bitte nur weiterlesen wenn man weiß was man tut! Beim flashen kann so einiges schief gehen, für Schäden etc. übernehme ich keine Haftung! Nutzung der Anleitung, Schaltpläne, Code etc. nur auf eigene Gefahr! :-)

Es gibt mehrere Möglichkeiten den ESP8266 zu betreiben. Man kann diesen über eine serielle Schnittstelle, zum Beispiel per Arduino Arduino, ansprechen. Alternativ bietet der ESP8266-ESP01 aber auch 1MB Flash-Speicher und 2 zusätzliche GPIO-Pins, sodass man diesen auch alleine (quasi Standalone) betreiben kann und hier nicht zwangsläufig auf einen weiteren Mikrocontroller zurückgreifen muss.

Ich habe mich bei der Steuerung des Wohnzimmers per App für eine Mischung der beiden Betriebsmodi entschieden, da mir hier einfach die 2 Pins am ESP01 nicht ausreichen und auf der anderen Seite der Arduino UNO relativ wenig Speicher/Ressourcen hat.

Der ESP8266 wurde von mir mit eigenem Code geflashed und regelt nun die gesamte Kommunikation mit der App und z.B. des Horizon-Recorders. Der Chip leitet nurnoch das eigentliche Steuerkommando für LED-Beleuchtung und z.B. Infrarot (TV, HiFi) per serieller Schnittstelle an den Arduino weiter, welcher dann nurnoch die entsprechenden Pins schaltet.

ESP8266-ESP01 flashen – Vorbereitung

Um den ESP8266 zu flashen benötigt man einige Hardware- sowie Software-Komponenten:

  • USB zu TTL Konverter Modul FT232RL 3,3V/5V – (FTDI Serial Adapter FTDI Serial Adapter)
  • 2K Ohm Widerstand
  • 1K Ohm Widerstand
  • Push-Button (muss später beim Einschalten des ESP8266 gedrückt und gehalten werden, um den ESP8266-ESP01 im Flash-Mode zu starten; der Push-Button verbindet GPIO 0 des Chips mit Ground)
  • Steckbrett Power Supply Module 3,3v/5v Steckbrett Power Supply Module 3,3v/5v und ein Netzteil
  • Steckbrett und Steckbrücken/Kabel (Male-Female und Male-Male)
  • ESP8266-ESP01 ESP8266-ESP01
  • Arduino IDE (ich nutze 1.8.5; Stand: Januar 2018)
  • Virtual COM Port Driver (ich nutze zum flashen Win10, da Mac bei mir nur Probleme macht)

ESP8266-ESP01 flashen – Schaltung

Die Schaltung zum flashen des ESP8266-ESP01 sieht bei mir folgendermaßen aus:

ESP8266 ESP01 Flashen Schaltplan

Zusammengesteckt sieht das Ganze dann in etwa so aus:
Arduino Esp8266 flashen Prototype

Arduino esp8266 ESP01 Flash StationWer desöfteren einen ESP8266 flashen muss, dem empfehle ich unbedingt dieses gesteckte Konstrukt zu verlöten und sich ggf. ein kleines Case zu basteln.

Eine solche Flash-Station ist praktisch da sich dann nichts mehr unbeabsichtigt lösen kann und man das Teil einfach irgendwo in den Schrank stellen kann wenn man es nicht benötigt.

Bei bedarf dann einfach rausholen, USB-Kabel und Strom rein, oben auf die Docking-Station den Chip setzen und schon ist alles bereit zum Flashen.

ESP8266-ESP01 flashen – Arduino IDE Setup

Wie oben schon beschrieben nutze ich die offizielle Arduino IDE zum flashen des ESP01 Chips. Zunächst muss man die Arduino IDE für das flashen vorbereiten, damit die Umgebung den Chip auch kennt und behandeln kann.

Hierfür klickt man im Hauptmenü auf „Einstellungen“ und gibt folgendes im Feld „Zusätzliche Boardverwalter-URLs“ ein:
http://arduino.esp8266.com/stable/package_esp8266com_index.json

Danach wählt man den Menüpünkt Werkzeuge -> Board -> Boardverwalter. Hier gibt man in das Suchfeld „esp8266“ ein und installiert das entsprechende Paket. Danach kann man unter dem Menüpunkt Board „Generic ESP8266 Module“ auswählen.

Da ich zu Beginn einige Probleme beim Flashen hatte, führe ich hier auch noch meine Konfiguration auf. Im Internet habe ich etliche Unterschiedliche Configs gefunden, ich bin dann aber bei dieser einen geblieben die bei mir fehlerfrei und stabil funktioniert. Zunächst flashe ich nurnoch unter Windows 10 mit installiertem Virtual COM Port Driver, da wie oben schon erwähnt Mac hier einige Probleme machte seit dem Update auf HighSierra.

Hat man nun das Board „Generic ESP8266 Module“ ausgewählt sieht man unter diesem Menüpunkt nun etliche Einstellungsmöglichkeiten. Bei mir sehen die wesentlichen Punkte in der Config folgendermaßen aus. Unter anderem musste ich den Upload Speed etwas reduzieren um den Schreibvorgang in den SPI Flash-Speicher erfolgreich abschließen zu können:

  • Flash Mode: DIO
  • Flash Size: 512K (64K SPIFFS)
  • Reset Method: ck
  • Upload Speed: 57600
  • Port: COM4

Nun kann man seinen Sketch (*.ino) innerhalb der Arduino IDE programmieren und den Chip damit beschreiben bzw. flashen.

Nutzt man wie ich den ESP01 paralell mit z.B. einem Arduino UNO R3 Arduino UNO R3, und möchte man die beiden über eine serielle Schnittstelle (TX/RX) miteinander kommunizieren lassen empfehle ich beim Aufbauen der Verbindung eine Baudrate von lediglich 9600. Das reicht locker für kleinere Datenmengen bzw. Kommandos und man kann getrost SoftwareSerial (oder auch AltSoftSerial) nutzen, denn diese schaffen keinen stabilen höheren Datendurchsatz.

Hintergrund ist, dass der Arduino UNO z.B. lediglich über eine Hardware-Schnittstelle für eine serielle Übertragung (Pin 0 und 1 -> TX/RX) verfügt. Insbesondere beim Debuggen und auch beim Hochladen wird diese am Arduino aber für die USB-Verbindung zum PC verwendet, sodass man meiner Meinung nach besser direkt auf SoftwareSerial (oder andere Library wie AltSoftSerial) aufsetzt und den ESP8266 darüber mit dem Arduino sprechen lässt.

Das war es schon – Feedback und Anregungen gerne per Mail. Viel Spaß beim Proggen eurer eigenen Smart-Home-Lösungen! :-)

Zuletzt bearbeitet: 7. Januar, 2018
Tags: , , , , , , , , , ,

Verwandte Beiträge

Kinder MP3 Player / Radio

Auf der Suche nach einem schönen und individuell konfigurierbaren MP3-Player für meine kleine Tochter, kam ich realativ schnell auf den Kinder-MP3-Player namens Hörbert . Ein schickes Gerät, gut verarbeitet und eigentlich genau das was ich gesucht habe – allerdings etwas zu teuer für meinen Geschmack. Auf der Suche nach Alternativen, bin ich nach einiger Zeit […] Weiterlesen »


Fitnessboard v1 – DIYS

Am Wochenende hatte ich glücklicherweise mal wieder etwas Zeit zum Basteln und dazu noch eine ganz nette Idee für ein Fitness-Board für das Training zuhause, welches aus der Liegestütz-Position bedient wird. Ein Video dazu gibt es weiter unten in diesem Artikel und im Youtube-Channel von tedokai.de. Jeder der Zuhause dann und wann Sport betreibt kennt […] Weiterlesen »


DIYS Smart-Home V1 – Irgendwo muss man ja anfangen!

Schon seit einiger Zeit plane ich mein Smart-Home. Neben dem Kostenfaktor für all die tollen Dinge die ich mir so vorstelle fehlt es oft an der notwendigen Zeit zur detailierten Planung und Umsetzung. Daher habe ich beschlossen einfach mal irgendwo anzufangen und dieses DIY-Projekt parallel niederzuschreiben…mal sehen wohin das führt…Ich bitte um Nachsicht wenn ich […] Weiterlesen »