Complete Platine bootet plötzlich nicht mehr vollständig - keine Funktion

Genau, wo es speicherintensiv wird ist Feierabend…

Kannst du mal bitte von dem esp32 ein Foto machen, so dass man den Aufdruck sehen kann. Wenn das nicht klappt schau mal, ob da ESP32-WROVER oder ESP32-WROOM drauf steht.

Leider ist der Serialplott nicht komplett. Am anfang würde man sehen ob PSRAM gefunden wurde.

Ist das noch die Software von der Auslieferung oder hast du selbst etwas draufgespielt?

Es steht auf dem Chip ESP32 Wrover-E.

Ich habe nichts an der Software verändert, lt. Torsten ist es die aktuellste vom dev-branch.

Okay…dann passt die Software…der Chip eigentlich auch

Jetzt wird knifflig

Jepp, also gestern war auch die Lautstärke reduziert. Heute vor dem Crash nicht mehr. Nach dem Einschieben der funktionierenden SD-Karte ging nichts mehr.

Boote mal ohne sd karte und schau mal ob du im serial bis zum sd karte nicht gefunden kommst

Das Verhalten bei dir ist mir völlig neu…
Ich bin gedanklich drauf, dass der ESP32 ein Ding weg hat oder die Spannung zusammenbricht

Welche Qualität hat dein usb kabel?

Monitor Ausgabe ohne SD-Karte

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:1564

ho 0 tail 12 room 4

load:0x40078000,len:15160

ho 0 tail 12 room 4

load:0x40080400,len:3352

entry 0x40080584

E (949) esp_core_dump_flash: No core dump partition found!

E (949) esp_core_dump_flash: No core dump partition found!

I [123] Maximale Inaktivitätszeit wurde aus NVS geladen: 10 Minuten

D [173] RFID-Tags koennen jetzt gescannt werden…

N [174] Port-expander gefunden

N [176] Interrupt für Port-Expander aktiviert

I [177] Zyklus für Batteriemessung fuer Neopixel-Anzeige aus NVS geladen: 10 Minuten

I [188] Unterer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 2.90V

I [199] Oberer Spannungslevel (Batterie) fuer Neopixel-Anzeige aus NVS geladen: 3.30V

I [199] Spannungslevel (Batterie) fuer Niedrig-Warnung via Neopixel aus NVS geladen: 3.00V

I [210] Spannungslevel (Batterie) fuer Kritisch-Warnung via Neopixel aus NVS geladen: 2.00V

I [222] Initiale Lautstärke wurde aus NVS geladen: 10

I [223] Maximale Lautstärke für Lautsprecher wurde aus NVS geladen: 20

I [233] Maximale Lautstärke für Kopfhörer wurde aus NVS geladen: 21

N [234] Lautsprecher ausgeschaltet

I [234] Maximale Lautstärke wurde gesetzt auf: 21

Guru Meditation Error: Core 0 panic’ed (Double exception).

Core 0 register dump:

PC : 0x4009c2d2 PS : 0x00040836 A0 : 0xa5a5a5a5 A1 : 0x3ffc5890

A2 : 0x3ffbe5ac A3 : 0xffffffff A4 : 0x00000001 A5 : 0x000000ff

A6 : 0x00000035 A7 : 0x3ffc5bdc A8 : 0x400803c0 A9 : 0x3ffc5980

A10 : 0x00060a36 A11 : 0x00040026 A12 : 0x3ffc5bdc A13 : 0x00000000

A14 : 0x3ffc9937 A15 : 0x3ffbe9b8 SAR : 0x0000000a EXCCAUSE: 0x00000002

EXCVADDR: 0xffffffe0 LBEG : 0x4000164d LEND : 0x40001667 LCOUNT : 0xfffffffc

Backtrace: 0x4009c2cf:0x3ffc5890 0x65a5a5a2:0x3ffc58c0 |<-CORRUPTED

ELF file SHA256: 498bffc68

E (1267) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0

E (1275) esp_core_dump_elf: Elf write init failed!

E (1280) esp_core_dump_common: Core dump write failed with error=-1

Rebooting…

Ich habe verschiedene Kabel, meist von Anker.

Beim Crash lief die Spannung über Akku (Eremit LFP, 3,2 V, 6Ah)

Okay, das kabel sollte passen.

Hast du den Akku dran?
Wenn ja mache den mal ab und boote.
Wenn nein, dann lade den mal bitte und lass den als Puffer dran (wenn der Akku voll ist geht die LED aus)

Ich versuche das noch einzugrenzen. So einen richtigen Masterplan habe ich ehrlich gesagt noch nicht

Ich habe mir noch mal die anderen Beiträge angesehen.
Das sieht bei dir ein bisschen wie bei Conpactflash aus Autoerkennung von RFID-Reader - #13 von compactflash

Und dort musste ein erase her. Ich überlege mal. Wie fit bist du mit vs code?

Die Monitorausgaben waren beide ohne Akku.

VS wäre schon eine Herausforderung, Ich habe zwar schon einige 8266, esp32 geflasht, aber mit Tasmota o.ä. VS ist ja schon eine andere Stufe. Aber es scheint, dass in der Software noch ein Bug drin ist, der ja wieder zuschlagen kann. Und wenn das Flashen beim ersten Versuch nicht klappt, dann beim 2. oder 3.
Ich würde es versuchen.

An für sich musst du halt einfach Visual Studio Code installieren und dann Platformio als Plugin. Das sollte recht einfach gehen. Aber dann halt den ESPuino-Code möglichst als GIT-Projekt auschecken in VSC-Code, so dass du damit arbeiten kannst. Die Einrichtung dessen kann ne ganze Weile dauern, weil Vieles runtergeladen, eingerichtet und kompiliert werden muss. Sollte das mal abbrechen mit nem Fehler, klickst dann trotzdem auf „Build“. Kannst auch mal auf Monitor klicken.

Jedenfalls musst du dort „Erase Flash“ auswählen, damit der Flash-Speicher des ESP32 komplett gelöscht wird. Und dann schließlich „Upload and Monitor“.

Wichtig: Als Profil muss „Complete“ ausgewählt sein. Das ist GANZ WICHTIG. Und du musst auch in den dev-Branch wechseln, da du sonst eine ältere Version installierst.

Habe hier mal ein Tutorial geschrieben: 📗 ESPuino in Platformio anlegen und mit git aktuell halten.

@Joe91 Ich bin mir noch nicht sicher, ob ich mit dem „ESP Crash Decoder“ als Plugin so glücklich bin. Also der funktioniert an sich, jedoch gibt das mit dem normalen seriellen Monitor irgendwie Hickhack, weil die sich gegenseitig den Port wegnehmen. Außerdem habe ich festgestellt (außer das ist ein Bug in VSC), dass wenn ich auf „Upload and Monitor“ klicke, dass es irgendwie mehrere Sekunden dauert, bis man unten davon was sieht. Das ist irgendwie nicht intuitiv. Ich muss das nochmal bisschen testen, aber ggf. ist es besser, dieses Plugin aus der recommended list wieder zu entfernen und wenn es jmd wirklich braucht, dann installiert er/sie es halt nach.

Für den Rest, der das liest: In der aktuellen ESP32-Arduino-Version funktioniert der integrierte Exception Decoder nicht gescheit. Das zeigt sich so, dass das serial log abgeschnitten ist und man quasi nur durch ein Schlüsselloch schaut. Insofern hatte @Joe91 jetzt den Ansatz, es über das Plugin zu regeln. Man braucht den Exception Decoder auch nicht zwingend - es hilft aber, wenn der ESP32 abstürzt, weil man dann statt kryptischem Kram auch bisschen was Aussagekräftiges sehen kann.

@Uenne: Wenn du beim Installationsprozess gefragt wirst, ob dieses Plugin installiert werden soll, würde ich erstmal auf nein klicken.

Ich habe da mal was gepfuscht. Damit solltest du um VS Code und Co herumkommen.

Bei mir läuft das. Vielleicht kann das @biologist noch mal probieren. Achtung der NVS wird auch gelöscht. Danach waren meine Wlans weg und die Complete läuft aber normal

Super, danke. Schon ausprobiert, es läuft.

Ich habe mich heute morgen 3 h mit VSC und Platformio beschäftigt und erkannt, dass das Ganze nicht so trivial ist. Man muss das Programm verstehen um es bedienen zu können, das braucht Zeit.

Dein Programm hat mir viiiiel Zeit erspart und Frust.

D.h. es läuft jetzt wieder?

Was mir aufgefallen ist
Wir stolpern beim Entprellen des Portexpanders. Weil hier der PIN vom Kopfhörer mit 0 initialisiert wird. Durch das Entprellen wird beim ersten Durchlauf die 1 nicht übernommen.
Zu erkennen ist das, dass die Complete denkt, dass hier Kopfhörer angeschlossen sind (Lautsprecher wird abgeschalten, max Lautstärke der Kopfhörer wird geladen)

Nach der Lautstärke werden eigentlich die LEDs geladen und das unterstreicht die These, dass wahrscheinlich Müll im NVS steht.

Wir melden zwar Fehler aber machen damit nix:

if (settings.ledOffset >= settings.numIndicatorLeds) {
    Log_Println("ledOffset must be between 0 and numIndicatorLeds-1", LOGLEVEL_ERROR);
    return false;
}

Wir sollten Folgende Werte validieren oder durch einen sanitizer kippen:

  • numIndicator
  • dimStates
  • numControl
  • controlColors
  • ledOffset

Vielleicht komme ich morgen dazu

Ja, sogar noch nach dem Zusammenbau.

Super, das es so einfch ging.

These: das Problem war nicht das Einbauen der Platine oder das Umstecken der SD Karte sondern dass über das Webinterface Daten gespeichert wurden. Z.b. max Lautstärke oder sowas

Beim ersten Absturz kann es gut sein, da habe ich an der Lautstärke rumgespielt.

Beim zweiten Absturz ging nach Einstecken der SD-Karte nichts mehr.