Or you can use our one-line-installer, which should set up and install everything in one go, and download the examples into the /home/pi/Pimoroni/bme680/examples folder:
You need to run the breakout-garden installer with all the sensors you plan to use plugged in- since it will only detect and install drivers for the ones it can find.
Hi,
thx for answering, I assume, if I add a new sensor I can re-run the install?
I would use the additional gpios. Is there a chance to see what gpios a used by the breakout garden board. I can see what kind of gpios are used by a sensor in gerneral but not exactly which one of the raspi gpio pins are used?
If you match what is listed on the top of the breakout garden board, to the labels here, https://pinout.xyz/# that should tell you what pins are used.
UART TX is BCM 14, GPIO Pin 8, and UART RX is BCM 15, GPIO Pin 10 for example.
Hi, Iāve just taken delivery of the Breakout Garden and four sensors: LSM303D, VL53L1X, BMP280 & BMP680. I plugged them all in and ran the Breakout Garden installer (Iām using a Pi A3+. The installer detected only 3 sensors- does it treat the BME280 and BME680 as the same device?
Also, I tried the various python examples but they all failed, reporting ImportError: No module named ālumaāā¦
Iām guessing this is because Iām not using an OLED Breakoutā¦?
Do we have a python script that will simply test each of these sensors?
The BMP280 and BME680 use the same i2c addresses, 0x76 and 0x77. They are selectable so I think you need to check that one of them is set to 0x76 and the other to 0x77. They are both likely using 0x76 as their default.
If you follow the link to each modules GitHub page, like here, https://github.com/pimoroni/bmp280-python
Youāll find code in the examples folder that you can run to check that module.
Iām not sure if the breakout garden installer copies all of those to your Pi? There should be a Pimoroni folder with maybe sub folders for each module. If yes look in the sub folders to see if you already have all the examples for the modules it found.
There is an address select on the back side of the module. You either solder bridge it (BME680) , or cut it(BMP280). Only has to be done on āoneā of the two. If it was me Iād solder bridge the two pads on the BME680. That will make its i2c address 0x77
Great stuff - I removed all but the BMP280 and immediately got an output using the example python script. I was wondering how to distinguish the 280 and 680 - youāve just answered that question :-)
OK, Iām making progress, each of my four breakouts now work, however, I then decided to cut the bridge on the 280 (simply because it was quicker to do that than get my soldering iron set up), however, now, my system refuses to recognise the 280.
Autodetect gives me:-
0x76: bmp280 enviro sensor (bmp280 installed)
0x1d: lsm303d 6dof (lsm303d installed)
0x29: vl53l1x time of flight (vl53l1x installed)
0x77: bme680 weather sensor (bme680 installed)
However, if I run any 280 example scripts, they error saying the 280 isnāt detected on 0x76ā¦
Iām not exactly sure what you do in your case @gadgetoid Phil will know though.
Usually its something like this.
sensor1 = BME680(76)
sensor2 = BMP280(77)
Iām used to seeing the default as something like this
bmp280 = BMP280()
not
bmp280 = BMP280(i2c_dev=bus)
Try bmp280 = BMP280(77) or wait for Phil to reply.
EDIT: I have a BME680 in one of my projects. The code I use is as follows.
sensor = bme680.BME680()
sensor.set_humidity_oversample(bme680.OS_2X)
sensor.set_pressure_oversample(bme680.OS_4X)
sensor.set_temperature_oversample(bme680.OS_8X)
sensor.set_filter(bme680.FILTER_SIZE_3)
sensor.set_gas_status(bme680.DISABLE_GAS_MEAS)
if sensor.get_sensor_data():
t = (sensor.data.temperature)
t = (round(t))
For me all I would have to do is change the one line to sensor = bme680.BME680(77) and everything else would just work.
Hi, Iāve got my soldering iron out and repaired the link on the 280 and shorted the gap on the 680. I now have a working 280. I assume this restores the 280 to default address 76 and causes the 680 to be changed to address 77.
Apparently sensor = bme680.BME680(bme680.I2C_ADDR_SECONDARY) is the answer - those Pirates are great!