Änderungen

Aus Hackerspace Ffm
Wechseln zu: Navigation, Suche

ESP8266 mit Arduino programmieren

3.119 Byte hinzugefügt, 20:50, 4. Jul. 2016
+----------------------------+
ESP FTDI (auf 3.3V Betrieb stellen!)===== ======GND <-> GNDVCC <-> VCC (Externen leistungsfähigen 3.3V Regler nehmen!)TX <-> RXD RX <-> TXD GPIO0 <-> DTR (LOW = Firmware Upload, HIGH = Run)
GPIO2 <-> über 10K an VCC (3.3V), kann dann aber weiterverwendet werden als Ausgangsport
CH_PD <-> über 10K an VCC (3.3V)
GPIO0 pull to GND for firmware flash
RST pullup to VCC
 
Wichtig: Bei größeren Modulen auch GPIO15 auf GND setzen.
</pre>
Im Arduino "Generic ESP8266" auswählen und PLAY drücken - es sollte das Ding programmieren. Nutzt man ein Terminal-Programm muss ggf. die RTS-Leitung im Program auf einen anderen Pegel gesetzt werden, damit das Programm im ESP gestartet werden kann.
 
== Ich will es möglichst streßfrei... ==
Selbst der Adafruit Huzzah hat Probleme mit dem SPIFFS Upload wenn ein FTDI verwendet wird, ausserdem benötigt es Tastendrücke zum programmieren. Kaufe daher am besten eine NodeMCU mit einem nicht-FTDI-Chip, am besten CP2102 basiert. Dies lies sich unter Arduino direkt ohne probleme umprogrammieren.
 
== Problem: ESP8266 stürtzt ab / macht kein WLAN ==
* Meist ist hier die 3.3V Versorgung nicht leistungsfähig genug. Ein separater 3.3V Regler hilft dann. Bitte mit kurzen bzw. dicken Kabeln anschliessen.
 
== Problem: ESP8266 lässt sich mit Arduino nicht programmieren ==
* 3.3V Regler ist möglicherweise nicht leistungsfähig genug -> eigenen Regler aufbauen. Dies ist meist der Fall wenn man die 3.3V von einem Arduino oder FTDI Modul versucht zu verwenden. Die 5V aus dem USB-Port reichen aber in der Regel aus, um davon ein starken 3.3V Regler zu betreiben.
* Wird ein Modul wie Adafruit Huzzah verwendet ggf. noch einen Elko (~100uF / 6.3V) nah an die Versorgungspinne des ESP-Moduls löten.
* Modul in den Upload-Modus bringen - meistens muss man dazu entweder eine bestimmte Tastenkombination drücken oder die richtige Reset-Variante in Arduino einstellen.
 
== Problem: ESP8266 lässt sich mit Arduino programmieren, aber der SPIFFS-Upload bricht mit einem Fehler immer ab ==
* Versorgung sollte stabil sein und richtige SPIFFS Größe sollte ausgewählt sein (ggf. klappen einige Kombinationen nicht)
* Das ESP-Upload-Tool scheint nicht sonderlich Fehlertolerant programmiert zu sein - folgendes kann man noch ausprobieren:
** Erweiterte Einstellungen der seriellen Schnittstelle in der Systemsteuerung ändern (kleinere Blockgröße kann helfen)
** Statt einem FTDI lieber einen anderen USB-Seriell-Konverter nehmen (CP2102 klappt besser). Dem FTDI scheint ein stabiler Quarz zu fehlen.
** Eigene Stromversorgung für FTDI und ESP, damit auch der FTDI stabil arbeiten kann.
** Andere Baudrate in Arduino probieren - 921600 klappt aber auch meistens und ist halbwegs schnell.
* Not-Betrieb über OTA:
** Aus Beispiel "ArduinoOTA" -> "BasicOTA" auf das Modul spielen (WLAN Daten vorher im Source anpassen), dieses Resetten.
** Im Terminal sollte zu sehen sein das sich das Modul mit dem WLAN verbindet und eine IP-Adresse bezieht.
** Nach einiger Zeit sollte im Arduino unter "Ports" nun dieser spezielle OTA-Port auftauchen. Ggf. Arduino neu starten bzw. Installation überprüfen.
** Wenn das klappt, den richtigen Sketch (meist ein Webserver) nun erstmal nur kompilieren aber nicht uploaden.
** Diesen speziellen OTA-Port wählen, *zuerst* nun über "Sketch Data Upload" die SPIFS Daten hochladen.
** Das Modul bootet darauf neu, noch ist aber das OTA-Program drauf. Nun als letztes auch noch den richtigen Sketch aufspielen. Das Modul bootet neu in diesen Sketch. Will man den Sketch ändern muss man leider alle Schritte hier wiederholen - daher ist es nur als Not-Lösung zu gebrauchen.
1.954
Bearbeitungen