Volt Docs

Reference

MS5611

High-resolution barometric pressure.

Connects over
I²C
Address
0x77 (or 0x76)
Made by
TE Connectivity
Datasheet
te.com

Use it

main.volt
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

PinConnect to
VCC3.3V ONLY — 5V damages the chip
GNDGround
SDAPull-up to 3.3V
SCLPull-up to 3.3V
CSBTie to VCC for I²C, low for SPI
PSProtocol 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.