I2cdetect stops detecting Pi Base Hat when analogue device connected


I purchased a Grove Pi Base Hat which I connect to a Raspberry Pi V3. I also have a One Wire Water Temperature Sensor, Grove ORP and Grove EC Sensor which I connect through the analogue ports on the Base Hat.

These previously worked fine and I could read values from the sensors. For no apparent reason this stopped working and the base hat is no longer detected when using i2cdetect -y 1. I have been using Dexter industries library and the troubleshooting scripts could no longer detect the firmware version. I tried to update the firmware on this board, but it kept failing with the following error:

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

After numerous failed attempts and hours of searching, I purchased a new Grove Base Hat for my Pi. This was successfully detected again upon first boot when using i2cdetect -y 1 - right until I connected my Grove EC Sensor to the board and attempted to read the analogue value using the following code:

import time
import grovepi

#Sensor connected to A0 Port
sensor = 14             # Pin 14 is A0 Port.
while True:
        sensor_value = grovepi.analogRead(sensor)

        print ("sensor_value = %d" %sensor_value)

    except IOError:
        print ("Error")

Now the new Grove Base Hat is no longer working and I cannot detect the firmware version on this board either. I am reluctant to try another firmware upgrade in case it somehow bricks the device.

Somehow, I believe the actual analogue sensors (Ph & ORP) are corrupting the firmware of the Grove Base Hat? Of note, when the first board stopped being detected when using i2cdetect -y 1, I could still read the raw digital value from the One Wire Temperature Sensor, but not the analogue Sensors values.

Any help or advice would be greatly appreciated.