⚠️ Affiliate Disclosure: This post contains Amazon affiliate links. If you purchase through our links, we may earn a small commission at no extra cost to you. We only recommend sensors we have researched and whose listings we checked live on Amazon. Prices change constantly, so we deliberately don’t print them here. Tap through to see the current price.
Ultimate Buying Guide
🌤️ Best Barometric Pressure Sensors for Arduino, ESP32 & Embedded Projects
8 pressure sensors ranked for altimeters, weather stations, drones and IoT nodes: from the budget BMP280 to the ultra-low-noise BMP581, the drone-favourite MS5611 and a ported 25 PSI sensor, with real datasheet specs and honest verdicts.
✅ 8 Sensors Reviewed
✅ Verified Amazon ASINs
✅ Datasheet-Backed Specs
✅ Honest Pros & Cons
A barometric pressure sensor measures the weight of the air above it, and that single number unlocks a surprising amount: weather trends and storm warnings, altitude for drones and rockets, floor detection in wearables, airflow and filter monitoring, and even dead-reckoning help for indoor navigation. Modern MEMS parts from Bosch, TE Connectivity, Infineon and ST are tiny, cost a few dollars, talk I²C or SPI, and plug straight into an Arduino, ESP32, STM32 or Raspberry Pi Pico.
The catch is that they are not interchangeable. Sensors differ in relative accuracy (how finely they can track a change in height), absolute accuracy, noise, power draw, pressure range and whether the breakout board can handle 5V logic. This guide ranks 8 pressure sensors by the specs that matter in embedded work, so you can pick the right one for a weather station, a flight controller or a battery-powered IoT node the first time.
💡 Reality check before you buy: A barometric sensor measures pressure, not altitude. Altitude is calculated, and absolute altitude is only as good as the sea-level reference (QNH) you feed it, which changes with the weather. Relative height changes are where these chips shine. Budget breakouts are often clones: plenty of boards sold as “BME280” actually carry a BMP280 (check the chip ID: 0x58 is BMP280, 0x60 is BME280). Many cheap modules are 3.3V only with no level shifter, so wiring them to a 5V Arduino can kill them. And mounting matters as much as the chip: sunlight, airflow and heat from your MCU or regulator will show up in the readings.
🌡️ Quick Comparison: All 8 Pressure Sensors
| Sensor | Chip | Range | Interface / Logic | Best For | Buy |
|---|
| 🥇 Waveshare BMP390 | Bosch BMP390 | 300–1250 hPa | I²C + SPI · 3.3/5V | Best Overall | Buy Here → |
| 🎯 SparkFun BMP581 Qwiic | Bosch BMP581 | 300–1250 hPa | I²C + SPI · 3.3V | Best Precision & Low Power | Buy Here → |
| 💵 HiLetgo BMP280 | Bosch BMP280 | 300–1100 hPa | I²C + SPI · 3.3V only | Best Budget | Buy Here → |
| 🚁 HiLetgo GY-63 MS5611 | TE MS5611-01BA03 | 10–1200 mbar | I²C + SPI · 3–5V | Best for Drones & Variometers | Buy Here → |
| 🌦️ Waveshare BME280 | Bosch BME280 | 300–1100 hPa | I²C + SPI · 3.3/5V | Best 3-in-1 Weather Sensor | Buy Here → |
| 📐 DONGKER DPS310 | Infineon DPS310 | 300–1200 hPa | I²C + SPI · 3.3/5V | Best Bosch Alternative | Buy Here → |
| ⚡ LPS22HB Module | ST LPS22HB | 260–1260 hPa | I²C + SPI · 3.3V only | Best for STM32 & Fast Sampling | Buy Here → |
| 🔧 Adafruit MPRLS | Honeywell MPRLS | 0–25 PSI abs | I²C · 3–5V | Best Ported / Pneumatic | Buy Here → |
Ranges and interfaces are from the sensor datasheets and the live listings. “3.3V only” boards have no level shifter, so use a 3.3V MCU or add a shifter. Several budget modules are also sold in multi-packs; check the listing.
🔍 What to Look for in a Barometric Pressure Sensor
📏
Relative Accuracy
The spec that matters for altitude. Near sea level, 0.12 hPa is roughly 1 m of height. The BMP390’s ±0.03 hPa tracks changes of about ±25 cm; an old BMP280 is closer to ±1 m.
🎯
Absolute Accuracy & Noise
Absolute accuracy matters for weather reporting against official stations. Low noise matters for variometers and floor detection, where you want a stable reading without heavy filtering lag.
🔋
Power Consumption
Battery nodes care about current at 1 Hz and in standby. The BMP581 sips about 1.3 µA at 1 Hz; a FIFO (BMP390, DPS310) lets your MCU sleep longer between reads.
🔌
Interface & Logic Level
All picks speak I²C; most also do SPI for faster, noise-immune links. Check whether the breakout has a regulator and level shifter if you’re on a 5V Arduino Uno.
🌀
Pressure Range & Port
Barometric parts top out around 1.1–1.25 bar. For tubes, cuffs, vacuum or pneumatics you need a ported sensor like the MPRLS with a barb you can push tubing onto.
🏆 Detailed Reviews: All 8 Pressure Sensors
🥇 BEST OVERALL
Waveshare BMP390
⭐ 4.7/5 · Precision Altimeter, 5V-Friendly
±0.03 hPa
RELATIVE (~±25 cm)
Buy Here on Amazon →

The BMP390 is Bosch’s current mainstream barometer, and the Waveshare board is the easiest way to use it on anything. You get a relative accuracy of ±0.03 hPa (about ±25 cm of height), ±0.5 hPa absolute accuracy, a 300–1250 hPa range and a 512-byte FIFO that lets your MCU batch readings and sleep. Unlike most cheap modules, this one carries an onboard voltage translator, so it is equally happy on a 5V Arduino Uno or a 3.3V ESP32, Pico or Raspberry Pi, over I²C (address selectable) or SPI. Bosch’s API and the Adafruit/SparkFun BMP3xx libraries work out of the box.
✅ Pros- Excellent ±0.03 hPa relative accuracy
- Level shifter: works at 3.3V and 5V
- I²C and SPI, big FIFO
- Mature Bosch & Arduino libraries
❌ Cons- Costs more than generic BMP390 boards
- No humidity channel
- Listing stock has been low
🎯 Verdict: The best all-round barometric sensor for most makers. Precise enough for altimeters, robust enough for any board voltage.
👉 Check Price on Amazon →
🎯 BEST PRECISION & LOW POWER

The BMP581 is Bosch’s newest-generation barometer, built on a capacitive sensing element instead of the piezo-resistive design used in the BMP280/BMP390 family. The result is very low noise, ±0.3 hPa absolute accuracy and a remarkably low ~1.3 µA at 1 Hz, which makes it the pick for wearables, floor detection, coin-cell IoT nodes and quiet variometers. SparkFun’s 1-inch breakout adds Qwiic connectors for solder-free I²C chaining, plus SPI pads, an interrupt pin and a well-maintained Arduino library.
✅ Pros- Best absolute accuracy in this list
- Lowest power draw
- Very low noise, minimal filtering lag
- Qwiic plug-and-play, solid library
❌ Cons- 3.3V board: needs a shifter on 5V Unos
- Newer part, fewer tutorials than BMP280
- Pricier than generic modules
🎯 Verdict: The best precision barometer for battery-powered and low-noise builds. If your MCU runs at 3.3V, it’s the most advanced sensor here.
👉 Check Price on Amazon →
💵 BEST BUDGET · ⭐ 4.4/53. HiLetgo BMP280 (3.3V)
300–1100 hPa · ±0.12 hPa relative · ±1 hPa absolute · I²C/SPI · 3.3V only
Buy Here →

The BMP280 is the barometer most makers learn on, and HiLetgo’s purple 6-pin board is one of the most widely used versions. It delivers about ±0.12 hPa relative accuracy (roughly ±1 m of altitude), a 300–1100 hPa range and both I²C and SPI, all for pocket change. It is plenty for a home weather station, a pressure-trend storm alarm or a first altimeter experiment. Just note this is the 3.3V version with no regulator or level shifter: perfect for ESP32, ESP8266 and Pico, but power it from 3.3V on an Arduino and use a shifter on the I²C lines.
✅ Pros: Very cheap; huge library and tutorial support; I²C and SPI; low power.
❌ Cons: 3.3V only; older, noisier than BMP390/BMP581; clone quality varies.
🎯 Verdict: The best budget barometer. Ideal for learning and weather-trend projects on 3.3V boards.
🚁 BEST FOR DRONES & VARIOMETERS · ⭐ 4.5/54. HiLetgo GY-63 MS5611
10–1200 mbar · 24-bit ADC · 0.012 mbar resolution (~10 cm) · I²C/SPI · 3–5V
Buy Here →

The TE Connectivity MS5611 is the barometer that has flown in countless Pixhawk-class flight controllers and paragliding variometers. Its 24-bit ADC gives a resolution of about 0.012 mbar (roughly 10 cm) at the highest oversampling setting, and its 10–1200 mbar range covers everything from sea level to high-altitude balloons. The GY-63 board adds a regulator so it runs from 3–5V over I²C or SPI. The trade-offs: you must read the factory calibration PROM and apply the datasheet’s compensation math (libraries handle it), conversions take several milliseconds, and the bare sensor is light-sensitive, so cover it with foam in a drone.
✅ Pros: Proven in flight controllers; ~10 cm resolution; widest range; 3–5V board.
❌ Cons: Needs compensation math; slower conversions; sensitive to light and airflow.
🎯 Verdict: The best pick for drones, rockets and variometers. Still a benchmark for fine altitude resolution. See our
MS5611 with Arduino tutorial.
🌦️ BEST 3-IN-1 WEATHER SENSOR · ⭐ 4.5/55. Waveshare BME280
Pressure + humidity + temperature · 300–1100 hPa · ±3 %RH · I²C/SPI · 3.3/5V
Buy Here →

If you’re building a weather station or an indoor environment monitor, the BME280 gives you the BMP280’s pressure core plus a humidity sensor (±3 %RH) and temperature in one chip. Buying it from Waveshare matters: the board has a level shifter for 3.3V and 5V hosts, and you get a genuine BME280 rather than the relabelled BMP280s that flood the market. Its pressure performance matches the BMP280, so it isn’t the choice for precise altitude, but for weather it is the most practical single sensor you can buy.
✅ Pros: Three measurements, one chip; 3.3/5V board; genuine part; huge library support.
❌ Cons: Pressure precision only BMP280-class; humidity drifts if kept in condensing air.
📐 BEST BOSCH ALTERNATIVE · ⭐ 4.4/56. DONGKER DPS310 Module
300–1200 hPa · ±0.06 hPa relative · ±0.002 hPa precision · ~1.7 µA @1 Hz · 3.3/5V
Buy Here →

Infineon’s DPS310 is a capacitive barometer with a precision of about ±0.002 hPa (±2 cm) in its high-precision mode, ±0.06 hPa relative accuracy, a 32-sample FIFO and very low current. That makes it a strong alternative when you want BMP390-class altitude tracking from a different supplier, for example to dual-source a product design or cross-check readings. This DONGKER module runs from 3.3V or 5V and exposes I²C and SPI. Infineon’s Arduino library and Adafruit’s DPS310 driver both support it.
✅ Pros: Excellent precision; low power; FIFO; 3.3/5V module; second-source to Bosch.
❌ Cons: Lesser-known module brand; ±1 hPa absolute; fewer beginner tutorials.
🎯 Verdict: The best non-Bosch precision barometer. Great for altitude logging and dual-sourced designs.
⚡ BEST FOR STM32 & FAST SAMPLING · ⭐ 4.2/57. LPS22HB Pressure Module
260–1260 hPa · ±0.1 hPa absolute · up to 75 Hz ODR · I²C/SPI · 3.3V only
Buy Here →

ST’s LPS22HB is the barometer found on many STM32 Nucleo sensor shields and the Arduino Nano 33 BLE Sense. It offers ±0.1 hPa absolute accuracy (factory calibrated, with no compensation math needed), a wide 260–1260 hPa range and output data rates up to 75 Hz, which helps when you need quick pressure updates for gesture, door-open or airflow detection. ST’s drivers, STM32Cube packages and the Arduino LPS22HB library make bring-up easy. This module is 3.3V only, so it suits ESP32, STM32 and Pico boards.
✅ Pros: Good absolute accuracy; fast ODR; no compensation math; great ST ecosystem.
❌ Cons: 3.3V only; generic module brand; noisier than BMP581/DPS310 for altitude.
🎯 Verdict: The best choice for STM32 developers and projects that need fast pressure updates.
🔧 BEST PORTED / PNEUMATIC · ⭐ 4.4/58. Adafruit MPRLS (0–25 PSI)
Honeywell MPRLS · 0–25 PSI absolute · barbed tube port · I²C (0x18) · 3–5V
Buy Here →

Sometimes you need to measure pressure inside something: a blood-pressure cuff, a vacuum line, a soft-robotics actuator or a pneumatic gripper. The Adafruit MPRLS uses Honeywell’s MPRLS sensor with a metal port you can push silicone tubing onto, measuring 0–25 PSI absolute (about 0–1.7 bar). It is factory calibrated and compensated, talks simple I²C at address 0x18, and runs from 3–5V thanks to its onboard regulator. It’s less sensitive than the barometers above, so it isn’t for altitude, but it handles jobs none of them can. On Amazon it is currently offered through other sellers, so use “See All Buying Options”.
✅ Pros: Tube port for pneumatics; up to 25 PSI; calibrated output; 3–5V; trusted Adafruit library.
❌ Cons: Not for altitude; I²C only; Amazon availability via third-party sellers.
🎯 Verdict: The best pick for tubes, cuffs and pneumatic systems where a barometer can’t reach.
🛒 How to Choose the Right Pressure Sensor
🏔️
Building an altimeter on any board?
Get the Waveshare BMP390: ±0.03 hPa relative accuracy with a level shifter for 3.3V and 5V hosts.
🔋
Battery-powered wearable or IoT node?
The SparkFun BMP581 has the lowest current and noise, plus Qwiic for quick wiring.
🎓
Learning or on a tight budget?
Start with the HiLetgo BMP280 on an ESP32 or Pico. Cheap, well documented and good enough for weather trends.
🚁
Drone, rocket or variometer?
The flight-proven MS5611 (GY-63) gives ~10 cm resolution. Cover it with foam to block light and prop wash.
🌦️
Weather station?
Use the Waveshare BME280 for pressure, humidity and temperature from one genuine chip.
🔧
Measuring pressure in a tube or cuff?
Choose the ported Adafruit MPRLS (0–25 PSI). Barometric sensors can’t take tubing.
⚙️ Key Specs Compared: Side by Side
| Spec | BMP390 (Waveshare) | BMP581 (SparkFun) | BMP280 (HiLetgo) | MS5611 (GY-63) | DPS310 (DONGKER) |
|---|
| Pressure Range | 300–1250 hPa | 300–1250 hPa | 300–1100 hPa | 10–1200 mbar ⭐ | 300–1200 hPa |
| Relative Accuracy | ±0.03 hPa ⭐ | ±0.06 hPa | ±0.12 hPa | 0.012 mbar resolution | ±0.06 hPa |
| Absolute Accuracy | ±0.5 hPa | ±0.3 hPa ⭐ | ±1.0 hPa | ±1.5 mbar | ±1.0 hPa |
| Current @ 1 Hz | ~3.2 µA | ~1.3 µA ⭐ | ~2.7 µA | 0.6–12.5 µA (by OSR) | ~1.7 µA |
| FIFO | 512 bytes ⭐ | 32 frames | None | None | 32 samples |
| Board Logic Level | 3.3V / 5V ⭐ | 3.3V | 3.3V only | 3–5V ⭐ | 3.3V / 5V ⭐ |
| Interface | I²C + SPI | I²C + SPI + Qwiic ⭐ | I²C + SPI | I²C + SPI | I²C + SPI |
Chip specs are typical datasheet values; board logic levels are from the listings. Real-world results depend on oversampling, filtering and mounting. Always confirm details on the live Amazon listing.
❓ Frequently Asked Questions
BMP280 vs BME280 vs BMP390: which should I buy?
The BMP280 is a budget pressure and temperature sensor. The BME280 is the same pressure core plus a humidity sensor, so it suits weather stations. The BMP390 is a newer, more precise pressure-only sensor (about four times better relative accuracy than the BMP280) with a FIFO, so it is the better choice for altitude. For pure altitude, buy a BMP390 or BMP581; for weather, a BME280; for the lowest cost, a BMP280.
How accurate is altitude from a barometric sensor?
Near sea level, 1 hPa corresponds to roughly 8 m of altitude. Relative changes (how far you climbed in the last minute) can be tracked to tens of centimetres with a BMP390, BMP581, DPS310 or MS5611. Absolute altitude is much less reliable because air pressure shifts by several hPa as weather changes, so you need the local sea-level pressure (QNH) from a nearby weather station, or a GPS fix, to calibrate it.
Can I connect these sensors to a 5V Arduino Uno?
Only the boards with a regulator and level shifter: the Waveshare BMP390, Waveshare BME280, GY-63 MS5611, DONGKER DPS310 and Adafruit MPRLS. The HiLetgo BMP280, SparkFun BMP581 and LPS22HB modules are 3.3V parts; on a 5V board, power them from 3.3V and put a bidirectional level shifter on SDA and SCL. On an ESP32, ESP8266, STM32 or Raspberry Pi Pico, all of them connect directly.
Why do my pressure readings jump around or drift?
Most noise comes from the environment, not the chip. Airflow from fans or propellers, direct sunlight on the sensing hole, and heat from a nearby regulator or Wi-Fi radio all cause swings. Enable the sensor’s oversampling and IIR filter, keep the board away from heat sources, shield it with open-cell foam, and avoid sealing it in an airtight box (the sensor must see ambient air). Also read temperature and pressure from the same measurement, since compensation depends on both.
Can a barometric sensor measure water depth or tyre pressure?
No. Barometric sensors top out around 1.1–1.25 bar absolute and are not waterproof, so they can’t handle immersion or a tyre at 2–3 bar gauge. The Adafruit MPRLS reaches 25 PSI absolute through a tube, which covers cuffs, vacuum and light pneumatics. For water depth you need a gel-filled waterproof sensor such as the MS5837, and for tyres or hydraulics an industrial transducer rated for the full pressure.
🏁 Final Verdict: Best Pressure Sensor for Every Build
The right barometric or pressure sensor for every project and budget:
🥇 Best Overall: Waveshare BMP390, ±0.03 hPa relative, 3.3/5V, I²C + SPI
Buy Here →🎯 Best Precision & Low Power: SparkFun BMP581 Qwiic, ±0.3 hPa absolute, ~1.3 µA
Buy Here →💵 Best Budget: HiLetgo BMP280, the classic learning barometer (3.3V)
Buy Here →🚁 Best for Drones & Variometers: HiLetgo GY-63 MS5611, ~10 cm resolution
Buy Here →🌦️ Best Weather Sensor: Waveshare BME280, pressure + humidity + temperature
Buy Here →🔧 Best Ported / Pneumatic: Adafruit MPRLS, 0–25 PSI with tube port
Buy Here →For most projects the Waveshare BMP390 is the sensor to buy: precise, 5V-tolerant and easy to drive. If you’re on 3.3V and every microamp counts, the SparkFun BMP581 is the most advanced barometer here. Learners should start on a cheap BMP280, flight projects still love the MS5611, weather stations want the BME280, and anything with a tube attached needs the MPRLS. If you also need air-quality or humidity data, see our temperature & humidity sensor guide and gas & air quality sensor guide, then wire it all up with our Arduino, ESP32, STM32 and Raspberry Pi Pico tutorials.
💬 Not sure which sensor fits your build? Tell us what you’re making (an altimeter, a weather station, a drone or a pneumatic gripper) in the comments below, and we’ll point you to the right pick.
All Amazon links above use our affiliate tag (microlab05-20). Purchasing through them supports microcontrollerslab.com at no extra cost to you. Prices and availability change frequently, so always check the current price on Amazon before buying.