By Milind
/
July 31, 2025
This is the fourth part of our series on the development of the Wint Mahymah flight controller, a powerful multi-domain system designed for demanding next generation UAVs. Building a flight controller for such diverse environments is a careful balancing act — combining high computational performance, precise sensing, and robust architecture within a compact and reliable design. In this blog, we'll walk through the key design choices, the trade-offs we evaluated, and the approach we ultimately adopted.
The previous part of this series talked about choosing an IMU which was small, and had low-noise and low-power characteristics. This part continues from here and goes into the next most important component, i.e. the Barometer.
This sophisticated flight controller is being entirely designed and manufactured in India, embodying our philosophy of "Making in India, Making for the World."
This section goes through the first part of the selection process - listing the requirements and constraints that must be considered while selecting the Barometer and prioritizing them. This was a relatively quick process.
The constraint listed above seems quite obvious, but presents an important point. An exotic cutting-edge sensor would be overkill for our purpose, and we needed reasonable performance at reasonable pricing with strong availability, not a research platform, for a production-grade flight controller.
Having listed the requirements, we finally narrowed down the search to 3 vendors - STMicroelectronics, Bosch & TDK. Each were popular silicon vendors with a strong supply-chain, support, documentation and portfolio of Barometers (and other sensors too).
Finally, we chose the LPS22HH from STMicroelectronics, as we found it to have the best combination of temperature stability, pressure range, data-rate and power consumption. Here are all the options that we considered and why we rejected them -
This section walks through the process of creating an evaluation board for the LPS22HH, which is the next step after selecting the sensor. It would have been better to buy a pre-existing evaluation board, but we decided to make our own to verify the decoupling capacitors and the SPI interface routing ourselves.
The final board (labelled) looks as shown -
The evaluation board was designed to be simple, breadboard-friendly and re-usable beyond this project. It has the following features kept fairly simple and had the following features -
The LPS22HH also supports oversampling, which helps reduce noise at higher data rates with only a slight increase in power consumption. This is particularly valuable in high-performance platforms where fast altitude updates are needed during aggressive maneuvers and where aerodynamic disturbances near the sensor can introduce significant pressure noise.
A potential improvement in the breakout would be the addition of the Adafruit Qwiic connector, which would make it compatible with a vast ecosystem of sensors.
This evaluation board follows the same form-factor (shape and connectors) as the ICM-42688P. This is an intentional design choice to make the wiring on a breadboard simpler (SPI is a bus and having all the connectors on the same side is convenient to work with). This also makes the development faster.
Being a Barometer, it is helpful to be able to mount it on a fixed base (breadboard) with the other sensors, giving a stable and shared reference frame for all readings. If the pins were instead on a single side (requiring direct wiring to the MCU), the sensor would be dangling from wires, making the readings inconsistent and impossible to interpret.
After designing the physical breakout board, we needed a robust software foundation to maximize the potential of the LPS22HH. Our goal was to create a driver that wasn't just functional but adaptable across multiple platforms and projects, and able to provide the AGL and MSL altitude. This approach aligns with our philosophy of building reusable components that provide long-term value.
Similar to our ICM-42688P driver, the LPS22HH driver architecture also provides a layered approach with clear separation of concerns -
The key to platform agnosticism lies in our Hardware Abstraction Layer (HAL). We designed an interface structure that defines the essential communication functions -
And functions of the following form -
The init, configuration and data functions implement the logic of executing a transaction with the Barometer, by using the functions pointed to by the interface structure. This allows the consumer of the driver to implement the communication for their platform and communication protocol (SPI or I2C).
This structure allows us to inject platform-specific implementations while keeping the core driver logic consistent. Whether we're running on an STM32, ESP32, or any other microcontroller, the driver's behavior remains predictable.
For high-speed sampling applications like flight control, Direct Memory Access (DMA) is crucial. Our driver provides both polling-based and DMA-based reading modes.
Specifically when using DMA, the driver provides a function to start the DMA process, and another function which to be called on the completion of the DMA transfer. This allows the DMA read functionality to be performed in a cross-platform manner.
Beyond simply using the sensor, the driver also includes instrumentation to provide insights into usage and speed-up debugging in case of errors or unexpected behaviour -
After finishing the hardware and software development process, the next steps are to thoroughly use the sensor in dynamic environments (such as stationary, vibrating, oscillating etc.) and test various sensor fusion algorithms.
The first part of the evaluation process is to individually test the breakout board and software driver with the STM32H7 MCU breakout board (from the previous part), similar to unit testing in software development. Once proper functioning has been determined, the next step is to place the sensor in various environments (static, vibrating, oscillating etc.) and characterize its tolerance, power-consumption etc.
After testing the sensor individually, the next step is to combine data from multiple sensors (multiple IMUs as well as other kinds of sensors) to characterize sensor fusion algorithms, which will be covered in a separate blog.
The LPS22HH is rated for Electrostatic Discharge (ESD)protection up to ±2 kV (HBM), offering basic protection during handling. It complies with JEDEC J-STD-020 and JESD22-A113 for moisture sensitivity and reflow soldering, supporting peak reflow temperatures up to 260 °C. The device is also highly durable, capable of withstanding mechanical shocks up to 22,000 g along any axis.
The LPS22HH has emerged as a suitable choice for our flight controller, offering reliable performance and low noise in a compact and efficient package. We will use it to provide accurate relative altitude measurements and strengthen the robustness of our sensor-fusion algorithms during dynamic flight conditions.
The next step is to integrate the current sensors (along with others we've already evaluated) into a prototype and begin initial testing, calibration and tuning of the full system.
Through this blog, we hope to build transparency with our community by sharing our development and engineering process. If you have any thoughts or suggestions, you can share them with us at aerowint.com/contact, or write to our founders directly at milind@aerowint.com or aditya@aerowint.com.