Skip to content

BMP388 / BMP390 Pressure & Temperature Sensor (U14)

Overview

Interface circuit for U14, a Bosch barometric pressure / temperature sensor. The V9 build assembles the BMP388 (LCSC C779278), which is pin-compatible with the newer BMP390 in the same 10-pin LGA package — both parts work in this footprint without rework. The page title and bmp390_documentation.md filename are kept for documentation continuity; verified part on the production board is BMP388.

The sensor is used for: - Regulator board temperature (the BMP388 includes a built-in temperature element with ±0.5 °C accuracy at 25 °C). Because the sensor sits on the PCB inside the enclosure, it reads the board itself — typically 5–25 °F above the surrounding space depending on mounting location and electrical load — not true cabin/engine-room ambient. - Ambient pressure for elevation logging and as a basic weather/conditions trend input

It is not used for safety-critical alternator temperature monitoring — that role is handled by the DS18B20 (digital, on a separate 1-Wire bus that can be mounted directly on or near the alternator case).

Bus Sharing

The BMP388 shares a single I²C bus with three other devices on the 3.3 V rail:

Address Device Function
0x40 INA228 (U20) Battery shunt current and bus voltage
0x48 ADS1115 4-channel analog converter (alternator current, battery voltage, RPM, thermistor)
0x6A LSM6DSOX (U1) 6-axis IMU (motion / vibration)
0x76 BMP388 (U14) Pressure / temperature

Bus pull-ups for the shared SDA/SCL lines are provided once on the board, not by each device:

  • R92 = 2.2 kΩ 1 % — pull-up on I2C_SCL to 3V3
  • R93 = 2.2 kΩ 1 % — pull-up on I2C_SDA to 3V3

The 2.2 kΩ value is chosen for 400 kHz fast-mode operation with the combined bus capacitance of four devices plus traces (~80 pF). A weaker pull-up (10 kΩ) would not meet the I²C rising-edge timing spec at 400 kHz; a stronger pull-up (1 kΩ) would exceed the sink-current rating of the open-drain output stages.

Bill of Materials

Reference Component Value Package Function
U14 BMP388 (BMP390 footprint-compatible) — 10-LGA, 2 × 2 × 0.75 mm Barometric pressure + temperature sensor
C61 Capacitor 1 µF 0603 3.3 V supply decoupling
C62 Capacitor 1 µF 0603 3.3 V supply decoupling
R81 Resistor 10 kΩ 1 % 0603 CSB pull-up to 3V3 — selects I²C mode

Pinout and Connections

BMP388 (U14) Pin Configuration

Pin Symbol Function Connection Notes
1 VDDIO I/O Supply 3.3V rail I2C interface power
2 SCK Serial Clock I2C_SCL I2C clock input
3 VSS Ground GND Ground reference
4 SDI Serial Data In I2C_SDA I2C data line
5 SDO Serial Data Out GND I2C address select (0x76)
6 CSB Chip Select 3.3V via R81 I2C mode enable (HIGH)
7 INT Interrupt DNC Do Not Connect per datasheet
8 VSS Ground GND Ground reference
9 VSS Ground GND Ground reference
10 VDD Core Supply 3.3V rail Main power supply

Power Supply Configuration

  • Supply Voltage: 3.3V common rail for both VDD and VDDIO
  • VDD Range: 1.8V - 3.6V (core supply)
  • VDDIO Range: 1.2V - 3.6V (I/O supply)
  • Decoupling: two 1 µF ceramic capacitors (C61, C62) across the 3.3 V rail, one per supply pin

Power Consumption

Operating Mode Typical Current Supply Voltage Power
Sleep Mode 0.2 µA 3.3V 0.66 µW
Standby Mode 1.8 µA 3.3V 5.94 µW
Normal Mode @ 1Hz 3.4 µA 3.3V 11.2 µW
Forced Mode (single conversion) ~500 µA 3.3V 1.65 mW
Peak Current (during conversion) 714 µA 3.3V 2.36 mW

Additional Power Notes: - Startup Current: Brief spike during power-on (~1mA for ~2ms) - I2C Activity: Minimal additional current during communication - Pull-up resistor (R81): no steady current — CSB is held high for I²C, so only the pin's leakage flows in the 10 kΩ

I2C Interface Setup

  • Protocol: I2C slave device
  • Slave Address: 0x76 (SDO tied to GND)
  • Alternative Address: 0x77 (if SDO tied to VDDIO)
  • Bus Speed: Supports 100kHz (standard) and 400kHz (fast mode)
  • Pull-up Resistors: Implemented elsewhere in system on SCL/SDA lines
  • Mode Selection: CSB pulled high via R81 enables I2C communication

Interface Signals

  • I2C_SCL: Serial clock line to microcontroller
  • I2C_SDA: Serial data line to microcontroller
  • BMP390_INT (net name): Interrupt output (currently unused, DNC per datasheet)

Design Notes

  • Thermal Placement: Component positioned away from heat sources for accurate readings
  • Single Supply: VDD and VDDIO connected to same 3.3V rail (datasheet compliant)
  • Address Configuration: SDO grounded for 7-bit address 0x76
  • Unused Pins: INT pin left disconnected as recommended by datasheet
  • Communication Mode: CSB high selects I2C over SPI interface

Operational Characteristics

  • Pressure Range: 300 - 1250 hPa (equivalent to +9000m to -500m altitude)
  • Temperature Range: -40°C to +85°C
  • Resolution: 0.0016 hPa (0.013m altitude resolution)
  • Interface: I2C up to 400kHz
  • Power Modes: Sleep, forced, and normal measurement modes

Register Access

  • Default State: Sleep mode after power-on reset
  • Calibration: Factory calibration coefficients stored in NVM
  • Configuration: All sensor parameters configurable via I2C registers
  • Data Format: 20-bit pressure, 20-bit temperature values