Troublesome Chips

Some sensors or chips have non-standard behavior that causes issues when trying to use I2C. Here's a few of the ones to watch for

  • BNO055 - Clock stretching, and sometimes needs to be reset
  • ATECCx08 - Use slow-speed I2C to get out of sleep mode
  • MCP9600 (some date codes) - duplicate data from register reads due to clock stretching (?)
  • PN532 - Clock stretching
  • CCS811 - Clock stretching

If you're using Raspberry Pi with these chips, check out our guide on how to work-around clock stretching

https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/i2c-clock-stretching

This guide was first published on Jul 29, 2017. It was last updated on Jul 29, 2017.
This page (Troublesome Chips) was last updated on Jun 04, 2020.