BMP581 ("Pressure Sensor") Molecule — Hardware Reference

Tiny (~8×8 mm) 4-corner-pin breakout for the Bosch BMP581 barometric pressure sensor. Upstream folder is named generically (Pressure Sensor) — the IC is explicitly a BMP581 (per BOM and silk).

  • Source: adom-inc/bosch-molecules/Pressure Sensor — imported 2026-04-17
  • KiCad project: Pressure Sensor.kicad_pro
  • Wiki page: molecules/pressure-sensor-876000 — silk/title is "Pressure Sensor" (generic — import stub from 2026-03-02), but the IC is explicitly a BMP581
  • Board: 4 corner through-hole mount-pins + 1 side castellation for INT, single-sided assembly
  • IC: BMP581 (Bosch QFN-10, 2.0 × 2.0 × 0.75 mm, U1)

Component summary (from Pressure Sensor/production/bom.csv)

Ref Part LCSC Function
U1 BMP581 C5362283 Barometric pressure sensor
C1 100 nF 0402 C1525 VDD decoupling
D1 LED 0603 C2290 Power indicator
R5 510 Ω 0402 C25123 LED current limit
R1 10 kΩ 0402 C25744 SDO pull-up → 3.3 V (→ address 0x47)
R3 10 kΩ 0402 C25744 CSB pull-up → 3.3 V (→ I²C mode)
R2 10 kΩ 0402 DNP (would pull SDO → GND for address 0x46)
R4 10 kΩ 0402 DNP (would pull CSB → GND for SPI mode)

R1/R2 and R3/R4 are a configure-once DNP pair. On the shipped board, R1 and R3 are populated; R2 and R4 are not. Address and interface are therefore hard-set — no jumpers, no user action.

External contact map

Ref Silk Net Kind Role
MP101 3.3V +3.3V mount VDD / VDDIO (shared)
MP102 GND GND mount Ground
MP103 SCL SCK mount I²C SCL (silk uses I²C naming; net uses SPI naming — same pad, dual-protocol)
MP104 SDA SDI mount I²C SDA (silk uses I²C naming; net uses SPI naming — same pad, dual-protocol)
MC101 INT INT contact Interrupt output

I²C address (fixed via R1/R2 DNP pair)

R-pair populated SDO tied to I²C address
R1 fitted, R2 DNP (as shipped) +3.3 V 0x47 (demo firmware target ✓)
R2 fitted, R1 DNP GND 0x46

The demo firmware expects 0x47 — no action needed.

Interface mode (fixed via R3/R4 DNP pair)

R-pair populated CSB tied to Mode
R3 fitted, R4 DNP (as shipped) +3.3 V I²C (demo target ✓)
R4 fitted, R3 DNP GND SPI (4-wire)

Again — no action needed on the shipped board.

Power

Rail Voltage Source
VDD / VDDIO 1.71–3.6 V (3.3 V in demo) Host via MP101

Single rail (VDD = VDDIO on this board). Typical active current 70 µA in normal mode — lowest draw of any sensor in the demo. Rail headroom is a non-issue.

Interrupt

MC101 (silk INT) is the BMP581's programmable interrupt output. Default polarity / drive mode is set at init (firmware/sensors/bmp581.c). Leave floating if unused.

Wiring to the Stationary RM2 I²C bus

BMP581 MP101 (3.3V) ──── RM2 +3V3
BMP581 MP102 (GND)  ──── RM2 GND
BMP581 MP104 (SDA)  ──── RM2 GPIO4 (I²C0 SDA)
BMP581 MP103 (SCL)  ──── RM2 GPIO5 (I²C0 SCL)
BMP581 MC101 (INT)  ──── (optional)

Gotchas for firmware bring-up

  • No user-configurable jumpers on this board. Address is 0x47, mode is I²C — both set by populated-vs-DNP resistors. If you see a probe NACK at 0x47, the chip is either not powered, not connected to the bus, or a rework has changed R1/R2 or R3/R4 state. Check with a multimeter on SDO/CSB before debugging further.
  • 4.7 kΩ I²C pull-ups are off-board (provided by the stationary RM2 carrier).
  • 70 µA typical — the BMP581 is effectively a rounding error on the 3.3 V rail's budget.
  • Silk pin labels use I²C names (SDA, SCL), but the underlying nets are named in SPI terms (SDI, SCK) because the QFN-10 pads are dual-protocol. Don't let that confuse you.