SparkNavi Documentation

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:

PinSignalSensor
1+5VVCC
2ADCOUT (analog signal)
3GNDGND
MPXV7002DP analog airspeed module

The connector label "ANA" is the analog signal output, which goes to the flight controller's ADC input.

ArduPilot Parameters

ParameterValueDescription
ARSPD_TYPE2 (Analog)Analog type
ARSPD_PIN18SparkNavi Blue specific
ARSPD_USE1Use 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:

PinSignal
1+5V
2I2C2_SCL
3I2C2_SDA
4GND

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#