There appears to be a known issue with I2C on Gen 3 devices (argon, xenon, boron). Our team is having issues where after a few seconds of I2C communication with our break-out board, our argons and xenons freeze up and prevent any OTA flashing. The values we are getting from the break-out board also don’t make sense. Would love to hear when this issue is solved! Thanks!
None of my Argons/Xenons have that issue with i2c but perhaps your usage is more advanced than mine. I’m just reading sensors.
@roguecandle, the only issue I am aware of regarding I2C is THIS ONE. Is this the one you are referring to? It would be best if you started a separate thread with the problems you are encountering so they might be addressed there.
Can confirm I’m observing this as well. Seems to be impacting some of Particle’s firmware, in particular the fuel gauge. Support noted that they’re working on it.
Same, I reached out to support and they said they are working on it. I am using the Adafruit INA219 Current Sensor Breakout board. @peekay123, it could be the same issue. Support said our problem coincided with this one:
Wire(I2C) couldn’t wait for ack always in while loop, it should have timeout condition, then when the error occurs, application firmware can detect it and take the corresponding action to handle it.
We know our circuit is right and that it’s not the breakout board because we got it working with an Arduino and a Photon board. For now, we purchased a couple photon boards to continue our prototyping, but look forward to the Gen3 updates
Thanks for posting this! I am an ME with limited EE experience, are you suggesting I run the code from github with my devices?
I was just trying to let you relate the support response to the GitHub issue which has more details and can allow you to track when it is fixed.
In this case, the fix was included in the recent 1.3.1-rc.1 release which you can put onto your device to see if it helps.
The fix prevents a lockup by failing out of the I2C communication. It won’t necessarily restore I2C communication. Depending on nature of the failure you may be able to reset the I2C bus or may even need to reset your I2C devices.