Pico W, can't install BME688 sensor 4-in-1

Hello. I’m trying to get the Pico working with BME688 sensor. I’m using Thonny IDE and the Pico is getting picked up. I don’t have breakout garden BTW.

The demo file from Github is throwing error: no modules called ‘picographics’ or ‘breakout_bme68x’. I’m not sure how to proceed.

Can you advise please?

Many thanks!

What uf2 file did you flash it with?
The one you need is, pimoroni-picow-v1.21.0-micropython.uf2

1 Like

I’ve flashed the above uf2, downloaded the bme68x file from Github. It has let me open the .py file and save but don’t know how to install the bme folder files.

In Thonny there’s a bme280 pimoroni file in the package installer, but not one for 680. Is it worth trying the 280 one, please?
Thanks.

If you have flashed the Pico W with that uf2, all the library files needed for the BME688 are already installed. Just run the micro python demo example. What pins do you have the BME688 wired up to?
pimoroni-pico/micropython/examples/breakout_bme68x at main · pimoroni/pimoroni-pico (github.com)

Thanks for help. I redownloaded the demo, run it and get :
File “”, line 14, in
RuntimeError: BreakoutBME68X: breakout not found when initialising

I don’t have Breakout Garden. The Pico W is connected to BME688 with:
GND to GND
SCL to GP21
SDA to GP20
2.4V to 3V3 EN

Is this correct?

PS I’m using the Lshaped connector supplied, wondering if I have it the right way up?

You mean the L-shaped pins? Have you soldered those on to the BME688 breakout? At a glance those pins look right.

Thanks, no I have the 688 also hooked into breadboard with the SDA-etc lettering face up, with the pins in different rails to the Pico. Here’s a pic:

Unfortunately the L-adapter (and the straight version I think it also comes with) generally need soldered to maintain a good connection, otherwise it might drop in-and-out very often. That might be why you’re getting “breakout not found”.

1 Like

Also, it’s really hard to see where jumper wires go in photos of breadboards, but it looks like the blue wire goes into the 4th-pin down on the right? That’s the 3v3 enable pin, as far as I know that allows you to disable the 3v3 regulator on the Pico, which you won’t want to do if you want to use the board. You probably want to plug it into one pin down, 3v3 Out, which can supply a small amount of 3v3 power.

(The marking on the BME breakout is 2-6V, as in power it with between 2V and 6V, not 2.6V).

1 Like

Ah thanks, was wondering about 3V3 EN and had just looked it up. I’ll try soldering when I get to it.
The built-in thermal sensor in the Pico is working fine and generating data.

As written, the BME68x demo uses GP4 (SDA)and GP5 (SCL), not 20 and 21. The Int is not used on the BME688, so no need to wire it up.

As Shoe pointed out, the header does need to be soldered for a reliable connection.

PINS_BREAKOUT_GARDEN = {"sda": 4, "scl": 5}
PINS_PICO_EXPLORER = {"sda": 20, "scl": 21}

i2c = PimoroniI2C(**PINS_BREAKOUT_GARDEN)

garden_base.sch (shopify.com)

1 Like

Many thanks for your help, everyone. I’ll do the soldering soon, fingers’ crossed.

Good soldering takes practice. It’s a vey valuable skill to have IMHO. For tinkering etc.
This may help.
The Ultimate Guide to Soldering (pimoroni.com)

I’ve been soldering with an iron for ages, yes I’m that old. =)
I just bought a Hot Air Reflow station. Oh boy, do I have a lot of learning to do, to make good use of it. It looks so easy in the videos. I haven’t set anything on fire, so I guess I’m doing OK. =-)

1 Like

Thank you! I did it first time to add the riser to the pico. It was incredibly satisfying somehow :D

Ps that hot air reflow is something else!

1 Like

I took a look see at you soldering above. That’s not bad. Might want to check a couple of them though.
soldering101

What I do is touch the pad with the tip, then make sure its also touching the pin. Wait a second or so so both are hot and put a little solder on. Wait a second or so, then lift the tip up.

1 Like

Thanks for looking and advice! Darn yes, well spotted - some are ‘not enough solder’ category…

1 Like

Hello - I’ve now soldered the BME to the L-mount and resoldered some suspects on the Pico W. It flashes LED on start.

When running bme_688_sensor.py in Thonny, I still get the error:

BreakoutBME68X: breakout not found when initialising

Have tried the alt address too.

Do you have any further suggestions please? Fingers x’d, thank you.

What GP are you using in your code, and what GP are you plugged into on the Pico?
As written, the BME68x demo uses GP4 (SDA) and GP5 (SCL)
If you want to use sda: 20, scl: 21.
It’s i2c = PimoroniI2C(**PINS_PICO_EXPLORER)
GP20 is Physical pin 26
GP21 is Physical Pin 27

Raspberry Pi Pico W GPIO Pinout

GP4 is Physical Pin 6
GP5 is Physical Pin 7
If you just want to move the two jumpers and not edit the py file.

EDIT: Using the latest Pimoorni uf2 files you can ditch the (**PINS_…) and just do this.

from pimoroni_i2c import PimoroniI2C
i2cbus = PimoroniI2C(4, 5)

or

from pimoroni_i2c import PimoroniI2C
i2cbus = PimoroniI2C(21, 22)

Or use what ever pins you want. As long as they match the pinout functions. I’ve done this with no issues.

from pimoroni_i2c import PimoroniI2C
i2cbus = PimoroniI2C(1, 2)
1 Like

I have some code for scanning i2c for devices.

import machine
sda=machine.Pin(20) # Explorer 20 Breakout 4
scl=machine.Pin(21) # Explorer 21 Breakout 5
i2c=machine.I2C(0,sda=sda, scl=scl, freq=400000)
 
print('Scan i2c bus...')
devices = i2c.scan()
 
if len(devices) == 0:
  print("No i2c device !")
else:
  print('i2c devices found:',len(devices))
 
  for device in devices:  
    print("Decimal address: ",device," | Hex address: ",hex(device))


1 Like