Adafruit BMP390 over I2C with Wire.h on Teensy 3.6 ok but not for Teensy 4.1

Status
Not open for further replies.
I have been laughing at the solution to this, i spent a reasonable amount of time altering and changing the delay40; and looking for any changes.............
I just never thought to comment it out !! :eek:

Thank you and much appreciated, i will follow up on my Adafruit post with the answer for others.

Yeah - know the feeling. Glad its working for you.
 
I also successfully tested
  • Arduino Uno with BMP390
  • Teensy 3.6 with BMP388
  • Teensy 4.1 with BMP390

with no delay in Adafruit_BMP3XX.cpp:
2021-01-07 16_59_11-Adafruit_BMP3XX.cpp.png

Thank you very much for the support here!
:)

Just two questions:
1. I recognized that some hex values (not the temperature, pressure, altitude) are not identical between the three PLCs. What is the reason for that?
2. Is there any follow up (i.e. bug report) with this "knowledge"?
 
good Work... I will be picking my Sparkfun one up probably in the next hour.

Great - another data point. Just hooked up my DFRobot BMP388 to a Teensy 4.0 and its working without a problem. Just got it last night but was distracted with LittleFS again.

EDIT: Think I put back the delay(40) correctly as a second test point and with the DFRobot BMP388 it works with and without the delay(40);
 
Just wanted to provide an update. I had a 3.6 beta board, but not a 4.x board to test.

So far I've only tried the bmp390 board on a LC, but the boards I ordered work well:
http://www.diymalls.com/MP390-Barometric-Pressure-Altimeter-Sensor?tag=Temperature%20Sensor
I'd probably get the Adafruit or Sparkfun for a single one, but if you need 5 or 10, the price is pretty good.

Highly recommend the driver KurtE recommended. It's been working for the BMP390 and it's much more complete. There's also no delay used anywhere except for a reset call:
https://github.com/MartinL1/BMP388_DEV

Here are a list of the examples:
BMP388_ESP32_HSPI_Normal
BMP388_ESP32_I2C_Normal_DefinedPins
BMP388_ESP8266_I2C_Normal_DefinedPins
BMP388_I2C_Forced
BMP388_I2C_Forced_Interrupt
BMP388_I2C_Normal
BMP388_I2C_Normal_FIFO
BMP388_I2C_Normal_Interrupt
BMP388_I2C_Normal_Interrupt_FIFO
BMP388_SPI_Forced
BMP388_SPI_Forced_Interrupt
BMP388_SPI_Normal
BMP388_SPI_Normal_FIFO
BMP388_SPI_Normal_Interrupt
BMP388_SPI_Normal_Interrupt_FIFO
BMP388_SPI_Normal_Multiple
 
Highly recommend the driver KurtE recommended. It's been working for the BMP390 and it's much more complete. There's also no delay used anywhere except for a reset call:
https://github.com/MartinL1/BMP388_DEV

Here are a list of the examples:
BMP388_ESP32_HSPI_Normal
BMP388_ESP32_I2C_Normal_DefinedPins
BMP388_ESP8266_I2C_Normal_DefinedPins
BMP388_I2C_Forced
BMP388_I2C_Forced_Interrupt
BMP388_I2C_Normal
BMP388_I2C_Normal_FIFO
BMP388_I2C_Normal_Interrupt
BMP388_I2C_Normal_Interrupt_FIFO
BMP388_SPI_Forced
BMP388_SPI_Forced_Interrupt
BMP388_SPI_Normal
BMP388_SPI_Normal_FIFO
BMP388_SPI_Normal_Interrupt
BMP388_SPI_Normal_Interrupt_FIFO
BMP388_SPI_Normal_Multiple

The martinL1 library works for me to.
 
Not to hijack this thread, but someone may want to be aware that running an Adafruit BMP388 and BMP390 at the same time on a Teensy 4.1 with the Adafruit demo script (bmp3xx_simpletest), it will give a false or bad pressure for one of the two pressure sensors when run at the same time. If run via I2C by themselves, each sensors will work just fine. A bug is open on github, however I'm wondering if it is some issue with Wire on the Teensy 4.1 itself.

https://github.com/adafruit/Adafruit_BMP3XX/issues/18

Example Output:
Code:
BMP388 Sensor #1 using &Wire  0x76 
Temperature = 26.56 *C
Pressure = 1012.74 hPa
Approx. Altitude = 3.88 m

BMP390 Sensor #2  using &Wire1 0x77
Temperature = 27.25 *C
Pressure = 958.15 hPa   <===========[WRONG PRESSURE REPORTED]
Approx. Altitude = 468.74 m
 
Not to hijack this thread, but someone may want to be aware that running an Adafruit BMP388 and BMP390 at the same time on a Teensy 4.1 with the Adafruit demo script (bmp3xx_simpletest), it will give a false or bad pressure for one of the two pressure sensors when run at the same time. If run via I2C by themselves, each sensors will work just fine. A bug is open on github, however I'm wondering if it is some issue with Wire on the Teensy 4.1 itself.

https://github.com/adafruit/Adafruit_BMP3XX/issues/18

Example Output:
Code:
BMP388 Sensor #1 using &Wire  0x76 
Temperature = 26.56 *C
Pressure = 1012.74 hPa
Approx. Altitude = 3.88 m

BMP390 Sensor #2  using &Wire1 0x77
Temperature = 27.25 *C
Pressure = 958.15 hPa   <===========[WRONG PRESSURE REPORTED]
Approx. Altitude = 468.74 m

Reading the issue on github that you referenced it doesn't appear to be a I2C problem but a library issue. Since they are using the lib for the two different sensors. ladyada came back and said:
you cannot run two of these at the same time... no ETA on when it would be changed/fixed

So you could try running the library that @KurtE mentioned for the BMP388 and the Adafruit one for the BMP390 and see if that helps:
 
Status
Not open for further replies.
Back
Top