component
BME690 Molecule v9352035
Unreviewed15×15 mm breakout for the Bosch BME690 combined temperature / humidity / pressure / gas sensor. I²C at 0x76 via JP1 SDO→GND bridge.
{
"schema_version": 1,
"type": "component",
"slug": "bme690-molecule-v9352035-912960",
"title": "BME690 Molecule v9352035",
"brief": "15×15 mm breakout for the Bosch BME690 combined temperature / humidity / pressure / gas sensor. I²C at 0x76 via JP1 SDO→GND bridge.",
"version": "1.0.1",
"tags": [],
"license": "MIT",
"component": {
"mpn": "BME690 Molecule v9352035",
"manufacturer": "",
"package": "",
"pin_count": null,
"category": "other",
"subcategory": "",
"body_size": null,
"parts": {},
"distributor_links": {},
"molecule_id": 381068916308912960
},
"readme": "# BME690 Molecule — Hardware Reference\n\nSmall (~15×15 mm) 4-corner-pin breakout for the Bosch BME690 combined temperature / humidity / pressure / gas sensor.\n\n- **Source:** Fusion Electronics project (not on GitHub). Published assets live on the wiki.\n- **Wiki page:** [molecules/bme690-molecule-v9352035-912960](https://wiki-ufypy5dpx93o.adom.cloud/wiki/molecules/bme690-molecule-v9352035-912960)\n- **Board:** 4 corner through-hole mount-pins + 1 side castellation for the SDO address strap, plus on-board jumper\n- **IC:** BME690 (Bosch LGA-8, 3.0 × 3.0 × 0.93 mm, IC1)\n- **Silk title:** `BME690` centered on the package\n\n## Component summary (from Fusion BOM `bom.csv`)\n\n| Ref | Part | Footprint | Function |\n|---|---|---|---|\n| IC1 | BME690 | BME690 (LGA-8) | Combined T / RH / P / gas sensor |\n| C1, C2 | 100 nF 0402 | CAPC1005X60 | VDD / VDDIO decoupling |\n| 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) |\n| D1 | LED 0603 | LED_KT-0603-WHITE | Power / status indicator |\n| JP1 | 3×1 jumper | `3X1_JUMP` | **SDO / I²C-address strap** (see below) |\n| GND/SCL/SDA/VDD | machine pins | `MACH_PIN_MED_SHORT` | External interface |\n| SDO | castellation | `CONTACT_MED` | SDO test-point (also routed to JP1) |\n| U$1 | Adom Icon | `ADOM_ICON-4MM` | Silk/logo only |\n\n## External contact map\n\n4 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`):\n\n| Silk | Role |\n|---|---|\n| `VDD` (or `3.3V`) | VDD + VDDIO (shared) — 1.71–3.6 V |\n| `GND` | Ground |\n| `SDA` | I²C SDA |\n| `SCL` | I²C SCL |\n| `SDO` (castellation, labelled `(SDO)`) | Address strap — connect via JP1 |\n\n> **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.\n\n## I²C address strap (JP1)\n\nThe BME690's I²C address is set by the SDO pin at power-up:\n\n| JP1 position | SDO tied to | I²C address |\n|---|---|---|\n| 1–2 bridged (SDO → GND) | GND | **0x76** (demo firmware target ✓, Bosch default) |\n| 2–3 bridged (SDO → VDD) | VDD | 0x77 |\n\nFirmware 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.\n\n## Interface\n\n**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.\n\n## Power\n\n| Rail | Voltage | Source |\n|---|---|---|\n| VDD / VDDIO | 1.71–3.6 V (3.3 V in demo) | Host via the `VDD` pin |\n\nSingle 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.\n\n## Wiring to the Stationary RM2 I²C bus\n\n```\nBME690 VDD ──── RM2 +3V3\nBME690 GND ──── RM2 GND\nBME690 SDA ──── RM2 GPIO4 (I²C0 SDA)\nBME690 SCL ──── RM2 GPIO5 (I²C0 SCL)\nBME690 SDO ──── (typically left floating; JP1 sets the address on-board)\n```\n\n**Bridge JP1 on the GND side** so SDO → GND → address **0x76**.\n\n## Gotchas for firmware bring-up\n\n- **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).\n- **4.7 kΩ I²C pull-ups are off-board** (provided by the stationary RM2 carrier).\n- **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).\n- **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.\n- **BME690 calibration trim registers** (0x8A, 0xE1) are read by the driver at init — no external action needed.\n\n## Known gaps in this doc\n\nThe `.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.\n",
"author": {
"id": "695820315b5f1e4db2fcf602",
"name": "Kyle Bergstedt",
"email": "[email protected]"
},
"visibility": {
"public": true
},
"hero": null,
"sample_prompts": [],
"discovery_triggers": [],
"discovery_pitch": null,
"metadata": {},
"created_at": "2026-05-28T05:31:11.452Z",
"updated_at": "2026-05-28T05:31:11.452Z"
}