Aktueller Stand ESP32-Arduino 2

Ja, werde ich mal testen.

Auf jeden Fall weniger Schwankungen der Upload-Geschwindigkeit bei pausierten Audio/LED Tasks.

Was mir hier noch aufgefallen war: Ich habe es geschafft durch Schließen des Browserfensters (Abbruch des Web-Transfers) Audio/LED nicht wieder aufwachen zu lassen. Hier müsste man evt. noch beim Abbruch die Tasks wieder starten…

Deine Änderungen am Ringpuffer scheinen für 2.0.6 Verbesserungen zu bringen, ich erwarte aber für 1.0.6 eine Verschlechterung. Ziel war es ja den Puffer möglichst zu füllen in in größeren Blöchen auf SD zu schreiben. Das scheint jetzt für 1.0.6 nicht mehr der Fall zu sein. Ich muss das in Ruhe gegen beide Versionen testen…

Zur Info, es gibt jetzt nach PlatformIO Package 5.3.0 schon das nächste Release Version 6.0.0

Soweit ich das sehen konnte wird genauso wie 5.3.0 das IDF 4.4.3 bzw. das Arduino-Framework 2.0.6. Ich hab’s mal getestet und es läuft wie gewünscht (bis auf die hier bekannten Probleme). Zum Testen diese Zeile in Platform.ini ändern:

[env]
;platform = espressif32@<=3.5.0
platform = espressif32@6.0.0

So schnell wie die Aktualisierungen rausgehauen werden können wir gar nicht hintertesten :wink:

3 „Gefällt mir“

So, habe endlich mal wieder bisschen Zeit gefunden :slight_smile:
Sieht wirklich gut aus die akutelle 6.0.0
Konnte jetzt mit dem aktuellen master jetzt noch keine Probleme festtstellen. Teste mal noch bisschen weiter und melde mich gegebenenfalls…

Gerade gesehen es gibt schon die 6.0.1 :smiley:

Update: bis jetzt keine Auffälligkeiten…
Update 2: jetzt seit über einer Woche bei mir keine Auffälligkeiten. Werde erstmal auf der Version bleiben.

Ich kann mit dem neuen ESPuino-master & Arduino 6.0.1 keine Ordner/Dateien mit Umlauten mehr abspielen (über die Weboberfläche). Mit Arduino 1 klappt es, von daher gehe ich nicht davon aus das es mit den letzten Änderungen an der Weboberfläche (I18N) zusammenhängt.

Also einen Ordner „Täst“ anlegen, darin Datei „Täst.mp3“. Diese dann über rechte Maustaste in der Wb-UI abspielen…

Bis vor Kurzem hat das Filesystem nur der erweiterten ASCII Zeichensatz akzeptiert. Dateinamen mit chinesischen oder kyrillischen Buchstaben waren nicht möglich. Das hat Espressif mit V2.0.6 bereinigt, Can the SD library support Chinese paths or file names? · Issue #7246 · espressif/arduino-esp32 · GitHub. Ich kann mir vorstellen, dass die ESPuino-SW da noch etwas Anpassung braucht.

Hallo ihr, ich weiß nicht ob es hierhin gehört gerne an die richtige Stelle verschieben. Ich habe vor etwa drei Tagen. Einen Update auf die neueste Firmware und Version 6.0.0 gemacht. (habe es auch schon ohne erfolg auf version 1 zurück gestellt) seit dem Update gibt es fast keine Playlist mehr die vernünftig fubktioniert. Bei einer Playlist lässt sich der Fehler auf allen bei mir vorhandenen ESPuino reproduzieren. Es bricht den wechsel von track 1 auf zwei mit folgenden Fehler ab.
[ 167580 ] info : Closing audio file
[ 167581 ] info : End of file „01 010 - Spuk in Rocky Beach - Teil 01.m4a“
[ 167581 ] eof_mp3 : 01 010 - Spuk in Rocky Beach - Teil 01.m4a
[ 167601 ] info : buffers freed, free Heap: 88704 bytes
[ 167601 ] info : Reading file: „/Die drei Kids/Spuk in Rocky Beach/02 010 - Spuk in Rocky Beach - Teil 02.m4a“
[ 167633 ] info : AACDecoder has been initialized, free Heap: 63652 bytes
[ 167637 ] ‚/Die drei Kids/Spuk in Rocky Beach/02 010 - Spuk in Rocky Beach - Teil 02.m4a‘ wird abgespielt (2 von 40)[ 167650 ] no cover image for SD-card audio

[ 167730 ] info : Audio-Length: 3482030
[ 167744 ] info : Content-Length: 0
[ 167804 ] info : stream ready
[ 167806 ] info : syncword found at pos 0
[ 167812 ] info : Channels: 2
[ 167812 ] info : SampleRate: 44100
[ 167812 ] info : BitsPerSample: 16
[ 167813 ] info : BitRate: 255986
[ 167823 ] info : AAC HeaderFormat: RAW
[ 167845 ] info : VBR recognized, audioFileDuration is estimated
Guru Meditation Error: Core 0 panic’ed (LoadProhibited). Exception was unhandled.

Core 0 register dump:
PC : 0x400e25fb PS : 0x00060630 A0 : 0x800e2629 A1 : 0x3ffde290
A2 : 0x00ff0000 A3 : 0x3ffde2fe A4 : 0x3ffde2fe A5 : 0x00000002
A6 : 0x00060020 A7 : 0x00000001 A8 : 0x80099da4 A9 : 0x3ffde270
A10 : 0x00000000 A11 : 0x000295af A12 : 0x000295eb A13 : 0x00060c23
A14 : 0x00060c20 A15 : 0x00000001 SAR : 0x0000000b EXCCAUSE: 0x0000001c
EXCVADDR: 0x00ff0004 LBEG : 0x40086bc1 LEND : 0x40086bc9 LCOUNT : 0x00000027

Backtrace: 0x400e25f8:0x3ffde290 0x400e2626:0x3ffde2b0 0x4010ff78:0x3ffde2d0 0x4011014e:0x3ffde2f0 0x4011034a:0x3ffde320 0x401104ed:0x3ffde350 0x401106f9:0x3ffde380 0x400d85f5:0x3ffde3b0

#0 0x400e25f8:0x3ffde290 in SPIClass::transferBytes(unsigned char const*, unsigned char*, unsigned int) at /home/joachim/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src/SPI.cpp:293
#1 0x400e2626:0x3ffde2b0 in SPIClass::transfer(void*, unsigned int) at /home/joachim/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src/SPI.cpp:270
#2 0x4010ff78:0x3ffde2d0 in PN5180::transceiveCommand(unsigned char*, unsigned int, unsigned char*, unsigned int) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180.cpp:584
(inlined by) PN5180::transceiveCommand(unsigned char*, unsigned int, unsigned char*, unsigned int) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180.cpp:563
#3 0x4011014e:0x3ffde2f0 in PN5180::readRegister(unsigned char, unsigned int*) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180.cpp:188
#4 0x4011034a:0x3ffde320 in PN5180::getTransceiveState() at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180.cpp:704
#5 0x401104ed:0x3ffde350 in PN5180ISO14443::activateTypeA(unsigned char*, unsigned char) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180ISO14443.cpp:149
#6 0x401106f9:0x3ffde380 in PN5180ISO14443::readCardSerial(unsigned char*) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180ISO14443.cpp:315
#7 0x400d85f5:0x3ffde3b0 in Rfid_Task(void*) at src/RfidPn5180.cpp:143

ELF file SHA256: 772d446dc061b2e7

E (8912) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0
Rebooting…
ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1344
load:0x40078000,len:13808
load:0x40080400,len:3608
entry 0x400805f0
E (774) esp_core_dump_flash: No �K��dump partition found!
E (774) esp_core_dump_flash: No core dump partition found!
[ 106 ] Maximale Inaktivitätszeit wurde aus NVS geladen: 10
[ 156 ] RFID-Tags koennen jetzt gescannt werden…
[ 157 ] Port-expander gefunden
[ 159 ] Interrupt für Port-Expander aktiviert
[ 160 ] Zyklus für Batteriemessung fuer Neopixel-Anzeige aus NVS geladen: 10 Minuten
[ 171 ] Unterer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 3.00 V
[ 182 ] Oberer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 4.20 V
[ 184 ] Spannungslevel (Batterie) fuer Niedrig-Warnung via Neopixel aus NVS geladen: 3.40 V
[ 195 ] Spannungslevel (Batterie) fuer Kritisch-Warnung via Neopixel aus NVS geladen: 3.10 V
[ 206 ] Initiale Lautstärke wurde aus NVS geladen: 3
[ 206 ] Maximale Lautstärke für Lautsprecher wurde ins NVS geschrieben.
[ 217 ] Maximale Lautstärke für Kopfhörer wurde ins NVS geschrieben.
[ 217 ] Lautsprecher eingeschaltet
[ 218 ] Maximale Lautstärke wurde gesetzt auf: 21
[ 279 ] Initiale LED-Helligkeit wurde aus NVS geladen: 16
[ 280 ] LED-Helligkeit für Nachtmodus wurde aus NVS geladen: 2

Ich habe versucht die Titel umzubennenen den Ordner gewechselt, die SD Karte Formartiert von 64 Gb auf 32 gewechselt. Den ESP32 mit Erase Flash „zurückgesetzt“. Ich habe auch auf einen neuen Rechner Visual Studio Code installiert und das Project neu gezogen. Alles bisher ohne Erfolg beim wechsel von 1 auf zwei Absturz. DIe PCB sind einmal ein mini 4 Layer und einmal ein Lolin D32 pro/SD_MMC PN5180 PCA9555 rev. 3.2 Als ESP kommt einmal der von torsten entwickelte D32pro zum einsatz und zum anderen ein LOLIN D32pro. Hat von Euch irgend jemand eine Idee??

Interessant, das habe ich auch . Bisher immer beim Wechsel von 1 nach 2 .

Selbiges Problem tritt auch bei mir auf, aber nicht bei allen Playlists. Tatsächlich ist es auch bei mir nur der Wechsel von Track 1 auf Track 2. Überspringen funktioniert. Ich hatte gedacht das Problem käme durch das Update der led.cpp, weswegen ich es dort gepostet hatte.

PS: Es tritt auch bei Hörspielen auf.

Das ist möglich bei mir läuft er scheinbar aber in einen anderen Fehler. Jedoch ist das Verhalten gleich, Es betrifft nicht alle Titel und es geht um den Wechsel von 1 auf 2.

@Wolle ja das könnte es sein, auch zeitlich kommt das hin!
Im Dezember / mit „5.2.irgendwas“ klappte das noch.

Soweit ich das verstehe sind die Dateinamen bzw. in Arduino 2 file.path() jetzt direkt UTF-8 kodiert?
Dann wäre vermutlich die Umwandlung convertUtf8ToAscii zuviel hier:

Muss ich mal die Tage testen…

@Ajuko Sehr merkwürdiger Crash. Zunächst sieht es laut Log nach einem Probem in der Audio-Lib aus, der Exception-Trace zeigt aber:

#0 0x400e25f8:0x3ffde290 in SPIClass::transferBytes(unsigned char const*, unsigned char*, unsigned int) at /home/joachim/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src/SPI.cpp:293
#1 0x400e2626:0x3ffde2b0 in SPIClass::transfer(void*, unsigned int) at /home/joachim/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src/SPI.cpp:270
#2 0x4010ff78:0x3ffde2d0 in PN5180::transceiveCommand(unsigned char*, unsigned int, unsigned char*, unsigned int) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180.cpp:584
(inlined by) PN5180::transceiveCommand(unsigned char*, unsigned int, unsigned char*, unsigned int) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180.cpp:563
#3 0x4011014e:0x3ffde2f0 in PN5180::readRegister(unsigned char, unsigned int*) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180.cpp:188
#4 0x4011034a:0x3ffde320 in PN5180::getTransceiveState() at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180.cpp:704
#5 0x401104ed:0x3ffde350 in PN5180ISO14443::activateTypeA(unsigned char*, unsigned char) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180ISO14443.cpp:149
#6 0x401106f9:0x3ffde380 in PN5180ISO14443::readCardSerial(unsigned char*) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180ISO14443.cpp:315
#7 0x400d85f5:0x3ffde3b0 in Rfid_Task(void*) at src/RfidPn5180.cpp:143

Der RFID-Task versucht eine ISO-14443 Karte zu lesen und stürzt beim Senden des Befehls an den PN5180 im SPI-Transfer ab.
Habe ich so noch nicht gesehen! Kannst Du das reprodozieren? Karte schnell wieder abgezogen oder bleibt die liegen?

@tueddy , Ich habe gar keine Karte draufgelegt es wurde über die Website gestartet.

@tueddy Ich hab hier mal einen Linkauf die Dateien. Vieleicht läßt es sich reproduzieren. Nextcloud

Bei mir sieht der Fehler ganz anders aus, hat aber die selbe Ursache:

Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x400d3578  PS      : 0x00060d30  A0      : 0x800d6daf  A1      : 0x3ffdb7d0
A2      : 0x3ffc4c60  A3      : 0x0000000f  A4      : 0x3ffc4f40  A5      : 0x000000ff  
A6      : 0xff0000ff  A7      : 0x00ff0000  A8      : 0x800d35e3  A9      : 0x0000ff00
A10     : 0x0000000f  A11     : 0x3ffc4f4c  A12     : 0x3ffc4f4f  A13     : 0x3ffc4f26  
A14     : 0x00000063  A15     : 0x00000002  SAR     : 0x00000020  EXCCAUSE: 0x0000001c
EXCVADDR: 0xff000103  LBEG    : 0x400955be  LEND    : 0x400955c9  LCOUNT  : 0x00000000  

ELF file SHA256: 0000000000000000

Backtrace: 0x400d3578:0x3ffdb7d0 0x400d6dac:0x3ffdb810 0x400d798d:0x3ffdb830 0x40099402:0x3ffdb880
  #0  0x400d3578:0x3ffdb7d0 in CLEDController::showLeds(unsigned char) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/FastLED/src/FastLED.cpp:269
      (inlined by) CFastLED::show(unsigned char) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/FastLED/src/FastLED.cpp:59    
  #1  0x400d6dac:0x3ffdb810 in CFastLED::show() at .pio/libdeps/lolin_d32_pro_sdmmc_pe/FastLED/src/controller.h:171   
  #2  0x400d798d:0x3ffdb830 in Led_Task(void*) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/FastLED/src/controller.h:171    
  #3  0x40099402:0x3ffdb880 in vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)

Bei mir ist die ganze Webseite instabil, die Verbindung reißt komplett ab wenn ich den nächsten Track wähle. Im Browser-Log sieht man dann auch die Trennung der Socket Verbindung:

Der ESP crasht aber nicht bei mir. Habt Ihr das Phänomen auch? Man kann es auch sehen wenn die gelbe Toast-Meldung „Verbindung unterbrochen“ erscheint.
Frage ist jetzt was da kaputt ist…

Dieses Problem taucht bei mir nicht auf. Bis auf das bekannte Problem mit den Umlauten läuft die Weboberfläche bei mir einwandfrei.

@tueddy @froido ich kann das Phänomen auch nicht reproduzieren. Bei mir läuft die Weboberfläche auch Problemfrei.

Getestet mit 6.0.1:
Ich kann das bestätigen. Habe mal eine Playlist mit 25 Titeln vom Webinterface aus gestartet. Wenn ich vorwärts springe, dann ist alles ok. Aber wenn ich „bisschen wilder“ rückwärts springe, dann kommt es recht schnell zu einem solchen Fehler. Wenn das passiert, leuchten kurz alle LEDs blau auf.

Immer kommt der Fehler, wenn ich von 1 auf 2 wechsele und dann sofort wieder zurück. Wieder waren alle LEDs blau. Der Stacktrace ist manchmal gleich, aber im Grunde sieht er jedes Mal anders aus. PN5180 ist es oft, aber manchmal auch nicht. Der erste Track wird dann ganz kurz angespielt und dann kommt der Absturz.

  #0  0x400e25b8:0x3ffbc8a0 in SPIClass::transferBytes(unsigned char const*, unsigned char*, unsigned int) at /Users/torsten/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src/SPI.cpp:293
  #1  0x400e25e6:0x3ffbc8c0 in SPIClass::transfer(void*, unsigned int) at /Users/torsten/.platformio/packages/framework-arduinoespressif32/libraries/SPI/src/SPI.cpp:270
  #2  0x4010ff4c:0x3ffbc8e0 in PN5180::transceiveCommand(unsigned char*, unsigned int, unsigned char*, unsigned int) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180.cpp:584
      (inlined by) PN5180::transceiveCommand(unsigned char*, unsigned int, unsigned char*, unsigned int) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180.cpp:563
  #3  0x40110122:0x3ffbc900 in PN5180::readRegister(unsigned char, unsigned int*) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180.cpp:188
  #4  0x401104d2:0x3ffbc930 in PN5180::getTransceiveState() at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180.cpp:704
  #5  0x40110691:0x3ffbc960 in PN5180ISO14443::activateTypeA(unsigned char*, unsigned char) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180ISO14443.cpp:149
  #6  0x4011089d:0x3ffbc990 in PN5180ISO14443::readCardSerial(unsigned char*) at .pio/libdeps/lolin_d32_pro_sdmmc_pe/PN5180 Library/PN5180ISO14443.cpp:315
  #7  0x400d86a5:0x3ffbc9c0 in Rfid_Task(void*) at src/RfidPn5180.cpp:143

Dass Umlaute ein Problem sind, kann ich bestätigen.
a) Umlaute bestehender Files/Ordner werden falsch angezeigt im UI.
b) Files mit Umlauten kann man nicht abspielen.
c) Ordner mit Umlauten kann man nicht speichern.