# BME690 Molecule — Hardware Reference

Small (~15×15 mm) 4-corner-pin breakout for the Bosch BME690 combined temperature / humidity / pressure / gas sensor.

- **Source:** Fusion Electronics project (not on GitHub). Published assets live on the wiki.
- **Wiki page:** [molecules/bme690-molecule-v9352035-912960](https://wiki-ufypy5dpx93o.adom.cloud/wiki/molecules/bme690-molecule-v9352035-912960)
- **Board:** 4 corner through-hole mount-pins + 1 side castellation for the SDO address strap, plus on-board jumper
- **IC:** BME690 (Bosch LGA-8, 3.0 × 3.0 × 0.93 mm, IC1)
- **Silk title:** `BME690` centered on the package

## Component summary (from Fusion BOM `bom.csv`)

| Ref | Part | Footprint | Function |
|---|---|---|---|
| IC1 | BME690 | BME690 (LGA-8) | Combined T / RH / P / gas sensor |
| C1, C2 | 100 nF 0402 | CAPC1005X60 | VDD / VDDIO decoupling |
| R1, R2 | 0402 | RESC1005X40 | SDO address-strap resistors (one to VDD, one to GND — DNP-paired to hard-set the default, JP1 lets the user override) |
| D1 | LED 0603 | LED_KT-0603-WHITE | Power / status indicator |
| JP1 | 3×1 jumper | `3X1_JUMP` | **SDO / I²C-address strap** (see below) |
| GND/SCL/SDA/VDD | machine pins | `MACH_PIN_MED_SHORT` | External interface |
| SDO | castellation | `CONTACT_MED` | SDO test-point (also routed to JP1) |
| U$1 | Adom Icon | `ADOM_ICON-4MM` | Silk/logo only |

## External contact map

4 corner through-hole pins for the primary interface, plus one side castellation for the SDO test-point. Silk labels are visible in the Fusion renders at [molecules/bme690-molecule-v9352035-912960](https://wiki-ufypy5dpx93o.adom.cloud/wiki/molecules/bme690-molecule-v9352035-912960) (`3d-home.png`, `3d-board.png`):

| Silk | Role |
|---|---|
| `VDD` (or `3.3V`) | VDD + VDDIO (shared) — 1.71–3.6 V |
| `GND` | Ground |
| `SDA` | I²C SDA |
| `SCL` | I²C SCL |
| `SDO` (castellation, labelled `(SDO)`) | Address strap — connect via JP1 |

> **Note:** the BOM lists the four mount-pin pads generically as `GND SCL SDA VDD`. Silk position matches the Fusion 3D render — `VDD` top-left, `GND` bottom-left, `SDA` right, `SCL` bottom-middle/right.

## I²C address strap (JP1)

The BME690's I²C address is set by the SDO pin at power-up:

| JP1 position | SDO tied to | I²C address |
|---|---|---|
| 1–2 bridged (SDO → GND) | GND | **0x76** (demo firmware target ✓, Bosch default) |
| 2–3 bridged (SDO → VDD) | VDD | 0x77 |

Firmware expects **0x76** — verify JP1 is bridged on the GND side before flashing. If you see a probe NACK at 0x76 but the chip ACKs at 0x77, the jumper is on the wrong side.

## Interface

**I²C only on this breakout** — there is no exposed CSB pad (the chip's SPI interface is tied off on-board). The BME690 package can do SPI, but this molecule doesn't bring those pads out.

## Power

| Rail | Voltage | Source |
|---|---|---|
| VDD / VDDIO | 1.71–3.6 V (3.3 V in demo) | Host via the `VDD` pin |

Single rail. Typical active current 2.1 mA during a gas-sensor measurement burst (heater on), < 100 µA idle. Budget for peak current on the 3.3 V rail accordingly.

## Wiring to the Stationary RM2 I²C bus

```
BME690 VDD  ──── RM2 +3V3
BME690 GND  ──── RM2 GND
BME690 SDA  ──── RM2 GPIO4 (I²C0 SDA)
BME690 SCL  ──── RM2 GPIO5 (I²C0 SCL)
BME690 SDO  ──── (typically left floating; JP1 sets the address on-board)
```

**Bridge JP1 on the GND side** so SDO → GND → address **0x76**.

## Gotchas for firmware bring-up

- **JP1 must be bridged on the GND side** for the 0x76 probe to succeed. Default from-the-factory state may be open (floating SDO → indeterminate address).
- **4.7 kΩ I²C pull-ups are off-board** (provided by the stationary RM2 carrier).
- **Gas sensor heater draws ~2 mA during the burn.** Make sure the +3V3 rail can source that without sagging (C1/C2 handle the transient; the upstream LDO needs enough headroom).
- **BSEC2 library is required** for calibrated IAQ / gas-index output — currently a TODO in `firmware/sensors/bme690.c`. Without BSEC2 the firmware returns raw gas resistance only.
- **BME690 calibration trim registers** (0x8A, 0xE1) are read by the driver at init — no external action needed.

## Known gaps in this doc

The `.fsch` / `.fbrd` Fusion source files are attached to the wiki page but the wiki server currently returns 404 on design-file downloads (design files aren't publicly served — only images / BOM / CPL). As a result the exact JP1 default solder state, R1/R2 populated-vs-DNP status, and the precise silk coordinates couldn't be verified here. If you own the Fusion project, export a `.kicad_*` set and drop it under `/bosch-molecules/BME690/` to unblock a full netlist extraction.
