Oft gestellte Fragen (FAQ)

Wo finden sich Impressum und Datenschutzerklärung?

Diese finden sich hier: Impressum & Datenschutzerklärung.

Wo ist der Quellcode zu finden?

In meinem Repository auf Github. Die Dokumentation dort ist Englisch.

Wie funktioniert der ESPuino generell? Wo ist das dokumentiert?

Allgemein: Anleitungen - ESPuino :: Rfid-controlled musicplayer
Im Speziellen: 📗 ESPuino im Regelbetrieb und 📗 Die Playmodi des ESPuino.

Was sind die Unterschiede zwischen ESPuino und Tonuino?

Dazu existiert hier ein längerer Artikel.

Die Fehlermeldung „SD could not be mounted“ wird angezeigt. Was mache ich falsch?

Dies ist mit Abstand die meistgestellte Frage. Dies kann mehrere Ursachen haben.

  1. Oft liegt es daran, dass SD_MMC gewünscht ist, jedoch SPI einkompiliert wurde => Settings-Dateien erneut überprüfen!
  2. Sind alle Anschlüsse vorhanden?
  3. Es wurden Jumperwires verwendet. Das ist grundsätzlich in Ordnung, aber dies kann durch mangelhafte Kontaktierung zu Problemen führen. Auf jeden Fall sollte man schauen, dass die Jumperwires möglichst kurz sind. Besser ist es jedoch alles aufzlöten, um eine bessere Kontaktierung zu gewährleisten.
  4. Wurde das Flag SD_MMC_1BIT_MODE aktiviert, so ist zu beachten, dass andere GPIOs (2, 14, 15) verwendet werden, die auch nicht änderbar/konfigurierbar sind.

Es kommt keine Musik aus dem Lautsprecher

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

Ist es unbedingt notwendig Platformio anstelle der Arduino-IDE zu verwenden?

Nein, ist es nicht. Aber da das gesamte Projekt als Platformio-Projekt exportiert ist und da Platformio z.B. auch automatische abhängige Bibliotheken lädt, empfehle ich, es zu nutzen. Es hat auch GIT-Funktionalität direkt integriert, wodurch man recht einfach den Code vom öffentlichen Repository lokal aktuell halten kann. Tipp: Noch praktischer wird GIT, wenn man in Visual Studio Code das Plugin Gitlens installiert. Hier gibt es auch noch weitere Infos dazu.

Ich habe den ESPuino geflasht aber finde ihn nicht im WLAN. Was mache ich falsch?

Bitte das hier lesen: 📗 Der erste Start deines ESPuino.

Kann ich auch die GPIO-Konfiguration beliebig auf meine Bedürfnisse anpassen?

Im Prinzip ja. Man muss allerdings aufpassen, denn manche GPIOs haben auch weitere (interne) Zwecke. Weitere Infos: 📗 Die GPIOs des ESP32: Welche eignen sich für was?.

Wozu ist der Hostname gut?

Will man nen ESPuino konfigurieren, so geschieht dies über die WebGUI. Menschen sind nicht sonderlich gut darin, sich IP-Adressen zu merken. Deshalb hantieren wir im Alltag beim Webbrowsing auch mit sprechenden Namen. Der Hostname ist so einer. Wurde keim Kompilieren das Flag MDNS_ENABLE aktiviert (was ich empfehlen würde!), so ist der ESPuino über diesen künftig erreichbar. D.h. wurde als Hostname beispielsweise ‚espuino‘ konfiguriert, so ist er künftig über ‚espuino.local‘ erreichbar. Die Erreichbarkeit über die normale IP-Adresse ist natürlich weiterhin gegeben. Welche IP das ist, wird in der seriellen Konsole angezeigt. Benutzer einer Fritzbox können auch über .fritz.box zugreifen; also zum Beispiel ‚espuino.fritz.box‘.

Kann auch eine statische IP vergeben werden?

Normalerweise sorgen Router dafür, dass Geräten immer die gleiche IP-Adresse zugewiesen wird. Ein Router macht sich hier zunutze, dass Netzwerk-Geräte eindeutige MAC-Adressen besitzen und diese Geräte so wiedererkannt werden können. Mir wurde berichtet, dass z.B. Speedports, die die Telekom vertreibt, diese IP-Adressen manchmal ändert. Man kann dies adressieren, indem man sich am besten die Sektion ‚Wozu ist der Hostname gut?‘ durchliest. Oder man kann auch eine statische Konfiguration vornehmen, wobei IP-Adresse, Netzmaske und Gateway zu konfigurieren sind. Der ESPuino bekommt nun keine IP mehr zugewiesen sondern bestimmt selbst eine. Achtung: Kein Mechanismus hindert einen daran, hier falsche Sachen zu konfigurieren. Im Zweifelsfalle ist der ESPuino dann per WLAN nicht erreichbar, obwohl er sich ins WLAN eingebucht hat.

Ist WLAN unbedingt notwendig?

Jein. Benötigt wird es mindestens zum Einrichten der Grundeinstellungen und der RFID-Zuweisungen. Zwangsläufig benötigt wird es natürlich auch, wenn man Webradio hören möchte oder man die Steuerung via MQTT nutzen möchte. Abseits dessen kann man das WLAN jedoch auch abschalten (Vorheriger-Titel-Taste + Nächster-Titel-Taste parallel drücken). Mit dieser Tastenkombination kann man im laufenden Betrieb das WLAN beliebig an oder ausschalten. Auch über den nächsten Neustart hinaus wird sich der ESPuino das merken. Frage: Hältst du es für sinnvoll, dieses nur sagen wir mal in der ersten Minute nach dem Neustart zu können, weil Kinder gerne an den Tasten rumspielen? Lass’ es mich wissen!

Welche Möglichkeiten gibt es, Daten auf die SD-Karte zu kriegen?

Grundsätzlich kann man sie natürlich in den Rechner stecken und Daten aufspielen - das ist mit Abstand die schnellste Variante und macht insbesondere am Anfang Sinn. Wenn jedoch mal alles zusammengebaut ist, hat man u.U. wenig Lust, die SD-Karte auszubauen. Man kann dann die Daten über FTP-Upload oder HTTP-Upload hochladen. Für den FTP-Upload muss man zuerst den FTP-Dienst aktivieren. Hierfür muss man einer Taste oder einer Tastenkombination in settings.h die Aktion ENABLE_FTP_SERVER zuweisen. Per Default sind das Pause/Play-Taste + Nächster-Titel-Taste, die man kurz parallel drücken muss. Hinweis: Paralleles Abspielen von Musik sollte man unterlassen, da es den Upload ziemlich ausbremst. Wie schnell ein Upload ist, hängt maßgeblich davon ab, ob die SD-Karte per SPI oder SD_MMC angebunden ist.

Wird Batteriebetrieb unterstützt?

Ja. Wie dies im Einzelnen umzusetzen ist, hängt jedoch vom eingesetzten Develboard des ESP32 ab. Am einfachsten hat man es, wenn man ein Develboard besitzt, das eine integrierte Ladeschaltung hat. Für LiPo-Akkus ist das z.B. bei den Boards Lolin32, Lolin D32 und Lolin D32 pro der Fall. Auf jeden Fall unterstützt ESPuino den Batteriemodus in verschiedener Hinsicht (Messung der Spannung, Visualisierung per Neopixel und publizieren der Spannung per MQTT). Man kann natürlich auch einfach extern eine Powerbank anschließen an USB, aber damit habe ich selbst keine Erfahrung. Weiß jedoch, dass die Powerbank abschaltet, wenn die Last (im Deepsleep) zu niedrig ist. Man muss sie dann wieder „aufwecken“, damit der ESPuino starten kann.

Welche Hardware wird unterstützt bzw. empfohlen?

Bitte das lesen: 📗 Welche Hardware nutzen? (Develboard, RFID, SD).

Kann die Änderung der Lautstärke auch über Tasten anstelle Drehencoder erfolgen?

Ja. Dafür müssen in settings.h die Aktionen CMD_VOLUMEUP bzw. CMD_VOLUMEDOWN den gewünschten Tasten zugewiesen werden. Es ist allerdings aktuell nicht möglich, durch längeren Tastendruck die Lautstärke mit einem Drücken um mehrere Einheiten zu erhöhen oder zu verringern. An dieser Stelle sei dieser Artikel empfohlen: 📗 Das dynamische Button-Layout.

Ich habe Probleme mit dem FTP-Dienst

Zuerst mal muss der FTP-Dienst nach jedem neuen Bootvorgang erst aktiviert werden. Grund dafür ist, dass es Speicher spart, wenn er nicht benötigt wird (was ja normalerweise der Fall ist). Die Zugangsdaten lassen sich über die WebGUI konfigurieren. Als FTP-Client wird Filezilla empfohlen (kostenlos und für Windows, Mac OS und Linux Verfügbar). Es ist darauf zu achten, dass nur eine Verbindung gleichzeitig aufgebaut wird!


Und der Zeichnsatz muss CP437 sein:

Kann ich auch zwei Lautsprecher anschließen?

Klar. Beispielsweise der MAX98357a wird per i2s angeschlossen. Hängt man auf den i2s-Bus noch einen zweiten MAX98357a, so kann man dort ebenfalls einen Lautsprecher anschließen. Die DACs werden also einfach auf den i2s-Bus parallel angeschlossen. Sogar im laufenden Betrieb kann man noch einen dazuhängen; das Protokoll scheint recht robust zu sein.

Welche Playmodi werden unterstützt?

📗 Die Playmodi des ESPuino.

Wie schnell ist die Übertragung per FTP oder HTTP auf die Karte?

Hängt u.a. davon ab, ob die SD-Karte per SPI oder SD_MMC angebunden ist. Hier eine Messung mit einer Datei, die 70,7 MiB groß ist:

SD_MMC:
FTP (up): 3:57min => 298 kiB/s
FTP (down): 3:45 => 314 kiB/s
HTTP: 3:10min => 372 kiB/s

SPI:
FTP (up): 6:38 => 178 kiB/s
FTP (down): 5:38 => 208 kiB/s
HTTP: 6:24min => 184 kiB/s

Braucht man den Neopixel unbedingt?

Nein aber es ist zu empfehlen, da er sehr viele Informationen visuell darstellt und ohne ihn weitrechende Feedback-Mechanismen fehlen. Grundsätzlich mir mir die Problematik des Neopixels natürlich wusst: Es ist vergleichsweise schwer, ihn in ein Gehäuse zu integrieren. Zumal man ihn eigentlich auch nicht komplett sehen möchte, da er so hübsch nun auch wieder nicht ist. Weitere Wege wären jedoch, mehrere WS2812b-LEDs als Streifen zu verwenden oder eben nur eine einzelne WS2812b-LED. Bei einem Streifen würde ich empfehlen eine LED-Anzahl zu wählen, die durch vier teilbar ist, da die Animationen des ESPuino ein Stück weit darauf ausgerichtet sind.
Weitere Infos hier: https://forum.espuino.de/t/was-zeigt-der-neopixel-des-espuino-alles-an.

Kann man bei GIT sehen, welche Änderungen wann gemacht wurden?

Aber klar :slight_smile: Am besten mal hier schauen: How To List Commit History with Git Log Command with Examples? – POFTUT.

Es dauert lange, bis die Musik anfängt zu spielen. Was kann ich tun?

Nun grundsätzlich gibt es zwei Faktoren, die das begünstigen

  • Es befinden sich viele Dateien in einem Ordner und sie gehören alle zur Playlist. Je mehr Dateien zu einer Playlist gehören, desto länger dauert es.
  • Der ESPuino spielt parallel bereits etwas ab. Ist das der Fall, so ist der mit dem Dekodieren beschäftigt, was den Prozess der Playlist-Generierung für die neue Playlist verlangsamt.

Es gibt jedoch Abhilfe dafür, die hier beschrieben ist.

Auch wurde schon berichtet, dass ein spezielles Tool Besserung schaffen soll: Verzögerung nach Auflegen des Tags mit vielen Hörspielen

Mein ESPuino stürzt ab. Was fange ich mit der Fehlerneldung an?

Wenn ein Mikrocontroller sich aufgrund eines Softwarefehlers neu startet, sieht die Ausgabe oft hinreichend kryptisch aus. Was jedoch mitgeliefert wird ist ein Backtrace. Hieraus kann man einen Stacktrace dekodieren, den man auch lesen kann.
Dafür muss In der platformio.ini folgende Zeile gesetzt werden:

monitor_filters = esp32_exception_decoder

Alternativ den Stacktrace-Dekoder in der Arduino-IDE installieren. Im Anschluss geht man in Platformatio ins Projektverzeichnis von ESPuino und dort in das Unterverzeichnis .pio/build/. Dort findet man eine Datei namens firmware.elf. Diese und auch der Backtrace werden als Eingaben im Stacktrace-Dekoder in der Arduino-IDE benötigt. Zuletzt erhält man einen Stacktrace, mit dem man wesentlich mehr anfangen kann :slight_smile:

Die Anzahl der GPIOs reicht nicht. Wird ein Port-Expander unterstützt?

Ja. Weitere Infos siehe hier: 📗 Einsatz des Port-Expanders PCA9555.

Wo werden die Konfigurationseinstellungen gespeichert?

Alle Dinge, die über die WebGUI konfiguriert werden (WLAN-Zugangsdaten, Hostname, Lautstärke, Passwörter etc pp) werden im sog. NVS des ESP32 gespeichert. Das NVS ist ein Teil des Flash-Speichers, der je nach verwendetem ESP32-Chip (WROOM, WROVER, ESP32-A1S) 4 oder 16 MB groß ist. Dieser Speicher wird in Partitionen unterteilt - die NVS-Partition ist eine solche. Welches Partitions-Layout verwendet wird, wird in platformio.ini über den Parameter board_build.partitions konfiguriert. Wichtig an der Stelle zu wissen: Wird das Konfigurations-Profil hier geändert, so wird dadurch der Inhalt des NVS überschrieben. D.h. alle Konfigurationen sind neu vorzunehmen - inklusive WLAN. Für die Zuweisungen zwischen RFID und Hörbüchern/Musik gibt es jedoch einen Backup/Restore-Mechanismus: 📗 Die Backupfunktion des ESPuino.

Was ist eine cached Playlist?

Dazu gibt es hier weitere Infos: Neues Feature: Cached-Playlist.

Funktionieren bei Webradio auch https-Streams?

Grundsätzlich ja. Aber bitte Folgendes bedenken.

mDNS funktioniert auf einem Android-Handy nicht. Was kann ich tun?

Bitte das hier beachten: mDNS Problem

Ich kann nicht löten. Wie lerne ich das?

Hier gibt es zahlreiche Infos: 📗 (SMD-)Löten.

Werden auch Speicherkarten mit 64 GB unterstützt?

Ja, werden sie. Allerdings müssen diese mit dem Dateisystem FAT32 formatiert sein und das sind sie üblicherweise ab Werk nicht. Man muss diese Karten also umformatieren. Diskussion dazu: Werden 64 Gb SD Karten unterstützt? - #5 von biologist.

Was mache ich, wenn gar nichts mehr geht?

Möglicherweise hilft es, ein Flash Erase durchzuführen. Hinweis dazu: Sämtliche Einstellungen (WLAN-Zugangsdaten z.B.) sind danach weg und es müssen auch alle RFID-Karten neu angelernt werden. Letztgenanntes kann man jedoch „beschleunigen“, wenn man backup.txt aus dem Hauptverzeichnis der SD-Karte importiert.
Einem anderen Benutzer hat das Löschen auf jeden Fall geholfen.

Wie kann ich die Drehrichtung des Drehencoders umkehren?

Dies ist hier beschrieben: 📗 Drehrichtung des Drehencoders umkehren.

3 „Gefällt mir“