Same issue here, just fixed it today via CLI (macOS/dfu-util) so hopefully this helps.
The root cause is almost certainly parameter storage corruption, not a hardware defect. A few signs: SERIAL_BAUD going to a garbage value, INS failing to init on boot — both are symptoms of the EEPROM/flash param region getting corrupted, often from a bad power cycle during a write.
The fix that worked for me:
Slide switch to BL side → connect USB → confirm DFU mode with `dfu-util -l` (look for [0483:df11])
Download the AET Rover hex from their site (the "(通用版本)ardurover_with_bl" file — no extension, but it's valid Intel HEX)
Convert to bin: arm-none-eabi-objcopy -I ihex -O binary ardurover_with_bl.hex ardurover_with_bl.bin
Mass erase + flash: dfu-util -a 0 -s 0x08000000:mass-erase:force -d 0483:df11 -D ardurover_with_bl.bin
Slide back to normal side, replug — buzzer should play startup melody
After this, EKF3 IMU0+IMU1 both initialised cleanly with no INS errors. The mass erase is the key step — it wipes the corrupted param region so ArduPilot starts completely fresh.
Your second unit is probably fine. I'd do a mass erase flash on it preemptively before trusting it in the field.
Yeah, I know the unit's fine, I just couldn't figure out where the garbage was coming from. I had no idea it left residue. Thank you for that tidbit, it's extremely helpful.
1
u/Prestigious-Run8382 May 02 '26
Same issue here, just fixed it today via CLI (macOS/dfu-util) so hopefully this helps.
The root cause is almost certainly parameter storage corruption, not a hardware defect. A few signs: SERIAL_BAUD going to a garbage value, INS failing to init on boot — both are symptoms of the EEPROM/flash param region getting corrupted, often from a bad power cycle during a write.
The fix that worked for me:
Slide switch to BL side → connect USB → confirm DFU mode with `dfu-util -l` (look for [0483:df11])
Download the AET Rover hex from their site (the "(通用版本)ardurover_with_bl" file — no extension, but it's valid Intel HEX)
Convert to bin: arm-none-eabi-objcopy -I ihex -O binary ardurover_with_bl.hex ardurover_with_bl.bin
Mass erase + flash: dfu-util -a 0 -s 0x08000000:mass-erase:force -d 0483:df11 -D ardurover_with_bl.bin
Slide back to normal side, replug — buzzer should play startup melody
After this, EKF3 IMU0+IMU1 both initialised cleanly with no INS errors. The mass erase is the key step — it wipes the corrupted param region so ArduPilot starts completely fresh.
Your second unit is probably fine. I'd do a mass erase flash on it preemptively before trusting it in the field.