I2C hangs in particle electron firmware version 0.7.0

Hello, we have developed a device with 7 i2c devices. connected to particle electron.
but after some time maybe two or three days, i2c hangs and all devices stop responding on i2c bus.

from one CO2 gas sensor Wire.endTransmission() returns 1, and according to doc says the buffer is too long.

but it requires just a restart to reset the i2c bus.

@rickkas7 can you help us?

Are you by any chance using (a lot of) String objects in your code? If so, @ScruffR might have a word or two regarding that :wink: Try to use C char arrays instead of strings, that might make a difference.

Furthermore, it’s always helpful if we can see the code we’re asked to help with.

2 Likes

There is no known issue with I2C in 0.7.0 (or later). Unfortunately you’ll need to dig into it more deeply to find the minimal failure case as it’s not something that I’ve seen before.

You could try resetting I2C by calling Wire.end() then Wire.begin() after you get that error on endTransmission(). I don’t know if that will help, but it’s worth a try.

3 Likes

let me try to do this.

ok i will try to reset i2c bus thank you. let me check