Breakout Garden


#1

Hi,

I have two questions, I just installed the hat an two breakout sensors.

If now I install breakout garden repo, should i install it again if I add further sensors to the garden.

Second question: In the moment I will use the BME680. Do I have to install additionally the library as described here:
https://learn.pimoroni.com/tutorial/sandyj/getting-started-with-bme680-breakout

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:

curl https://get.pimoroni.com/bme680 | bash

Many thx in advance …

regardly

Peter


#2

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.


#3

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?

many thx

Pete


#4

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.


#5

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?

Thanks,

Andrew


#6

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.


#7

Thanks Alphanumeric - I’ll look in to this…


#8

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


#9

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 :-)


#10

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…

Andrew


#11

I thought that might happen, its looking for it on the default address. Give me a few and I’ll look at the examples and see if its an easy fix.


#12

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.


#13

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!

Thanks for your help :-)


#14

Cool, glad you got it all sorted out. =)