Devlog #7
Subject: Upgrading the Sensor Suite & Advanced Vario Estimation
Date: 8/12
After starting to making the BOM and other details for the drone i diced to making an update of the hardware
I updated the PCB IMU to an industrial-grade Bosch BMI088 (with GYRO CS on PA4 and ACC CS on PA4) and swapped the barometer for an SPL06-001 (BARO CS on PA0, MAG CS on PA3).
This hardware revision allowed us to introduce major firmware variations:
-
Firmware V003 (
XDQ-001F_V003.ino): Direct hardware support and pinout re-routing for the new BMI088 (dual-die SPI mode 0/3) and SPL06-001 barometer drivers. -
Firmware V004 (
XDQ-001F_V004.ino): Advanced sensor fusion algorithms including a 3rd-order Complementary Altitude & Vario Estimator (fusing SPL06 baro and BMI088 AccelZ at 1kHz for lag-free vertical speed estimation) and a PT2 (2nd-order) Low-Pass Notch Filter on the BMI088 gyro to suppress motor vibration noise before the PID loop.
🚀 XDQ-001 Devlog: Sensor Suite Overhaul & Vario Fusion
Here is a quick update on the latest hardware and firmware milestones for the XDQ-001 flight platform.
1. PCB Hardware Upgrade (August 12th)
We upgraded the onboard sensor suite to industrial-grade components. The FCB now houses a Bosch BMI088 IMU (separate gyro/accel dies for superior vibration resistance) and a Goertek SPL06-001 high-resolution barometer. The SPI CS routing was updated accordingly (GYRO CS & ACC CS on PA4, MAG CS on PA3, BARO CS on PA0).
2. Driver Integration & V003 Firmware (August 12th)
With new hardware comes updated firmware. We wrote dedicated drivers for the BMI088 (handling its dual SPI Mode 0 / Mode 3 requirements and ±24G / ±2000 dps scaling) and the SPL06-001 (decoding its 18-byte calibration array). All of this was packed into XDQ-001F_V003.ino, keeping V002 safe as a backup.
3. 3rd-Order Vario & Altitude Fusion (August 12th)
Why get better hardware if you aren’t going to push it? In XDQ-001F_V004.ino, we built a 3rd-order Complementary Altitude/Vario Estimator that runs inside the 1kHz ISR. It fuses earth-frame Z acceleration with barometric pressure to calculate instantaneous vertical velocity (climbRate_mps). Altitude lock during autonomous waypoint missions is now smoother than ever without any altitude lag.
4. PT2 Gyro Filtering & Tuning (August 12th)
To clean up motor noise before it hits the PID controllers and the SO(3) geometric attitude loop, we added a 2nd-order Low-Pass Filter (PT2) with a 90Hz cutoff directly on the BMI088 gyro channels. We also re-tuned Mahony’s Adaptive Accel Gating to leverage the ±24G dynamic range during aggressive maneuvers.