📗 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.

2 „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.