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

MPXV7002DP analog airspeed module

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

  1. Configure the parameters above
  2. Reboot the flight controller
  3. 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:

Static vs Dynamic

ArduPilot Parameters

ARSPD_BUS     = 0
ARSPD_OPTIONS = 15
ARSPD_PIN     = 18
ARSPD_TYPE    = 5  (I2C-MS5525, 0x77)

Full parameter table:

ARSPD full parameters

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

  1. Cover the Pitot tube opening (no airflow)
  2. Reboot the SparkNavi Blue
  3. 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):

HUD AS display

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.


Further Reading