Unusual WiFi101 I2C problem

I recently moved a project from Uno to Zero to be able to use the WiFi101. The project consists of 6 Adafruit sensor boards communicating with the Arduino over I2C. The i2C data signal is pretty dirty but everything has worked fine on the Uno for several months and everything also works with the Zero. But when I add the WiFi101 shield to the Zero the I2C bus stops working.

The WiFi101 schematic shows that it uses the Zero's SCL and SDA pins so I tried bending those pins out of the way and connecting my I2C signals directly to the Zero. Everything worked fine again.

I plan to take a look at it on the scope but until then, does anyone have any idea what it is about the WiFi101 that makes I2C stop working?


The Zero is a 3V3 board, wheras the Uno is 5V.

Have you level shifted the Adafruit sensor boards to match 3V3?

All the sensor boards work at both 3.3 and 5V. And the Zero works great. It's only when the WiFi101 is connected that the I2C breaks.