Airspeed Sensor Setup¶
An airspeed sensor is essential for fixed-wing (Plane / VTOL) flight. SparkNavi Blue supports both analog and digital (I2C) airspeed sensors.
Analog Airspeed Setup¶
Wiring¶
Connect the analog airspeed sensor to the SparkNavi Blue ADC connector:
| Pin | Signal | Sensor |
|---|---|---|
| 1 | +5V | VCC |
| 2 | ADC | OUT (analog signal) |
| 3 | GND | GND |

The connector label "ANA" is the analog signal output, which goes to the flight controller's ADC input.
ArduPilot Parameters¶
| Parameter | Value | Description |
|---|---|---|
ARSPD_TYPE |
2 (Analog) |
Analog type |
ARSPD_PIN |
18 |
SparkNavi Blue specific |
ARSPD_USE |
1 |
Use airspeed for control |
⚠️ Origin of ARSPD_PIN = 18: it corresponds to PA4 (ADC1_6V6_IN), which is ADC1 PIN 18 on the STM32H743 — defined in SparkNavi Blue's hwdef. The Mission Planner dropdown may not list 18; just type it manually.
Calibration¶
- Configure the parameters above
- Reboot the flight controller
- Blow gently into the Pitot tube's Dynamic port — the AS (Airspeed) value on the Mission Planner HUD should change, confirming setup
Digital Airspeed Setup (MS5525)¶
Wiring¶
Connect MS5525 digital airspeed sensor to SparkNavi Blue's I2C external port:
| Pin | Signal |
|---|---|
| 1 | +5V |
| 2 | I2C2_SCL |
| 3 | I2C2_SDA |
| 4 | GND |
Pitot Tubing¶
Static (static pressure) connects to the side hole of the Pitot tube; Dynamic (dynamic pressure) connects to the front:

ArduPilot Parameters¶
ARSPD_BUS = 0
ARSPD_OPTIONS = 15
ARSPD_PIN = 18
ARSPD_TYPE = 5 (I2C-MS5525, 0x77)
Full parameter table:

Why ARSPD_BUS = 0?¶
In the SparkNavi Blue hwdef, I2C2 is mapped to bus 0 (highest priority for external I2C peripherals). So ARSPD_BUS = 0 corresponds to the physical I2C2 external port — not the bus literally numbered 0.
I2C Address Conflict¶
- SPL06 barometer uses I2C address 0x76
- MS5525 default address is also 0x76 → conflicts with SPL06
- Change MS5525 to 0x77 to avoid conflict
- On boards without SPL06, MS5525 at 0x76 is fine
Digital Airspeed Calibration¶
After setting parameters:
1. Clear Existing Calibration¶
ARSPD_SKIP_CAL = 0 ← temporarily disable skip-cal
ARSPD_OFFSET = 0 ← clear existing offset
Click Write Params.
2. Calibrate¶
- Cover the Pitot tube opening (no airflow)
- Reboot the SparkNavi Blue
- Check the Mission Planner HUD — AS should read 0 m/s
3. Verify¶
Check parameters: if ARSPD_OFFSET now has a non-zero value automatically, calibration succeeded.
4. Lock Calibration¶
ARSPD_SKIP_CAL = 1 ← reuse this calibration on subsequent boots
HUD Verification¶
After calibration, the Mission Planner HUD top-left should show AS (Airspeed):

Blow into the Pitot Dynamic port — AS should respond live (e.g., 12.5 m/s).
FAQ¶
Q: AS stays at 0 after setup?
A: Check:
1. ARSPD_USE = 1 is enabled
2. I2C wiring correct
3. Pitot Static / Dynamic tubes not swapped
4. Digital sensor I2C address doesn't conflict with another module (use 0x77)
Q: Why does ARSPD_OFFSET stay 0 after reboot?
A: Calibration order matters: block airflow first, then reboot. Wrong order won't calibrate.
Q: AS and GS (groundspeed) differ a lot?
A: That's wind. AS measures speed relative to air; GS measures relative to ground. Headwind makes AS > GS, tailwind makes AS < GS. This is expected.