Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430G2553: I2C interface with BME680 Bosch sensor

Part Number: MSP430G2553

Hello everyone,

                        I am using BME680 Bosch sensor to interface with  MSP430G2553 controller using the I2C protocol.  I am not getting the right results.What's the problem?? I have tried so many times and online codes are also available but unfortunately not been able to get the exact results.

Like I am getting the results on Putty that sensor is giving me the room temperature reading in -1.086C.

I will be very happy if someone can reply me as soon as possible.

  • Hi,

    is there any way you could debug if the issue is due to the sensor giving wrong outputs or the I2C communication not working properly (i.e. wrong protocol or general I2C configuration issues)?
    You gave an example for the results you're receiving. What was the expected value?
    Also, do you do any conversion of the sensor results which could go wrong?

    Please share some more details so that we can pin down the root of your issue.

    Thanks and best regards,
    Britta
  • Hello,

                I am getting the wrong results from sensor like the temperature of my lab is 26C and it is giving 3.89C and similarly I am getting the value(s) of ambient humidity to be 97.66% which is completely wrong result. The ambient humidity should be around 50 to 60%. I am getting these wrong results on hercules interface.

    I used the same I2C communication for the same series sensor bme280 and it was working fine.Now for bme680 I dont know why it is not working.

    I need urgent help related to this issue and I would really appreciate  if you could  provide some suggestions. 

    Kind regards,

    Ali

  • Hello,

    looks to me that I2c is working.
    What you did to convert your software from bme280 to bme680?
    There must be something wrong.
  • Hi Ali,

    could you please explain what you mean with the following:

    Syed Muhammad Ali said:
    I am getting these wrong results on hercules interface.

    Also, following Tomasz comment, please look at the differences between bme280 and bme680: Did you account for those when setting up your application? 

    Best regards,

    Britta

  • Hello everyone!

                            I changed the register addresses when converting from bme280 to bme680.

                            Actually now I am getting the ambient temperature results from bme680 correct but problem still persists in the humidity area.

                          I am getting the results of ambient humidity of room temperature like 56%, sometimes 0%, sometimes -1.233% and even sometimes 100% which are completely wrong results.

    Kind regards,

    Ali

  • You did something if you read proper temperature measurements and you did not mentioned that.

    Both bme are different devices.
    bme680 new feature is an air quality measurement.
    mbe680 has a different I2C transaction formats than mbe280.
    You need to change your software.
    Do you use bme680 library or bme280?
  • i am using code composer to program this. No i didn't use any bme280 library.
    May be problem persists in the compensation parameters but I tried with some online coding available but nothing is going on the right way to measure humidity. I made correction in the below code by making t32/10 instead of t32/100 to measure correct temperature. Before measuring correct temp I was getting values in 0.26,0.27,0.29 etc but they were in a sequence.
    UART_Write_Float((float)tempcompensation(t32)/10, 2);
    But humidity measurements are no more in a sequence just like i am getting 0% then 100% then 28% then -1.23% which doesn't make any sense.

    Kind regards,
    Ali
  • Check a raw date coming from I2C against bme680 specification.
    If a raw data is not fluctuating you have an error in a software, most probably.
  • Hi Syed,

    did you have the chance to check what Tomasz indicated?

    Best regards,
    Britta
  • Hi Syed,

    please note that I'm closing this thread due to inactivity.
    You can also re-open it by replying back in case you need further assistance.

    Best regards,
    Britta

**Attention** This is a public forum