Skip to content

Firmware einspielen

David Hebbeker edited this page Mar 11, 2018 · 49 revisions

vorherige Seite: Bezugsquellen Einzelteile - nächste Seite: Zusammenbau der Komponenten (Schaltung)

USB2serial Treiber installieren

Das Betriebssystem des Rechners, welches zum Übertragen ("flashen") des Sensors-Programms ("Firmware") auf den NodeMCU verwendet wird, benötigt einen Treiber / ein Modul um mit dem NodeMCU kommunizieren zu können. Der Rechner kommuniziert mit dem USB2Serial Chip, welcher auf der NodeMCU verbaut ist. Je nach Version des NodeMCU muss ein entsprechender Treiber installiert sein. Bei Linux Betriebssystemen ist in der Regel bereits ein passender Treiber vorhanden.

Identifizieren der Version des NodeMCU

NodeMCU umdrehen und schauen, ob da CP2102 oder CH340G steht. Ist alternativ auch (mit einer Lupe) auf einem der Chips auf dem NodeMCU zu finden.

CP2102 (NodeMCU v2)

CP210x USB TO UART Bridge Treiber

CH340G (NodeMCU v3)

CH340G Bridge Treiber

Nach der Installation der Treiber Rechner neu starten.

Bemerkung für MacOS 10.9 oder neuer: Wenn ein nicht-signierter Treiber installiert wird, muss dies in MacOS explizit erlaubt werden. Eine gute Beschreibung gibt es bei tzapu.com

Firmware einspielen

Achtung: Für das Flashen (Aufspielen des Sensor-Programms) der NodeMCU ein USB-Kabel mit nicht mehr als 1m Länge benutzen.

Es werden im Folgenden zwei Varianten beschrieben, mit denen sich dir Firmware auf den NodeMCU übertragen lassen. Beide beginnen mit den gleichen Schritten:

  1. Arduino IDE downloaden und installieren.
  2. Erweiterung für ESP8266 nach Anleitung installieren.
  3. Arduino IDE beenden.

Fortsetzung siehe Variante...

Port identifizieren

Die Kommunikation zwischen Rechner und NodeMCU erfolgt über einen Anschluss ("Port"), welcher vom Betriebssystem unter einem bestimmten Namen angesprochen wird. Den Namen des Ports muss man wissen um die Software übertragen zu können.

Den passenden Port erfährt man zum Beispiel, indem man die NodeMCU am gewünschten Port anschließt und danach die Arduino IDE startet. Unter 'Werkzeuge → Port' sind die verfügbaren Port zu sehen, meist ist recht einfach der Port mit der NodeMCU erkennbar. Einen Port auswählen und dann 'Werkzeuge -> Boardinformationen holen' ausführen. Ist der richtige Port gewählt, erscheinen Codes in der Statusleiste der IDE bei VID und PID. Die IDE danach wieder schließen, da sonst dieser Port blockiert ist.

  • MAC: Beim CP2102 wäre das auf der /dev/cu.SLAB_USBTOUART, für den CH340G ist es der Port /dev/cu.wchusbserialXXXXXXXX.
  • Windows: Windows COM3. Wenn dies nicht der richtige ist, dann einfach den nächsten in der Liste auswählen.
  • Linux: /dev/ttyUSB0

Variante 1 "Arduino IDE"

In dieser Anleitung werden die Schritte gezeigt, um die Arduino IDE für den ESP8266 vorzubereiten.

  1. Arduino IDE starten (die IDE soll nach der Installation der Erweiterungen neu gestartet werden).
  2. In der IDE unter "Werkzeuge -> Board: ..." auswählen:
    • NodeMCU 0.9 (ESP-12 Module) für NodeMCU v1
    • NodeMCU 1.0 (ESP-12E Module) für NodeMCU v2 und v3
  3. Die bin-Dateien der zu installierenden Firmware in ein Verzeichnis kopieren. Achtung, GitHub zeigt im Browser zunächst eine HTML-Version an, zuerst oben rechts über dem Sourcecode auf "Raw" klicken, dann das Ergebnis speichern.
  4. Alle in der Readme.md aufgelisteten Bibliotheken installieren. Dabei auf die angegebenen Versionen achten!
  5. Die Datei ext_def.h an die eigenen Anforderungen anpassen (WLAN-Einstellungen, Sensoren, wohin mit den Daten, ...)
  6. Nach einem Neustart der IDE sollte sich die .INO-Datei ohne Fehlermeldung auf die NodeMCU hochladen lassen.

Variante 2 "Kommandozeile"

In dieser Variante wird die Firmware per Kommandozeile hochgeladen. Die Arduino IDE muss trotzdem installiert sein.

  1. Download der fertig übersetzten Firmware
  2. Unter Windows die Kommandozeile, unter Linux/MacOS ein Terminal öffnen
  3. Bitte im folgenden Schritt beachten: Je nach Version der Arduino-IDE kann sich die Version des ESPTools unterscheiden. In unserem Beispiel war Version 0.4.12 aktuell. Gegebenenfalls muss dann im Pfad die Versionsnummer angepasst werden:
    • Windows: "%USERPROFILE%\AppData\Local\Arduino15\packages\esp8266\tools\esptool\0.4.12\esptool.exe" -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp COM11 -cf "_Pfad_zur_heruntergeladenen_Firmwaredatei_" (der Port hinter -cp muss gegebenenfalls angepasst werden, die Anführungszeichen sollten mit eingegeben werden)
    • Linux/MacOS: ~/Library/Arduino15/packages/esp8266/tools/esptool/0.4.12/esptool -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp /dev/cu.wchusbserial1410 -cf _Pfad_zur_heruntergeladenen_Firmwaredatei_ (der Port hinter -cp muss gegebenenfalls angepasst werden). Eventuell muss man dies als root ausführen. Dann muss im Pfad ~/ durch das Home-Verzeichnis ersetzt werden. Für Linux (MacOs ungetestet, evtl. mit Pfadanpassung) gibt es hier ein Skript, das auch die Konfiguration löschen kann (s.u.).

Löschen der Konfiguration:

Variante 1

Über die Arduino IDE lässt sich die gespeicherte Konfiguration mit dem Plugin ESP8266 Sketch data upload löschen. Das Plugin nach Anleitung installieren. Beim Ausführen des Plugins kommt eine Meldung, dass das Daten-Verzeichnis leer ist, und ob man ein leeres SPIFFS Image hochladen möchte. Diese Meldung mit "Ja" beantworten. Der Upload der 3 MB kann dann etwas dauern. Wenn der Upload fertig ist, kann die NodeMCU neu gestartet werden.

Variante 2

Das Vorgehen entspricht Variante 2 des Firmware Einspielens. Als "Firmware"-Datei diese Datei herunterladen. Der Aufruf des esptool muss dann geändert werden bei -ca 0x00000 auf -ca 0x100000 und der Pfad zur "Firmware"-Datei auf den eben erfolgten Download. Implementiert in einem Skript hier zu finden.

Seiten

Dokumentation

Protokolle

for more, see Protokolle

Clone this wiki locally