📗 Einrichtung des ESPuino + Flashen der Firmware + Allgemeine Tipps

Dass Visual Studio Code mit Platformio auf deinem System bereits läuft, setze ich an dieser Stelle als gegeben voraus.

Einrichtung

  1. Installiere Git und klone das Repository mittels git clone https://github.com/biologist79/ESPuino.git. Du kannst das Repository von Github auch einfach als Zip-Datei runterladen, aber der Vorteil von Git ist, dass es damit recht einfach ist, das Repository lokal später auch zu aktualisieren, um up to date to bleiben. Git ist allerdings ein recht komplexes Thema (zugegeben kämpfe ich damit auch immer wieder), aber es gibt massig Doku dazu im Netz. Das hier z.B. beschriebt, wie man ein späteres Update macht: git - Updating a local repository with changes from a GitHub repository - Stack Overflow.

  2. Jetzt muss lokal vorliegende Repository in Platformio importiert werden. Dafür klickt man links auf den Alienkopf und öffnet, sofern nicht bereits Pio Home > Open das „Pio Home“ (sofern es eh nicht bereits geöffnet ist. Dort gibt es auf der rechten Seite „Quick Access“ und darunter „Import Arduino Project“. Das ist genau das, was du suchst.

  3. Die zentrale Konfigurationsdatei in Platformio ist platformio.ini. Hier befindet sich die Projektkonfiguration und sich für unterschiedliche ESP32-Develboards unterschiedliche Konfigurationen. Hier kann man auch weitere Boards anlegen. Für Lolin D32 sieht die Dokumenation z.B. so aus. Ggf. wichtig sind die Einstellungen von upload_port und monitor_port. Passe diese an, wenn das Flashen nicht funktioniert.

  4. Editiere die Datei src/settings.h gemäß deinen Bedürfnissen. HAL musst du nicht anpassen, wenn du Platformio benutzt. Das wird über das Prozedere in Schritt 7 automatisch gemacht. Hinweis: Ist das Develboard, welches du verwendest, hier nicht dabei, starte am besten mit 99 (custom) hier. Beachte unbedingt auch das dynamische Button-Layout.

  5. Nun muss das HAL-spezifische Config-File editiert werden. Wurde für HAL die 1 gewählt, so handelt es sich um settings-lolin32.h. Hinweis: Dass diese Datei für Lolin32 konzipiert ist heißt ausdrücklich nicht, dass sie nicht mit anderen Develboards laufen würde. Es handelt sich einfach nur um Einstellungen, die mit diesem Develboard erfolgreich getestet wurden. Ggf. sind gar keine oder nur wenige Anpassungen für dein Develboard nötig und das Ganze läuft genauso.

  6. Verbinde das Develboard per USB (kann auch schon vorher erfolgt sein; spielt keine Rolle). Wichtig: Auf den Develboard befindet sich ein Chip, der eine Konvertierung von USB zu seriell durchführt. Für diesen Chip braucht man einen Treiber, der zuerst installiert werden muss. Welcher das ist, hängt vom verwendeten Chip ab.

  7. Wichtig ist nun, dass du das passende Profil auswählst. Links oben unter „Project Tasks“ sind die Profile auswählbar. Im nachfolgenden Bild ist das passende Profil für Lolin32 ausgewählt.

  8. Unterhalb dieses Profils nun auf Upload and Monitor klicken. Beim ersten Mal werden nun alle notwendigen Bibliotheken im Hintergrund geladen und anschließend der Code kompiliert. Ist dies abgeschlossen, so wird die Firmware auf den ESP32 aufgespielt.

  9. Anschließend sollten unten in der seriellen Konsole erste Lebenszeichen zu sehen sein. Wichtig ist an dieser Stelle zu wissen, dass der ESPuino für einen erfolgreichen Bootvorgang Zugriff auf die SD-Karte benötigt. Gibt es diesbzgl. eine Fehlermeldung, so wirf zuerst einen Blick in die FAQ. Hat alles funktioniert, so sollte der ESPuino einen Access Point geöffnet haben, der ESPuino heißt (sofern die Konfiguration nicht geändert wurde). Wunderbar, dein ESPuino ist nun einsatzbereit!

  10. Schaue nun auch hier vorbei:
    📗 Der erste Start deines ESPuino
    📗 ESPuino im Regelbetrieb
    📗 Die Playmodi des ESPuino

Weitere Tipps

  • Kompiliere nur solche Module (MQTT, FTP, Neopixel…) ein, die du auch benötigst. Das gilt z.B. für MQTT, da die Nichterreichbarkeit eines MQTT-Brokers Timeouts verursachen kann, die echt lästig sind. Andererseits benötigen diese Module auch Speicher und von solchem hat man auf einem Mikrocontroller eigentlich nie genug.
  • Die Ausgaben der seriellen Konsole kann auf unterschiedliche Stufen vor dem Kompilieren gestellt werden. Möglich sind ERROR, NOTICE, INFO oder DEBUG. In ERROR werden hierbei am wenigsten Meldungen ausgegeben und in DEBUG am meisten.
  • Wenn MQTT einkompiliert ist, dann stelle sicher, dass du über die WebGUI auch einen MQTT-Broker und ein (optionales) Passwort konfigurierst. Auch wenn MQTT einkompiliert ist, lässt es sich über die WebGUI nachträglich noch deaktivieren.
  • Falls du einen Neopixel verwendest, dann konfiguriere die Anzahl der LEDs NUM_LEDS passend. Eine Falschkonfiguration kann zu seltsamen Mustern oder sogar zum Absturz führen.
  • Wenn du die Batteriespannung messen willst, stelle sicher, dass MEASURE_BATTERY_VOLTAGE aktiviert ist. Gemessen werden muss hierbei über einen Spannungsteiler, da ein Eingang eines ESP32 maximal eine Spannung von 3.3 V verträgt (LiPo hat z.B. bis zu 4,2 V).
  • Werden Neopixel und MEASURE_BATTERY_VOLTAGE zusammen verwendet, so kann die Batteriespannung auch via Neopixel visualisiert werden. Die Spannungsbereiche sind über die WebGUI einstellbar. Nach einem kurzen Tastendruck auf den Drehencoder wird die Spannung über den Neopixel angezeigt.
  • Wenn beispielsweise die optionale Kopfhörerplatine verwendet wird, so macht es Sinn HEADPHONE_ADJUST_ENABLE zu benutzen, so dass die Kopfhörerlautstärke begrenzt werden kann.
  • Ist SHUTDOWN_IF_SD_BOOT_FAILS gesetzt, so geht der ESPuino in Deepsleep, wenn nicht von SD-Karte gelesen werden kann. Benutze dieses Feature, wenn Batteriebetrieb verwendet wird, da du sonst im eingebauten Zustand ggf. keine Möglichleit mehr hast, den ESPuino neu zu starten.
  • Ist PLAY_LAST_RFID_AFTER_REBOOT aktiviert, so erinnert sich der ESPuino nach einem Neustart an die zuletzt aufgelegte Karte. Achtung: Tritt bei einer solchen Karte ein Fehler auf, kann man sehr schnell in eine Schleife gelangen, die man ohne neues Aufspielen der Firmware nicht beheben kann. Daher: Mit Vorsicht zu genießen!
  • Ist BLUETOOTH_ENABLE aktiviert, so kannst du im Bluetooth-Modus (erreichbar per Modifikationskarte oder Tasten-Kommando TOGGLE_BLUETOOTH_MODE) zwischen ‚normalem‘ Modus und Bluetooth-Modus wechseln. Hier kannst du z.B. mit deinem Handy auf deinen ESPuino streamen. WLAN funktioniert in diesem Modus nicht und man kann auch nichts von SD abspielen.
  • Ist USEROTARY_ENABLE aktiv, so kann der Drehencoder verwendet werden.
  • Kommt keine Musik aus den Lautsprechern und du hast keine Kopfhörerplatine angeschlossen? Vielleicht hilft das: Lolin32 mit SD (SD_MMC) und PN5180 als RFID-Leser - #10 von jpellenz. Ansonsten teste mal, ob sich das Problem durch das Aktivieren von HEADPHONE_ADJUST_ENABLE löst. Hier gibt es eine Diskussion dazu: Kein Ton mit Max98357a
  • Solltest du mit der SD-Karte Probleme haben, so prüfe, ob diese FAT32 formatiert sind. Speicherkarten, die größer als 32 GB sind, werden ab Werk offenbar üblicherweise mit ExFAT formatiert, was der ESP32 jedoch (bisher?!) nicht unterstützt. Diese Karten müssen entsprechend umformatiert werden: Werden 64 Gb SD Karten unterstützt? - #5 von biologist.

Noch Fragen? Gerne! Aber bitte auch einen Blick in die FAQ werfen.

4 „Gefällt mir“

Hallo @biologist
Ich verstehe dort nur Bahnhof. Google translate hat es mir zwar in Deutsch übersetzt, aber das wars dann auch schon

git pull origin master

bringt bei mir

C:\Users\Stefan>git pull origin master
fatal: not a git repository (or any of the parent directories): .git

Funktioniert hat

git clone https://github.com/biologist79/ESPuino.git

Aber bereits, den Code sehe ich auch im Visual Studio Code

Da mußt du erst in das Verzeichnis ESPuino wechseln.
Das wurde von git beim clonen angelegt.

wenn du in der Ansicht versteckte Dateien mit anzeigen läßt findest du dort die Datei .git.
In der ist der Stand deiner Dateien und die Quelle auf Github abgelegt.

Und du hast Recht, es gibt viele Beschreibungen im Netz, leider viele in englischer Sprache. Auch innerhalb von Github wird fast nur Englisch benutzt. Das macht die Sache nicht einfacher.

Git ist enorm mächtig, dadurch aber auch recht kompliziert.

Git - Buch

git - Der einfache Einstieg - kein Schnick-schnack!

vieleicht eine Hilfe.

1 „Gefällt mir“

@raznz_snasna Im zweiten Link von @gmbo musst mal runter zu " update & merge" scrollen. Da ist das nochmal beschrieben.
Die Frage ist, wie du mein Repository runtergeladen hast. Wenn als zip, dann kommst du nicht weiter, weil dann .git fehlt. Aber wenn du mit „git clone“ arbeitest, dann sollte das im Anschluss funktionieren.

Danke euch,
ja ich habe mit git clone gearbeitet.

Eine dieser Mächtigkeiten ist, dass ich meine persönlichen Änderungen am Code (also die Defs und Board ausgewählt) nicht bei jedem Update wieder verliere, oder? Also es wird nicht einfach die Datei ner geladen, sondern die einzelnen Zeilen werden ersetzt?

Also wenn du eine manuelle Änderung machst und ich sie mit einer Änderung überschreiben würde, dann würdest du bei einem „merge“ gefragt, welche Variante du gerne hättest. Kommen neue Zeilen hinzu, dann werden diese integriert.

1 „Gefällt mir“