# "BreakoutBME68X: breakout not found when initialising" on brand new Badger 2040 / BME688 breakout

**URL:** <https://forums.pimoroni.com/t/breakoutbme68x-breakout-not-found-when-initialising-on-brand-new-badger-2040-bme688-breakout/20204>\
**Category:** Support\
**Created:** [September 5, 2022, 10:56pm UTC](https://forums.pimoroni.com/t/breakoutbme68x-breakout-not-found-when-initialising-on-brand-new-badger-2040-bme688-breakout/20204 "2022-09-05T22:56:44Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![WebAsh](https://avatars.discourse-cdn.com/v4/letter/w/b38774/32.png) [@WebAsh](https://forums.pimoroni.com/u/WebAsh)\
**Post date:** [September 5, 2022, 10:56pm UTC](https://forums.pimoroni.com/t/breakoutbme68x-breakout-not-found-when-initialising-on-brand-new-badger-2040-bme688-breakout/20204/1 "2022-09-05T22:56:44Z")

</div>

I’m getting “BreakoutBME68X: breakout not found when initialising” when running any scripts attempting to utilise a BME688 breakout sensor over I2C (connected via QW/ST) to a Badger 2040.

I’ve tried addresses `0x75`, `0x76`, `0x77`. I’m using `{"sda": 4, "scl": 5}`.

I’m wondering if somehow the sensor was dead on arrival? Is there anything else I can do to test whether it works?

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [September 6, 2022, 8:17am UTC](https://forums.pimoroni.com/t/breakoutbme68x-breakout-not-found-when-initialising-on-brand-new-badger-2040-bme688-breakout/20204/2 "2022-09-06T08:17:01Z")

</div>

Looking at the schematic, pins 4 and 5 are the correct pins.  
I’ve been editing my code examples as follows. I have a Tufty that uses the same pins for i2c.

```auto
from breakout_bme68x import BreakoutBME688
from pimoroni_i2c import PimoroniI2C
i2c = PimoroniI2C(sda=(4), scl=(5))
bme = BreakoutBME688(i2c)

```

This code “should” do an i2c scan.

```auto
import machine
sda=machine.Pin(4) # Explorer 20 Breakout 4
scl=machine.Pin(5) # 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))

```

The default address for the BME688 is 0x76  
`bme = BreakoutBME688(i2c)` assumes this. Only edit / chnage it if you have cut the address jumper on the breakout.

---

<div class="post-metadata">

**Author:** ![WebAsh](https://avatars.discourse-cdn.com/v4/letter/w/b38774/32.png) [@WebAsh](https://forums.pimoroni.com/u/WebAsh)\
**Post date:** [September 6, 2022, 7:36pm UTC](https://forums.pimoroni.com/t/breakoutbme68x-breakout-not-found-when-initialising-on-brand-new-badger-2040-bme688-breakout/20204/3 "2022-09-06T19:36:10Z")

</div>

Thanks that’s super helpful. Will save that away somewhere. Unfortunately it has returned `No i2c device`…

So some additional background that might be relevant(?):

- there were no QW/ST to QW/ST cables available in stock when I was buying, so I bought 2x QW/ST to Dupont header cables
- I used electrical tape to put the dupont header for each coloured wire together, to make a make-shift QW/ST to QW/ST cable as I couldn’t get anything else by the day that I needed it
- Once the event was over and I was back home, [and the purpose of buying the sensor passed 😔], I’ve undone the tape and used a breadboard in between rather than tapeing the pins together; still not working

Is there any protection on the BME688 breakout board? Could it have somehow been fried? Or is it more likely that it was dead on arrival?

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [September 6, 2022, 7:57pm UTC](https://forums.pimoroni.com/t/breakoutbme68x-breakout-not-found-when-initialising-on-brand-new-badger-2040-bme688-breakout/20204/4 "2022-09-06T19:57:12Z")

</div>

There is reverse voltage protection on the V+ and Ground. And getting the i2c pins reversed won’t hurt it.  
Do you have a raspberry Pi you could test it on?

---

<div class="post-metadata">

**Author:** ![WebAsh](https://avatars.discourse-cdn.com/v4/letter/w/b38774/32.png) [@WebAsh](https://forums.pimoroni.com/u/WebAsh)\
**Post date:** [September 6, 2022, 8:00pm UTC](https://forums.pimoroni.com/t/breakoutbme68x-breakout-not-found-when-initialising-on-brand-new-badger-2040-bme688-breakout/20204/5 "2022-09-06T20:00:09Z")

</div>

Cool. That’s what I figured with these breakout boards.

I have a spare Pi 2B+, I’m assuming I’d wanna load micropython onto it and do the same as I’ve already tried?

---

<div class="post-metadata">

**Author:** ![WebAsh](https://avatars.discourse-cdn.com/v4/letter/w/b38774/32.png) [@WebAsh](https://forums.pimoroni.com/u/WebAsh)\
**Post date:** [September 6, 2022, 8:02pm UTC](https://forums.pimoroni.com/t/breakoutbme68x-breakout-not-found-when-initialising-on-brand-new-badger-2040-bme688-breakout/20204/6 "2022-09-06T20:02:17Z")

</div>

Oh hrmmm. Doesn’t appear there’s an image for the fullsize boards. I’ll screw around with Python on top of Raspberry Pi OS then.

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [September 6, 2022, 8:15pm UTC](https://forums.pimoroni.com/t/breakoutbme68x-breakout-not-found-when-initialising-on-brand-new-badger-2040-bme688-breakout/20204/7 "2022-09-06T20:15:33Z")

</div>

Yeah, you’ll have to use Python, not Micro Python. There are python examples for that breakout. I have several in use on Pi’s.  
[pimoroni/bme680-python: Python library for the BME680 gas, temperature, humidity and pressure sensor. (github.com)](https://github.com/pimoroni/bme680-python)  
`sudo pip3 install bme680`  
[bme680-python/examples at master · pimoroni/bme680-python (github.com)](https://github.com/pimoroni/bme680-python/tree/master/examples)  
Just run them from Thonny on that Pi.

---

<div class="post-metadata">

**Author:** ![WebAsh](https://avatars.discourse-cdn.com/v4/letter/w/b38774/32.png) [@WebAsh](https://forums.pimoroni.com/u/WebAsh)\
**Post date:** [September 6, 2022, 9:56pm UTC](https://forums.pimoroni.com/t/breakoutbme68x-breakout-not-found-when-initialising-on-brand-new-badger-2040-bme688-breakout/20204/8 "2022-09-06T21:56:16Z")

</div>

Works on the Pi 2!

…now to swap back to the Badger 2040 and see what’s going on…

---

<div class="post-metadata">

**Author:** ![WebAsh](https://avatars.discourse-cdn.com/v4/letter/w/b38774/32.png) [@WebAsh](https://forums.pimoroni.com/u/WebAsh)\
**Post date:** [September 6, 2022, 10:27pm UTC](https://forums.pimoroni.com/t/breakoutbme68x-breakout-not-found-when-initialising-on-brand-new-badger-2040-bme688-breakout/20204/9 "2022-09-06T22:27:38Z")

</div>

argh I’ve figured it out… I’d mostly been leaving the QW/ST cable on the Badger 2040 disconnected, but had only connected it about 5 times. Just now I thought I’d inspect it a bit closer and noticed that it looked like the back pins of the connector were raised/spikey where I would’ve expected solder - so I unplugged the cable and gave the connector a bit of a wiggle…out it comes from its front anchors with no resistance on the solder pads whatsoever - **it looks like the QW/ST connector wasn’t ever soldered on!** oops!

…guess its time to dust off my very rusty soldering skills and borrow my neighbours soldering iron…

Thanks to @alphanumeric for pointing me in the right direction to rule things out and make this discovery.

---

<div class="post-metadata">

**Author:** ![alphanumeric](https://sea2.discourse-cdn.com/flex016/user_avatar/forums.pimoroni.com/alphanumeric/32/2729_2.png) [@alphanumeric](https://forums.pimoroni.com/u/alphanumeric)\
**Post date:** [September 7, 2022, 7:57am UTC](https://forums.pimoroni.com/t/breakoutbme68x-breakout-not-found-when-initialising-on-brand-new-badger-2040-bme688-breakout/20204/10 "2022-09-07T07:57:59Z")

</div>

Those tabs must have been bent up slightly when the board was soldered up in the oven. They weren’t touching the pads so they didn’t get soldered down. Bummer, but at least you know what’s up with that board now. Pun intended. I’d push / hold them down with a pin or needle, then reflow the solder with a your iron. I’d use a fin tip, if that’s an option.

---

<div class="post-metadata">

**Author:** ![Bjoern](https://avatars.discourse-cdn.com/v4/letter/b/46a35a/32.png) [@Bjoern](https://forums.pimoroni.com/u/Bjoern)\
**Post date:** [March 19, 2023, 5:32pm UTC](https://forums.pimoroni.com/t/breakoutbme68x-breakout-not-found-when-initialising-on-brand-new-badger-2040-bme688-breakout/20204/11 "2023-03-19T17:32:29Z")

</div>

For the BME680 (and Badger 2040 W), I’ve put code here: [badger2040/ieq.py at main · OpenDevEd/badger2040 · GitHub](https://github.com/OpenDevEd/badger2040/blob/main/badger_os/examples/ieq.py)

The example works within the overall badger\_os, but adding the temperature sensing as another “app”. I’ve tested this with BME680. If anybody knows how to test other sensors (e.g., BME280 as above, BME688 etc), and display the different set measurements accordingly, help is very welcome!
