What is on the board
Raptor Pilot Pro FC carries three inertial measurement units (IMUs) from three makers and two barometers from two makers. There is no compass on the board; it connects through the GPS port over I2C or over CAN, away from the power wiring.
| Sensor | Part | Maker | Range and notes |
|---|---|---|---|
| IMU 1, primary | ADIS16470 | Analog Devices | Tactical grade, ±2000 °/s, ±40 g, 2 kHz output, 8 °/h in-run bias, factory calibrated from −10 to +75 °C |
| IMU 2 | ICM-45686 | TDK | ±4000 °/s, ±32 g |
| IMU 3 | BMI088 | Bosch | Made for high vibration, ±2000 °/s, ±24 g |
| Barometer 1 | BMP581 | Bosch | ±6 Pa relative |
| Barometer 2 | MS5611 | TE Connectivity | ±1.5 hPa absolute |
| Compass | External | Your choice | GPS port (I2C) or CAN |
Why three IMUs from three makers
Three sensors of the same model fail in the same way. A batch fault, a bug in the sensor's own firmware or a temperature effect hits all three at once, and the redundancy is gone when you need it. Three makers make that much less likely: the parts share no design, no production line and no firmware.
Each IMU also has its own SPI bus and its own power regulator (LDO). A short or a bus fault on one sensor cannot stop the other two. The barometers follow the same rule: two makers, two separate buses.
How ArduPilot uses the three IMUs
ArduPilot's estimator, EKF3, runs one instance for each IMU. ArduPilot calls each instance a lane. All three lanes run at the same time, each with its own IMU. The aircraft flies on the lane with the best health score, and if that lane goes bad, ArduPilot switches to a healthier one in flight without a reboot. The EKF3 overview and the lane switching page in the ArduPilot documentation explain the details.
The board's ArduPilot configuration runs three lanes. The parameter that controls this is EK3_IMU_MASK: a bit mask of the IMUs that get a lane. If you load a parameter file from another board, check that it still enables all three IMUs.
EK3_ENABLE 1 # EKF3 on
EK3_IMU_MASK 7 # bits 1 + 2 + 4: a lane for each of the three IMUs
EK3_PRIMARY 0 # the lane used at start-upTwo barometers
The two barometers have different strengths. The BMP581 gives fine relative resolution (±6 Pa), which is what altitude hold needs. The MS5611 gives good absolute accuracy (±1.5 hPa). They sit on separate buses, so one bus fault cannot take both. In ArduPilot, BARO_PRIMARY picks the barometer used for altitude, and if that one stops reporting, ArduPilot uses the other.
The heated IMU island
A gyroscope's bias drifts with temperature. On a cold morning the board warms up during the first minutes of flight, and a bias that was zeroed on the ground wanders in the air. The IMUs on Raptor Pilot Pro FC sit on an island that is cut off from the rest of the board, with a 1.8 W PWM heater under it. The heater holds the island at a steady temperature, so the IMUs stay in their calibrated band from a cold start and the bias does not move as the air warms up.
In ArduPilot, BRD_HEAT_TARG sets the target temperature in °C. The IMU temperature is reported with the IMU data, so you can watch it settle in the ground station before you fly in the cold.
Vibration
The BMI088 is on the board for airframes with high vibration: it keeps a usable signal where the other two sensors clip. If your logs show vibration levels that differ a lot between the three IMUs, look at the mounting first. Soft mounts and loose cables change what each sensor sees.
