+ CENTER GAP + USB-C ESP32-S3 N16R8 ANTENNA 3V3 GND IO4 IO5 IO6 IO7 IO15 IO16 5V GND IO17 IO18 IO21 SDA IO22 SCL IO23 SPARKLE IoT XH-S3E BME680 BOSCH VCC GND SCL SDA SDO CS not connected 104 100nF 3.3V Power: ESP32 3V3 pin to + rail Ground: ESP32 GND pin to - rail 3.3V Power: + rail to BME680 VCC Ground: - rail to BME680 GND I2C Data (SDA): ESP32 GPIO21 to BME680 SDA I2C Clock (SCL): ESP32 GPIO22 to BME680 SCL ESP32-S3 N16R8 BME680 Breakout Cap I2C Bus (SDA + SCL)
3.3V Power (Red)
Ground (Black)
SDA / I2C Data (Yellow)
SCL / I2C Clock (White)
100nF Decoupling Cap
⚠️

ESP32-S3 N16R8: GPIO26–37 are UNUSABLE. The Octal SPI flash/PSRAM occupies these pins. If your board doesn't expose GPIO21/22, use GPIO8 (SDA) and GPIO9 (SCL) as fallback. Always check your board's header labels before wiring.

BME680 VCC must be 3.3V, not 5V. Connecting to the 5V rail will permanently damage the sensor.

Connection Map

Four wires + one capacitor. SDO and CS left floating (I2C mode, address 0x76).

BME680 PinConnects ToWirePurpose
VCC Breadboard + rail → ESP32 3V3 Red 3.3V power supply
GND Breadboard – rail → ESP32 GND Black Ground reference
SDA ESP32 GPIO21 (or GPIO8) Yellow I2C data line
SCL ESP32 GPIO22 (or GPIO9) White I2C clock line
SDO Not connected Floats to 0x76 address
CS Not connected Floats to I2C mode
1

Solder Header Pins

Break off 4 pins from a header strip. Push them long-side down into the breadboard as a jig. Place the BME680 breakout on top. Solder each pin: heat pad + pin for 2 s, feed solder, remove. Max 4 s contact — the sensor is heat-sensitive. Good joints are shiny and cone-shaped.

2

Place Components

Plug the ESP32-S3 straddling the center gap. Plug the BME680 about 10 rows below. Connect ESP32 3V3 → red (+) rail and ESP32 GND → blue (–) rail.

3

Wire the Sensor

Run 4 jumper wires per the connection map: VCC → + rail, GND → – rail, SDA → GPIO21, SCL → GPIO22. Place the 100 nF cap (marked 104) across + and – rails near the BME680.

4

Pre-Flight Check

Before plugging in USB: verify VCC goes to 3.3V (not 5V), no wire tips touch adjacent rows, SDA/SCL aren't swapped, and SDO + CS pins have nothing connected. Then plug in — flash the firmware and watch real data land.