ESP-01 (ESP8266) Programmer – So funktioniert der Flashvorgang
Wir von Xgadget.de sind immer auf der Suche nach neuen Bastelprojekten, darum haben wir uns dieses mal an einem kleinen WLAN-Modul versucht. Technik-Begeisterte haben vielleicht schon öfters von dem ESP8266 Modul in der ESP-01 Ausführung gehört, dieses bietet euch für wenig Geld ein 2,4 GHz WiFi-Modul für Bastelzwecke. Für die eigentliche Programmierung kann man auf einen günstigen ESP-01 USB-Programmer aus China zurückgreifen – diesen könnt ihr euch Versandkostenfrei für gerade einmal ca. 1,70 Euro direkt von dort bestellen.
Wo bestelle ich den ESP-01 Programmer?
Wir haben unseren Programmer für den ESP-01 direkt bei AliExpress bestellt, der Händler gibt dabei eine maximale Versanddauer von bis zu 60 Tagen an. In unserem Fall hatten wir mit dem Standardversand die Ware nach etwa 35 Tagen im Briefkasten, wer es schneller möchte sollte auf die „Air Mail“-Versandart zurückgreifen – dort liegt die Lieferzeit in der Regel bei ca. 14 – 24 Tagen.
ESP-01 Programmer – Preis ca. 1,70 Euro – bei Aliexpress bestellen*
Neben dem USB-Programmer benötigt ihr selbstverständlich einen entsprechendes ESP-01 Modul sowie noch ein kleines Stück Draht oder einen einzelnen Widerstand.
ESP-01 Modul -Preis ca. 1,80 Euro – bei Aliexpress bestellen*
Widerstand – Kompletter Pack für ca. 1,50 Euro – bei Aliexpress bestellen*
Unboxing & Treiber
Auf ein Unboxing verzichten wir an dieser Stelle, da ihr in dem kleinen Versandpäckchen lediglich den USB-Programmer für den ESP-01 vorfinden werdet. Zusätzliche Treiber werden in der Regel nicht benötigt, können aber von HIER heruntergeladen werden.
Welche Software eignet sich zum Programmieren?
Ein ESP8266-Modul kann mit unterschiedlicher Software programmiert werden, so kann man neben der Arduino IDE auch LUA-Code mit dem ESPlorer auf das WiFi-Modul aufspielen. Wir haben für unseren Test allerdings auf die offizielle Arduino IDE gesetzt, für diese gibt es zusätzliche Software auf GitHub, sodass wir auch die ESP8266 WLAN-Module damit programmieren können. Eine entsprechende Anleitung zur Programmierung des ESP-01 mit der Arduino IDE haben wir in einer extra Anleitung veröffentlicht -> Zur Programmier-Anleitung gehen (wird in kürze veröffentlicht).
Flashen nicht möglich? – So geht es:
Euer Programm lässt sich nicht auf das ESP-01 WLAN-Modul übertragen? Kein Wunder – der China USB-Programmer benötigt für den eigentlichen Flashvorgang auch noch ein Stück Draht bzw. alternativ auch einen Widerstand den ihr einfach zwischen den folgenden beiden Ports steckt:
Nehmt nun einen kleinen Widerstand und steckt diesen zwischen GPIO0 und GND, anschließend führt ihr mit ein wenig Druck auch das WLAN-Modul in den Steckplatz ein:
Nur durch diese Methode wird der ESP-01 in den Flashmodus versetzt – Achtung: Wollt ihr einen weiteren Flashversuch wagen, müsst ihr immer zunächst euer WLAN-Modul aus- und einstecken um diesen Vorgang erneut durchzuführen. Alternativ könnt ihr auch den USB-Programmer kurz aus eurem USB-Port entfernen.
Ich habe es mit einem esp8266-1 versucht. Da ein Hardware-Defekt nicht auszuschließen ist, habe ich ein neues Modul und einen neuen Programmer versucht.
Leider lässt sich das esp8266-1 NIE flashen! Ich bekomme immer die gleichen fehlermeldungen.
dass mal harware defekt ist, kann passieren, Dass aber alle 30 ESP8266-1 defekt sind, glauben Sie wohl selber nicht.
Mathias noch mal.
Diese Fehlermeldungen habe ich jetzt gefühlte 1000 mal gelesen……
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed
@Mathias
Wiederstand fehlt oder hat keinen Kontakt. Hatte die gleichen Fehlermeldungen, als ich den vergessen hatte. Funktioniert mit Widerstand bei mir, brauchte aber ein wenig Gewalt.
hier redet jeder von wiederstand ,
aber wieviel Ohm muss der haben ??
Sie können auch ein Stück Draht verwenden, lediglich die zwei Pins müssen für den Flashvorgang miteinander verbunden sein. Alternativ kann auch ein kleiner Widerstand verwendet werden ob nun 1 Ohm oder 500 Ohm sollte dabei relativ egal sein.
Um die 10K Drahtbrücke geht auch.
Beim ESP8266-01 v2.1 und v3.0 musste ich in der Arduino IDE dem Flash Mode von DIO auf DOUT setzen damit es funktioniert. Für die Verbindung GPIO0 nach GND habe ich einen 3,3k Widerstand genommen.
Gruß Herby
Guter Hinweis – danke! Der Wechsel auf DOUT hats bei mir gebracht 🙂
Nur zur Info was den Adapter angeht.
Habe selbigen hier. Am TX/RX liegen 5V an anstatt der 3.3V die anliegen dürfen. Messt das mal nach. Bei mir sind es 5V.
Hasb durch zufall gelesen in einer Rezension, da das einer erwähnt hat.
Die komplette Logik des ESP8266 ist auf 3.3v ausgelegt und kein Volt mehr. Da der ESP ein wenig tollerant ist funktioniert, das gelegntlich aber
kann auch sofort das Bauteil zerstören bzw. nach dem xten mal.
Dachte auch das hier ein Levelshifter drin ist bzw. der CH340G diese liefert aber leider ist dem nicht so.
Von daher würde ich ihn nicht einsetzten
Ich kann hier Chris nur bestätigen, hab das bei meinem Adapter nun auch nachgemessen und es liegen 5V statt der 3.3V an TX/RX an.
Ich habe mir den Adapter mal genau angesehen
und auch das Datenblatt zum CH340G der dort verbaut ist.
Der CH340G kann prinzipell auch 3.3V.
Auf der Platine ist auch ein Spannungs-Regler verbaut (SMD 662K = LM6206N3) der die 3.3v liefert.
Leider hat man hier die 5V Versorgung vom USB genommen
und dadurch ist auch der Signalpegel vom CH340G auf 5V.
Man könnte jetzt die 5V Leitung trennen am Pin 16 und sie an den
Ausgang des 3.3v Reglers klemmen.
Hier muss man aber auch die V3 Leitung Pin 4 an den Regler.
Das sollte von der Theorie her klappen. Da der ESP8266 sowieso über den Regler versorgt wird und der CH340G nicht viel mehr zieht (typ. 12mA) sollte der Regler das aushalten. Dimensoniert ist er mit 250mA laut Datenblatt. Zwar etwas knapp sollte aber gehen.
Evtl. könnte der Elko noch problematisch werden da er beim
Laden auch einiges zieht.
Werde ich mal ausprobieren und schauen was passiert,
weil so kann man den Adapter nicht gefahrlos nutzen.
Gruß Chris
So das Ganze hat mir jetzt kein Ruhe gelassen.
Ich habe die Leitungswege mittels Ohmmeter mal durchgemessen um zu sehen,
wo denn nun was wie verbunden ist.
Beim Umbau bin ich wie folgt vorgegangen:
Ich habe den Pin16 vom CH340G abgelötet und hochgebogen.
Zur Lötfläche hin habe ich diesen isoliert.
Das ist wichtig, da sonst die 3.3V mit den führenden 5V des USB
den Regler zerschießen.
Vom Pin16 habe ich dann eine Leitung direkt zum 3.3V Ausgang
des SMD 662K gelegt.
Parallel dazu habe ich dann noch vom 3.3v Regler-Ausgang auf
Eine Verbindung zum PIN4 des CH3640G gelegt.
Hier muss man aber nicht direkt an den Chip sondern konnte einfach den Entkoppelungskondensator anzapfen der gegen GND geht.
Das ist das SMD-Bauteil, welches als erstes am USB-Anschluss liegt.
Am SMD-Kondensator dann den Anschluss nehmen der zum Chip hin zeigt.
Also vom Rand weg. Am besten vorher mit einem Ohmmeter austesten.
Der 3.3V Ausgang am SMD 662K ist der rechte Pin der zum gelben Pfostenstecker liegt.
Wenn man jetzt alles Spannungswerte misst hat man auf TX/RX die
konformen 3.3V anliegen. Eine Verbindung zum ESP8266 habe ich mittels
Realterm aufgebaut und hier reagiert er ohne Probleme auf alle Kommandos.
Über den Kondensator muss man sich auch keine Sorgen machen,
da er ja bei der Konstellation den 5V Kreis stabilisiert wie vorher auch.
Ich wollte erst die Leitung unterbrechen habe aber dann festgestellt das diese weitergeführt wird zum Regler. So blieb nur die Lösung den Pin16 zu isolieren,
was letztendlich auch die beste Lösung war.
Bei dem Ganzen Vorgang wurden alle Punkte mehrfach mittels Ohmmeter durchgemessen um sicherzustellen auch die richtigen Verbindungen zu erwischen.
Bei der Platine kann man leider sehr schlecht die Leitungswege mit dem Auge erkennen.
Wer das ganze jetzt nachbauen will, sollte besser noch auf die Bilder warten
Oder sich 100% sicher sein was er da macht.
Ein USB Port ist schnell zerschossen darüber sollte man sich im Klaren sein.
Ich schau mal das ich Stefan ein paar Bilder schicken kann,
so dass er sie ggf. mal hier posten kann.
Gruß Christian
The most simple ESP01 programmer:
https://www.youtube.com/watch?v=ijnH8BtXKuU&feature=youtu.be
Danke für den Super Tipp mit dem Widerstand zum Überbrücken von GPIO0 und GND, früher habe ich manuell unten eine Verbindung angelötet. aber das Reinstecken von einem Widerstand geht um vieles schneller! 🙂
Hallo @ll
ich habe einfach einen Dipschalter auf auf der Unterseite des USB CH340G angelötet GND ->D0. Beim Aufliegen auf den Tisch und Einstecken am USB Port, leichter Druck und der ESP ist im flash Modus. Loslassen und flashen…geht doch: wer hat es erfunden?
Danke!
Der Tipp hat mir endlosen Frust erspart.