Commit Graph

3 Commits

Author SHA1 Message Date
Comma Device 93582d1c81 Merge master-dev sync-20260902 into c3xl-dev
- upstream sync 47db84ebf..132b31f4c: new panda health packet, chestnut
  usb status, ui TextAlignment refactor, modeld/HF model name, hardwared
- agnos.json: update system partition only, keep custom boot
- submodules: opendbc_repo f95f996f (mads cppcheck), panda 74a0adce
  (health flags packet), uv.lock raylib post101
- resolve ui/layouts/home.py conflict (keep MR.ONE home content)
2026-09-04 14:55:37 +08:00
Comma Device 015f9f7c69 pandad: protect app firmware from recover, keep blank-board flashing
The SPI panda boot loop called recover_internal_panda() whenever the panda
did not appear within 20s after a reset. recover() erases both the bootstub
and app sectors (dfu.py program_bootstub erases sectors 0+1) before
reflashing, so a working panda that booted slowly lost its app firmware.

Fix:
- pandad.py: wait up to 60s for the panda, retry the normal reset 3x, and
  only enter the ROM bootloader (recover) when the panda is confirmed in DFU
  or all normal resets failed - preserving provisioning of blank boards.
- hardware.py: align recover_internal_panda() timing with the working manual
  flash scripts (0.2s reset hold, 1s settle, keep BOOT0 high).
- spi.py: raise the SPI bootloader ack timeout from 0.01s to 0.1s so the DFU
  flash reliably succeeds instead of erasing then failing.
2026-08-30 14:15:55 +08:00
github-actions[bot] f8e13417f2 sunnypilot v2026.003.000 release
date: 2026-08-15T14:20:10
master commit: d48cfa730bf21593b684efeaf3fd8940695e1dea
2026-08-15 14:20:16 +08:00