Volt Docs

Reference

BMP180

Barometric pressure and temperature.

Connects over
I²C
Address
0x77
Made by
Bosch Sensortec
Datasheet
cdn-shop.adafruit.com

Use it

main.volt
hardware {
    device bmp180: BMP180
}

every 1s {
    let value: float = bmp180.temperature()
    log("bmp180", "temperature={value}")
}

On its own, the declaration puts the BMP180 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 bmp180: BMP180 on i2c0 at 0x77 with i2c i2c0(sda: 21, scl: 22).

Methods

  • bmp180.temperature() -> float

    Temperature in °C

  • bmp180.pressure() -> float

    Pressure in hPa

Wiring

PinConnect to
VCC3.3V or 5V
GNDGround
SDAPull-up to VCC (often on breakout board)
SCLPull-up to VCC

Specifications

Voltage
1.8V – 3.6V (most breakouts include a 5V regulator)
Current
5 μA at 1 Hz
Temp
−40°C to +85°C ±2°C
Pressure
300 – 1100 hPa ±0.12 hPa (≈ ±1 m altitude)

Tips

  • Older sensor — has been replaced by BMP280/BME280 in new designs.
  • Address is fixed at 0x77 — can't have two on one bus without a multiplexer.
  • No humidity — pair with HTU21D / AHT20 if you need it.

Alternatives worth knowing:

  • BMP280: Newer, lower power, smaller. Same role.
  • BME280: Same as BMP280 + humidity in one chip.