Reference
MS5611
High-resolution barometric pressure.
- Connects over
- I²C
- Address
- 0x77 (or 0x76)
- Made by
- TE Connectivity
- Datasheet
- te.com
Use it
hardware {
device ms5611: MS5611
}
every 1s {
let value: float = ms5611.temperature()
log("ms5611", "temperature={value}")
}
On its own, the declaration puts the MS5611 on the first I²C bus (SDA 21, SCL 22 on the ESP32) at 0x77. To choose the pins or the address, declare the bus and attach the device: device ms5611: MS5611 on i2c0 at 0x76 with i2c i2c0(sda: 21, scl: 22).
Methods
-
ms5611.temperature() -> float
Temperature in °C
-
ms5611.pressure() -> float
Pressure in hPa
Wiring
| Pin | Connect to |
|---|---|
VCC | 3.3V ONLY — 5V damages the chip |
GND | Ground |
SDA | Pull-up to 3.3V |
SCL | Pull-up to 3.3V |
CSB | Tie to VCC for I²C, low for SPI |
PS | Protocol select: high=I²C, low=SPI |
Specifications
- Voltage
- 1.8V – 3.6V (NOT 5V tolerant)
- Current
- 1.4 μA standby, 12.5 μA at 1 Hz
- Pressure
- 10 – 1200 mbar ±1.5 mbar
- Resolution
- 0.012 mbar (≈ 10 cm altitude)
- Interface
- I²C up to 400 kHz or SPI up to 20 MHz
Tips
- Popular in drones/quads as a barometric altimeter — high resolution for altitude hold.
- Two conversions (D1 + D2) per reading; library handles the compensation math.
- Encapsulate or shield from direct airflow if reading altitude — drafts give wild noise.
Alternatives worth knowing:
- BMP388: Bosch — newer, similar accuracy, often cheaper.
- LPS22HB: ST — lower power, smaller package.