Pixhawk 6X (v1.17.0): baro altitude drifts up to ~1 m on the bench with nothing connected. Is this normal, and how should I set up no-GPS indoor flight?

Hi all,

I’d like an expert opinion on barometer drift on my Pixhawk 6X before I start flying indoors without GPS.

Setup

  • Pixhawk 6X (internal ICP20100 + BMP388), PX4 v1.17.0
  • Only USB connected: no GPS, no power module, no other sensors
  • Board sitting still on a desk indoors, disarmed
  • Log and params attached

Result (10 min test, attached log)

  • EKF altitude (vehicle_local_position): 0 → +0.55 m → −0.29 m, with the board not moving.
  • Both barometers mostly move together: the pressure difference between them changed by only ~3 Pa.
  • Two other bench tests the same day showed the same pattern, once up to +1.1 m (24 min) and once down to −0.8 m (16 min). The direction changes from test to test.

My intended use
Holybro S500 indoors, no GPS, barometer for height, plus a Holybro H-Flow (optical flow + rangefinder over DroneCAN).

Current settings:
EKF2_HGT_REF 0 (baro)
EKF2_RNG_CTRL 1 (conditional)
EKF2_RNG_A_HMAX 10
EKF2_RNG_A_VMAX 1
EKF2_BARO_NOISE 3.5
EKF2_OF_CTRL 1

Please check the attached log which was took during bench test, connected only Pixhawk6x to PC with latest stable version of PX4 V1.17.0

https://logs.px4.io/plot_app?log=eb6a7da3-56f3-4e9f-9e1e-1948e4e85f4f

Questions

  1. Is ~1 m of altitude drift on the bench, with the board still, normal for the 6X internal barometers? Or does it suggest a hardware or sensor problem?
  2. What is the most likely cause: room air pressure changes (AC, doors, ventilation), or something on the board itself?
  3. Without GPS, does the EKF correct baro drift at all? For example, does conditional range aid correct the baro offset while hovering, or does the drift stay uncorrected?
  4. For no-GPS indoor flight, which setup is recommended:
    • EKF2_HGT_REF = 0 (baro) + EKF2_RNG_CTRL = 1 (conditional), or
    • EKF2_HGT_REF = 2 (rangefinder) + EKF2_RNG_CTRL = 2 (always)?
  5. Are there parameters I should change to reduce the effect of baro drift without GPS (for example EKF2_BARO_NOISE, EKF2_RNG_A_HMAX)? Or is the right practice simply to arm just before takeoff, so altitude starts from 0?

Thanks in advance!