BME280 PMOD

Description

BME280 PMOD This PMOD connects the Bosch BME280 humidity, pressure and temperature sensor over I2C, using Digilent's PMOD interface type 6A per PMOD specification v1.3.1. The PMOD module can be chained to add additional I2C devices to the bus. The I2C pull-up resistors can be enabled/disabled using DIP switches, and switch 2 toggles the sensors I2C address between 0x76 and 0x77.

OSHWA Open Source Hardware Self-Certification:

OSHW

Function

In this module, the BOSCH humidity, pressure and temperature sensor BME280 is connected over I2C. the DIP switch SW1 enables I2C pull-up resistors if needed. SW2 changes the I2C bus address between 0x76 and 0x77. Two modules can be chained. Three Testpoints can be fitted for I2C bus troubleshooting.

Schematic

BME280 PMOD Schematics

PCB Gerber

BME280 PMOD Github Repo

Module Pin Assignments

Type 6:

Pin Signal Description
1 Reset n/a (passthrough)
2 Int n/a (passthrough)
3 SCL I2C Clock Signal
4 SDA I2C Data Signal
5 GND Power Supply Ground
6 VCC Power Supply (3.3V)

Type 6A (Pin 1-6 same as Type 6)

Pin Signal Description
7 IO1 IO signal 1
8 IO2 IO signal 2
9 IO3 IO signal 3
10 IO4 IO signal 4
11 GND Power Supply Ground
12 VCC Power Supply (3.3V)

Note: all pin signals are passed from the module pin header to the opposite pin socket, allowing to chain another I2C module to the I2C bus.

I2C bus connection

For I2C communication functions, I am using the i2c-tools and i2c-dev packages.

sudo apt-get install -y i2c-tools libi2c-dev

Now we can use the i2cdetect command to query the I2C bus. Connecting the AE-BME280 sensor to the Raspberry Pi I2C bus, the sensor responds with the slave address 0x76. Other modules may respond under the alternate I2C address 0x77.

root@pi-ws01:/home/pi# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --

Example Code

Linux

BME280 PMOD on PMOD2RPI

Above shows the BME280 PMOD, connected to a PMOD2RPI interface board. When connected through the PMOD4 connector, the module can be controlled from the Raspberry Pi 4 Linux, running the pi-bme280 control program.

BME280 PMOD Data Read

Arduino

Without any changes, we can run BME280 sample code such as the BMx280_I2C example program from the BMx280MI library provided by Gregor Christandl. The BME280 PMOD module is connected to the PMOD2RPI interface board. On port PMOD1, the module communicates over I2C with the onboard Seeedstudio XIAO Cortex-M0 MCU.

BME280 PMOD Data Read