P0: MPU6000 IMU calibration never completes — blocks arming/balance mode #520

Closed
opened 2026-03-06 22:35:40 -05:00 by seb · 0 comments
Owner

Problem

mpu6000_is_calibrated() never returns true, blocking the normal arming path (cdc_arm_requestsafety_arm_start()balance_arm()).

Status query shows cal=0 permanently. E-stop is not active (estop=0).

Impact

  • Cannot enter balance mode
  • Motor test only works via direct W command (bypasses arming/PID)
  • Blocks all autonomous operation

Suspected causes

  • SPI communication issue with MPU6000 (WHO_AM_I=0x68 confirmed, but calibration routine may be stuck)
  • Possibly DCache interference on STM32F7 (known issue: DCache breaks SPI)
  • Calibration timeout too short

Hardware

  • FC: MAMBA F722S (STM32F722RET6)
  • IMU: MPU6000 on SPI1 (PA5/PA6/PA7, CS=PA4, EXTI=PC4)
  • Alignment: CW270

Debug steps

  1. Check SPI1 actually reads valid accel/gyro data
  2. Check if DCache is enabled and interfering with SPI DMA
  3. Add debug output showing raw gyro values during calibration
  4. Check calibration convergence criteria
## Problem `mpu6000_is_calibrated()` never returns true, blocking the normal arming path (`cdc_arm_request` → `safety_arm_start()` → `balance_arm()`). Status query shows `cal=0` permanently. E-stop is not active (`estop=0`). ## Impact - Cannot enter balance mode - Motor test only works via direct W command (bypasses arming/PID) - Blocks all autonomous operation ## Suspected causes - SPI communication issue with MPU6000 (WHO_AM_I=0x68 confirmed, but calibration routine may be stuck) - Possibly DCache interference on STM32F7 (known issue: DCache breaks SPI) - Calibration timeout too short ## Hardware - FC: MAMBA F722S (STM32F722RET6) - IMU: MPU6000 on SPI1 (PA5/PA6/PA7, CS=PA4, EXTI=PC4) - Alignment: CW270 ## Debug steps 1. Check SPI1 actually reads valid accel/gyro data 2. Check if DCache is enabled and interfering with SPI DMA 3. Add debug output showing raw gyro values during calibration 4. Check calibration convergence criteria
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#520
No description provided.