Ich kann einen Sketch kompilieren und flashen. Ich kann mir auch über eine Konfigurationskarte beispielsweise die Zeit ansagen lassen. Beim Abspielen von Musik bekomme ich aber die Fehlermeldung „MP3Decoder_AllocateBuffers(): not enough memory to allocate mp3decoder buffers“. Offensichtlich ist der Speicher nicht korrekt allokiert (PSRAM?)?
Ich gehe davon aus, dass es mit dem Build zusammenhängt.
In der platformio.ini habe ich folgende Build-Informationen für den WROVER-E eingefügt. Ich vermute, dass diese falsch sind. Leider bin ich auch nach unzähligen Versuchen nicht auf die Lösung gekommen Hat jemand eine Idee?
N [250] Software-revision: 20231104-1
N [250] Git-revision: 894c6d8-dirty
N [250] Arduino version: 2.0.14
N [261] ESP-IDF version: 4.4.6
N [261] Wakeup was not caused by deepsleep: 0
N [261] Versuche SD-Karte im SD_MMC-Modus (1 Bit) zu mounten…
D [271] SD card type: SDHC
N [272] SD-Kartengröße / freier Speicherplatz: 30250 MB / 30237 MB
I [283] FTP-User wurde aus NVS geladen: esp32
I [284] FTP-Passwort wurde aus NVS geladen: esp32
E (280) gpio: GPIO can only be used as input mode
[ 285][E][esp32-hal-gpio.c:130] __pinMode(): GPIO config failed
D [391] RFID-Tags koennen jetzt gescannt werden…
I [392] Hostname aus NVS geladen: ESPuino
N [394] SSID 0 von NVS geladen: XYZ
N [553] Versuche mit WLAN ‚XYZ‘ zu verbinden…
D [602] Freier Heap-Speicher nach Setup-Routine: 110376
D [603] PSRAM: 0 bytes
D [603] Flash-size: 4194304 bytes
N [1222] RFID-Karte erkannt: da-a2-5c-1a
I [1222] RFID-Karte empfangen: 218162092026
D [1230] Freier Speicher: 105628 Bytes
N [1230] Playlist-Generierung
I [1230] Dateimodus erkannt.
N [1231] Modus: Einzelner Track
N [1241] Neue Playlist mit 1 Titel(n) empfangen
D [1241] Free heap: 107080
E (1239) sdmmc_cmd: sdmmc_read_sectors_dma: sdmmc_send_cmd returned 0x109
E (1240) diskio_sdmmc: sdmmc_read_blocks failed (265)
[ 1248][E][vfs_api.cpp:301] VFSFileImpl(): fopen(/sdcard/System Volume Information/002 Es tanzt ein Bi Ba Butzemann.mp3) failed
E [1259] Datei oder Verzeichnis existiert nicht: /System Volume Information/002 Es tanzt ein Bi Ba Butzemann.mp3
N [1270] Ende der Playlist erreicht.
N [1301] HTTP-Server gestartet.
N [1309] Verbunden mit WLAN ‚MyNido1191‘ (Signalstärke: -55 dBm, Kanal: 1, MAC-Adresse: // MAC-Adresse)
N [1309] Aktuelle IP: /// IP-Adresse XYZ
N [1321] Synchronisiere Uhrzeit via NTP…
N [1360] mDNS gestartet: http://ESPuino.local
N [3742] Datum/Uhrzeit empfangen von NTP-Server: 09.04.2024, 15:20:07
D [19026] logo request
D [19188] ws[/ws][1] connect
D [25660] Partition nvs found, 262144 bytes
E (25690) sdmmc_cmd: sdmmc_read_sectors_dma: sdmmc_send_cmd returned 0x109
E (25690) diskio_sdmmc: sdmmc_read_blocks failed (265)
E (25691) sdmmc_cmd: sdmmc_read_sectors_dma: sdmmc_send_cmd returned 0x107
E (25697) diskio_sdmmc: sdmmc_read_blocks failed (263)
N [31338] RFID-Karte erkannt: da-a2-5c-1a
I [31338] RFID-Karte empfangen: 218162092026
D [31345] Gebe Speicher der alten Playlist frei (Freier Speicher: 74000 Bytes)
D [31345] Freier Speicher nach Aufräumen: 74140 Bytes
E (31353) sdmmc_req: handle_idle_state_events unhandled: 00000008 00000002
D [31359] Freier Speicher: 69772 Bytes
N [31359] Playlist-Generierung
I [31369] Dateimodus erkannt.
N [31370] Modus: Einzelner Track
N [31372] Neue Playlist mit 1 Titel(n) empfangen
D [31372] Free heap: 74104
I [31374] info : PSRAM not found, inputBufferSize: 13951 bytes
I [31385] info : buffers freed, free Heap: 58088 bytes
I [31385] info : Reading file: „/003_MUSIK.mp3“
[ 31400][E][mp3_decoder.cpp:1555] MP3Decoder_AllocateBuffers(): not enough memory to allocate mp3decoder buffers
I [31400] info : The MP3Decoder could not be initialized
I [31411] info : Closing audio file
N [31411] Ende der Playlist erreicht.
Noch ein kurzer Zusatz, du brauchst für den PSRAM Zeile 100 bis 102 (102 ist ein „convenience“, aber 101 ist wichtig, wenn du einen alten ESP32 step erwischt haben solltest).
ich hab jetzt den PSRAM eingefügt, kompiliert und geflasht. Der ESP32 hängt aber jetzt in einer Dauer-Reset-Schleife. Leider komme ich einfach nicht weiter.
Habt ihr eine Idee?
E (736) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0
Rebooting...
ets Jun 8 2016 00:22:57
rst:0xc (SW_CPU_RESET),boot:0x3b (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:14464
load:0x40080400,len:3652
entry 0x400805f0
E (579) esp_core_dump_flash: No core dump partition found!
E (579) esp_core_dump_flash: No core dump partition found!
I [91] Maximale Inaktivitätszeit wurde aus NVS geladen: 10 Minuten
I [91] Initiale Lautstärke wurde aus NVS geladen: 3
E [92] Maximale Lautstärke für Lautsprecher wurde ins NVS geschrieben.
E [103] Maximale Lautstärke für Kopfhörer wurde ins NVS geschrieben.
I [103] Maximale Lautstärke wurde gesetzt auf: 21
I [165] Initiale LED-Helligkeit wurde aus NVS geladen: 16
I [166] LED-Helligkeit für Nachtmodus wurde aus NVS geladen: 2
_____ ____ ____ _
| ____| / ___| | _ \ _ _ (_) _ __ ___
| _| \__ \ | |_) | | | | | | | | '_ \ / _ \
| |___ ___) | | __/ | |_| | | | | | | | | (_) |
|_____| |____/ |_| \__,_| |_| |_| |_| \___/
Rfid-controlled musicplayer
N [232] Software-revision: 20231104-1
N [232] Git-revision: 894c6d8-dirty
N [232] Arduino version: 2.0.14
N [242] ESP-IDF version: 4.4.6
N [243] Wakeup was not caused by deepsleep: 0
N [243] Versuche SD-Karte im SD_MMC-Modus (1 Bit) zu mounten...
D [253] SD card type: SDHC
N [253] SD-Kartengröße / freier Speicherplatz: 30250 MB / 30237 MB
[ 264][E][Preferences.cpp:483] getString(): nvs_get_str len fail: ftpuser NOT_FOUND
[ 264][E][Preferences.cpp:273] putString(): nvs_set_str fail: ftpuser INVALID_STATE
E [269] FTP-User wurde ins NVS geschrieben.
[ 280][E][Preferences.cpp:483] getString(): nvs_get_str len fail: ftppassword NOT_FOUND
[ 281][E][Preferences.cpp:273] putString(): nvs_set_str fail: ftppassword INVALID_STATE
E [289] FTP-Passwort wurde ins NVS geschrieben.
E (296) gpio: GPIO can only be used as input mode
[ 300][E][esp32-hal-gpio.c:130] __pinMode(): GPIO config failed
D [404] RFID-Tags koennen jetzt gescannt werden...
[ 404][E][Preferences.cpp:202] putUInt(): nvs_set_u32 fail: enableWifi INVALID_STATE
[ 405][E][Preferences.cpp:483] getString(): nvs_get_str len fail: Hostname NOT_FOUND
I [413] Hostname aus NVS geladen:
[ 423][E][Preferences.cpp:503] getBytesLength(): nvs_get_blob len fail: SAVED_WIFIS NOT_FOUND
[ 427][E][WiFiGeneric.cpp:684] wifiLowLevelInit(): esp_wifi_init 4363
[ 431][E][WiFiGeneric.cpp:684] wifiLowLevelInit(): esp_wifi_init 4363
[ 437][E][Preferences.cpp:483] getString(): nvs_get_str len fail: LAST_SSID NOT_FOUND
[ 445][E][WiFiGeneric.cpp:684] wifiLowLevelInit(): esp_wifi_init 4363
D [451] Freier Heap-Speicher nach Setup-Routine: 180428
Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x401d4787 PS : 0x00060c30 A0 : 0x801d4b07 A1 : 0x3ffb2190
A2 : 0xfffffffc A3 : 0x401d4b48 A4 : 0x3ffb21f4 A5 : 0x3ffb2210
A6 : 0xfffffffc A7 : 0x00000001 A8 : 0x00000000 A9 : 0x3ffb2090
A10 : 0x00000000 A11 : 0x0000000a A12 : 0x00000001 A13 : 0xffffffff
A14 : 0x00000008 A15 : 0x3ffb1ea0 SAR : 0x00000004 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000000 LBEG : 0x4008c0ce LEND : 0x4008c0d9 LCOUNT : 0x00000000
Backtrace: 0x401d4784:0x3ffb2190 0x401d4b04:0x3ffb21b0 0x401d4b9d:0x3ffb21d0 0x40141da2:0x3ffb21f0 0x40129742:0x3ffb2230 0x400e4817:0x3ffb2270 0x4012a192:0x3ffb2290
#0 0x401d4784:0x3ffb2190 in block_size at C:\Users\bjoer\.platformio\packages\framework-espidf@3.40406.240122\components\heap/heap_tlsf_block_functions.h:74 (discriminator 4)
(inlined by) block_is_last at C:\Users\bjoer\.platformio\packages\framework-espidf@3.40406.240122\components\heap/heap_tlsf_block_functions.h:85 (discriminator 4)
(inlined by) tlsf_walk_pool at C:\Users\bjoer\.platformio\packages\framework-espidf@3.40406.240122\components\heap/heap_tlsf.c:641 (discriminator 4)
#1 0x401d4b04:0x3ffb21b0 in multi_heap_get_info_impl at C:\Users\bjoer\.platformio\packages\framework-espidf@3.40406.240122\components\heap/multi_heap.c:400
#2 0x401d4b9d:0x3ffb21d0 in multi_heap_get_info at C:\Users\bjoer\.platformio\packages\framework-espidf@3.40406.240122\components\heap/multi_heap_poisoning.c:371
#3 0x40141da2:0x3ffb21f0 in heap_caps_get_info at C:\Users\bjoer\.platformio\packages\framework-espidf@3.40406.240122\components\heap/heap_caps.c:556
#4 0x40129742:0x3ffb2230 in EspClass::getPsramSize() at C:/Users/bjoer/.platformio/packages/framework-arduinoespressif32/cores/esp32/Esp.cpp:158
#5 0x400e4817:0x3ffb2270 in setup() at src/main.cpp:220
#6 0x4012a192:0x3ffb2290 in loopTask(void*) at C:/Users/bjoer/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:42
ELF file SHA256: 116bce85605623c2
E (736) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0
Rebooting...
ets Jun 8 2016 00:22:57
Nein, ich habe sonst nichts anpassen müssen, ich verwende 4MB mit einer custom OTA Partition (siehe hier), aber das hat keine Auswirkung auf den ESPuino.
@bjoern der Fehler ist sehr überraschend, vor allem dass es ohne PSRAM geht, mit aber nicht. Kannst du dein Pinout und wenn du hast, Schaltplan posten (du verwendest ja ein custom Board laut -DHAL=99)? Um zu schauen, dass wir nicht ein HW-problem in der SW suchen, GPIO12 (darf kein PD haben), GPIO16 (PSRAM CS) oder GPIO17 (PSRAM CLK) dürfen nicht verwendet werden bei einem WROVER.
Weitere Ideen von mir um den Fehler einzuschränken („nein“ bedeutet der Fehler tritt nicht auf):
hast du das Board schon verbaut? Wenn ja, tritt der Fehler auch mit dem nackten Board auf? (nein → HW Problem)
Hast du ein 2. Board zum Testen? Wenn ja, zeigen beide den gleichen Fehler? (nein → Modul Problem)
Teste mal mit ttgo_t8 als board auf main, mit dem nackten Board? (nein → custom Pinout Problem → poste bitte pinout file)
Teste mit default settings auf main? (nein → Settings Problem → poste bitte settings.h / diff)
Teste mal mit der Dev-Branch (nein → vllt. RAM schmierer in der main-Branch)
Die beiden Tests von vorher nur auf der dev
ich sollte vielleicht eine Flow-Chart dafür zeichnen