fix(P4): Endlose Neustartschleife nach Kaltstart (1.9.11) #80

Merged
thomas merged 1 commits from fix/kaltstart-neustartschleife into main 2026-09-03 15:09:03 +02:00
Owner

Log zeigt zweimal hintereinander rst:0x1 (POWERON) und [Panel] Startgrund: 1, danach nichts mehr - Beleuchtung an, kein Bild.

Ursache: Der gewollte einmalige Neustart nach Kaltstart (WS7_COLD_BOOT_RESTART) prüfte nur esp_reset_reason() == ESP_RST_POWERON. Der Kommentar nahm an, der zweite Durchlauf melde einen Software-Reset. Tatsächlich meldet der Chip auch nach esp_restart() wieder POWERON, die Bedingung greift erneut - Endlosschleife. Der bootguard konnte nicht eingreifen, weil derselbe Zweig early jedes Mal auf 0 zurücksetzt.

  • Zusätzliches NVS-Flag kaltneu in bootguard: wird vor esp_restart() gesetzt und beim zweiten Durchlauf erkannt und gelöscht. Unabhängig vom gemeldeten Startgrund, damit die Schleife strukturell ausgeschlossen ist.
  • Die Meldung lief über DBG_SERIAL (USB-CDC) und war im Monitor an der UART nicht zu sehen - jetzt esp_rom_printf wie die übrigen Panel-Meldungen.

Beide Panel-Varianten mit arduino-cli gegengebaut.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NeFMr439WcLMdebE3kU7fS

Log zeigt zweimal hintereinander `rst:0x1 (POWERON)` und `[Panel] Startgrund: 1`, danach nichts mehr - Beleuchtung an, kein Bild. **Ursache:** Der gewollte einmalige Neustart nach Kaltstart (`WS7_COLD_BOOT_RESTART`) prüfte nur `esp_reset_reason() == ESP_RST_POWERON`. Der Kommentar nahm an, der zweite Durchlauf melde einen Software-Reset. Tatsächlich meldet der Chip auch nach `esp_restart()` wieder POWERON, die Bedingung greift erneut - Endlosschleife. Der bootguard konnte nicht eingreifen, weil derselbe Zweig `early` jedes Mal auf 0 zurücksetzt. - Zusätzliches NVS-Flag `kaltneu` in `bootguard`: wird vor `esp_restart()` gesetzt und beim zweiten Durchlauf erkannt und gelöscht. Unabhängig vom gemeldeten Startgrund, damit die Schleife strukturell ausgeschlossen ist. - Die Meldung lief über `DBG_SERIAL` (USB-CDC) und war im Monitor an der UART nicht zu sehen - jetzt `esp_rom_printf` wie die übrigen Panel-Meldungen. Beide Panel-Varianten mit arduino-cli gegengebaut. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01NeFMr439WcLMdebE3kU7fS
thomas added 1 commit 2026-09-03 15:09:03 +02:00
Log zeigt zweimal hintereinander "rst:0x1 (POWERON)" und
"[Panel] Startgrund: 1", danach nichts mehr - Beleuchtung an, kein Bild.

Ursache: Der gewollte einmalige Neustart nach Kaltstart (WS7_COLD_BOOT_RESTART)
prüfte nur esp_reset_reason() == ESP_RST_POWERON. Der Kommentar nahm an, der
zweite Durchlauf melde einen Software-Reset. Tatsächlich meldet der Chip auch
nach esp_restart() wieder POWERON, die Bedingung greift erneut - Endlosschleife.
Der bootguard konnte nicht eingreifen, weil derselbe Zweig "early" jedes Mal
auf 0 zurücksetzt.

- Zusätzliches NVS-Flag "kaltneu" in bootguard: wird vor esp_restart() gesetzt
  und beim zweiten Durchlauf erkannt und gelöscht. Unabhängig vom gemeldeten
  Startgrund, damit die Schleife strukturell ausgeschlossen ist.
- Die Meldung lief über DBG_SERIAL (USB-CDC) und war im Monitor an der UART
  nicht zu sehen - jetzt esp_rom_printf wie die übrigen Panel-Meldungen.

Beide Panel-Varianten mit arduino-cli gegengebaut.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NeFMr439WcLMdebE3kU7fS
thomas merged commit cd1617fdce into main 2026-09-03 15:09:03 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: thomas/Dual-PID#80