Live bus dump from the Seal showed a different topology than the Han: - ACC_HUD_ADAS (813) + ACC_CMD (814) are broadcast on the vehicle CAN (bus 0), not the camera CAN. Panda rx check expected 813 on bus 2 and never saw it -> safety config invalid -> controls blocked forever. - PCM_BUTTONS (944) confirmed on bus 0 at 20Hz (MADS button placement OK) - 482 MPC_LKAS_CMD_ANGLE present on bus 2 (angle LKAS cmd; for future use) Changes: - carstate: ADAS messages (ACC_HUD_ADAS/ACC_CMD) read from bus 0 on SEAL, bus 2 on HAN (cp_adas accessor); parsers built per platform/bus - panda byd.h: 813 cruise check is bus-independent; rx checks accept 813 on bus 0 or 2, 944 on bus 0 or 2 (first-seen-wins) - interface: disable openpilot longitudinal for SEAL — stock ACC_CMD originates on bus 0 where the panda cannot intercept it. Stock ACC + MADS lateral it is (which is the point of MADS anyway). - panda firmware rebuilt Verified: SEAL (cruise+lkas button via bus 0, alphaLong=False) and HAN (bus 2 topology, alphaLong=True) both canValid; 120 safety tests + MISRA clean.
Programming
./flash.py # flash application
./recover.py # flash bootstub
Debugging
To print out the serial console from the STM32, run tests/debug_console.py
Troubleshooting
If your panda will not flash and green LED is on, use recover.py.
If panda is blinking fast with green LED, use flash.py.
Otherwise if LED is off and panda can't be seen with lsusb command, use panda paw to go into DFU mode.
If your device has an internal panda and none of the above works, try running ../scripts/reflash_internal_panda.py.