{
  "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": "kyle@adom.inc"
  },
  "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"
}