Airspeed Sensor is off by ~9m/s or ~30km/h

Hi There,
I hope someone can assist. I am having issues calibrating my airspeed sensor with the below hardware/software:

  • Pixhawk 5X flight controller
  • 45250 5A1 airspeed sensor
  • Qground Stable Version 4.0

Some details:

  • When performing a calibration, the process just goes through without me having to blow into the pitot
  • After above-mentioned calibration the speed with no wind reads at ~9m/s or ~30km/h
  • I have tested Ardupilot firmware and my standby air speed reads around ~2m/s





Hi,
try to check the measured value of differencial pressure by sensor. Without any airflow and with blowing.

This can be done by command in px4 console listener differential_pressure -n 100. (Parameter -n means repetition of showing actual value)

In general, I have to say that I do not have good experiences with these sensors, becaues they have a large offset and it also changes with temperature. Much better sensors are airspeed sensors based on senserion SDP3x sensors. It does not any offset and temperature drift.

I also have a 5X that has a constant speed of ~30 mph. When I calibrate the airspeed sensor it simply skips past the instruction to blow into the tube, just like the original poster described.
Using a logic analyser I get a reading from the MS4525 sensor of 8054 which equates to a pressure of 0.02 PSI. Converting this to a speed confirms the speed reading that I’m seeing in QGroundControl.

My question is this: How much does the calibration procedure offset the differential pressure and is there a limit to this offset?

The other point is that it would appear that my 4525 sensor is out of spec with a zero diff pressure. Could this be causing the calibration procedure in QGroundControl to simply skip through.

It would be good to know how much the firmware can compensate for diff pressure offsets before I buy a new sensor.

I used the console to get the actual value from the sensor and below is what I received.

2022-01-25 21_32_55-QGroundControl

One thing I did notice was that the differential pressure value is stored under SENS_DPRES_OFF (Differential Pressure Sensor Offset) and with my system, it is populated ~49 after calibration. Even when I change this manually, the final airspeed value does not change. I starting to think about whether the 5X firmware is broken especially considering it is a new board.

@garethw, may I ask what firmware/airframe you are using?

Here is my console output for differential pressure and airspeed

NuttShell (NSH) NuttX-10.1.0
nsh> listener differential_pressure

TOPIC: differential_pressure 2 instances

Instance 0:
differential_pressure_s
    timestamp: 262922994  (0.017322 seconds ago)
    error_count: 0
    differential_pressure_raw_pa: 144.6664
    differential_pressure_filtered_pa: 143.5284
    temperature: 18.6859
    device_id: 4663321 (Type: 0x47, I2C:3 (0x28)) 

Instance 1:
    differential_pressure_s
    timestamp: 262941524  (0.010128 seconds ago)
    error_count: 0
    differential_pressure_raw_pa: -145.2138
    differential_pressure_filtered_pa: -145.2138
    temperature: 20.0000
    device_id: 4748817 (Type: 0x48, I2C:2 (0x76)) 
nsh> listener airspeed

TOPIC: airspeed
 airspeed_s
    timestamp: 285454249  (0.010147 seconds ago)
    indicated_airspeed_m_s: 14.7941
    true_airspeed_m_s: 14.7164
    air_temperature_celsius: 18.7836
    confidence: 1.0000
nsh>

My SENS_DPRES_OFF = 145

@ptabrizi We will be using a customised VTOL airframe but I’m currently using just a standard fixed wing plane airframe for testing.