Could not find a valid BMP280 sensor, check wiring!



  • I just got a M5StickC and have been going through the examples with Arduino IDE. I've been going through the examples and everything seems to be OK. The M5StickC came with both the ENV and Speaker units. The speaker unit example works fine. For the ENV unit example, I get the
    "Could not find a valid BMP280 sensor, check wiring!" error.
    I changed the i2C addresses in both the BMP280.h library and the code between 0x76 and 0x77 and neither work. I tried an I2C scanner Arduino sketch and that says there are no I2C devices. Any suggestions?

    Update: I found the i2C_Tester Example in the Advanced Settings. That is not finding any I2C devices with the ENV unit on or with it off. Are there any internal I2C devices that it should be finding?



  • That is strange. Can you check under UIFlow if that is the same result?
    BTW there are 2 i2c channels in the M5Stack, have you checked both channels?



  • I assumed the I2C tester would check all channels. Regardless, I don't think the built-in I2CTester asks for which channel to test. I looks like it scans 128 addresses.. It doesn't find anything.

    For UIFlow, it doesn't seem to want to connect to the M5StickC. I installed USB drivers, etc. On the online version, it says my API is unknown. Are there examples in UIFlow that you can test the various sensors and such?

    I was able to download the EZloader for the ENV hat and it is showing info. However, the info does not appear to be very accurate. Temp is 28 deg C, should be about 22 deg C. I assume maybe the heat from the device is causing that error. Barometric pressure is 99032 (is assume it is in Pascals). Well, the barometric pressure where I am located is more like 101185 Pascals. So that is inaccurate. Then the heading doesn't appear to be right at all. I point it north, it says 259, I rotate it 180 degs, it says 247. So this is rather disappointing. The worst part is I have a M5Stack and MM5Stack-Fire coming and some sensors and the car. Yikes! If the performance is anything like this, it'll be a dud. I'm a sucker for getting new controllers and checking them out.



  • The I2c tester only checks the primary i2c which is connected to the internal hardware. you need to use wire1 instead of wire to check check channel two.

    You did install the UIFlow firmware first before connecting to UIFlow?
    NVM you used the easy loader for the firmware.
    The Stick produces heat which affects (effects) the readings. I wonder if adding a piece of foil between the hat and the stick helps as long as the foil doesn't contact the pins!



  • @ajb2k3 I did install the UIFlow firmware. But I also used EZloader. So do I need to reinstall the UIFlow firmware everytime I want to use it or rather after I use either EZloader or Arduino IDE?

    I feel maybe that the i2CScanner in the M5StickC example may only be looking at the Grove port. The device didn't come with any Grove cables, so I have to wait before I can test that.

    Also, I found another I2C scanner which should I2C devices on Wire 1: 31, 51, and 68. Which I assume are the addresses for the microphone, the motion tracker and maybe the ESP32. And then Wire 1-2: 10, 5C and 76. Which I think is the geomagnetic sensor, the DHT12, and the pressure sensor, respectively. So at least I know the I2C is working.

    So I can use either the EZLoader or Arduino (except it isn't working for ENV hat example), it seems like UIFlow isn't working for me either. And the info from the sensor is essentially useless, since it is so inaccurate. Too bad. Maybe when get the M5Stack-Fire, the sensors will be better and the i2C will work with Arduino.

    What I haven't done yet is hook up the ENV sensor hat directly to the Arduino's I2C pins and see if I can see anything and, if so, if the values are more accurate.



  • @happy-hippo Yes, if you use arduino or ezloader you have to reinstall UIFlow as they overwrite the UIFlow firmware.

    Lets us know the resaults after you hook it directly to an arduino.



  • I hooked up the ENV C hat to Arduino i2C pins. The Arudino was able to read the I2C addresses. 0x10, for the BMM150, 0x5C for the DH12, and 0x76 for the BMP280.

    I was able to run an example for the BMP280. This outputs temperature too, apparently. The temperature was correct. The barometric pressure was low as before. The stated accuracy is supposed to be 12 Pa. But it is more like 275 Pa off.

    I also ran an example for the DHT12 sensor. Temperature was correct. Humidity was closer. In my opinion, both measurements are acceptable.

    I was not able to find a good example for the BMM150.

    So, as expected, it is clear the M5StickC device is significantly affecting the temperature and humidity readings.

    I don't know the reason why the official ENV hat example for the M5StickC does not work with Arduino iDE.

    UIFlow does not connect in the Desktop IDE. In the Web based version, the API key is unknown and is shown as disconnected..

    It would be nice if there was some indicator on the M5StickC which verifies that it is turned on. The only think I can see is the screen is dark gray, instead of black, when turned on.



  • @happy-hippo If you install the firmware correctly you will get messages on the sticks screen asking you to connect to a web page 192.168.4.1 and select network to connect to.

    There is supposed to be some way to calibrate the sensor but this isn't documented yet.
    I have some work in progress document in the project forum you can look into for some technical details but they are for UIFlow.
    Someone else tried connecting the hat to the stick using dupont cables to space them apart.



  • When you say "install the firmware," are you taking about UIFlow? I installed UIFlow-v1.3.2 but the M5Stick did not display any message. The program indicated that the write was successful and the last thing it says is, "Staying in Bootloader"



  • unplug the stick and press the power button to reset and it should work



  • OK- I was able to get an internet connection finally, but I had to install the firmware again. After that, I was able to get the Web version of UIFlow working. I ran the ENV hat example but that didn't work. Then I upgraded the firmware to 1.4.1, and now it works. The values are off, as I previously mentioned but at least it works now.

    I'm still not able to get the desktop version of UIFlow to work, but that will be for another day.
    Thanks for the help. I usually don't ask anyone for help but I was to the point of throwing the device away.



  • @happy-hippo Feel free to ask for help at anytime as that is what I am here for and that is why I am writing two books on UIFLow



  • Thank you. I was able to get UIFlow desktop IDE working by changing the M5StickC settings to USB mode. I followed these steps: (taken from another forum post)
    Power off stick
    Hold home
    And power on
    Now stick should wake up in boot menu.
    Inside there is a option and inside you can change it to pure usb mode

    So I'm going to have to do this every time I switch from the web based UIFlow to the desktop UIFlow?



  • @happy-hippo yes, you will have to manually switch modes.



  • ENVII HAT on M5StickC works with the example by changing:
    Wire.begin(32, 33);
    to:
    Wire.begin(0,26);