GrovePi+ & HM3301 & SGP30 another I2C device makes the SGP30 disappear

I bought a GrovePI+, an HM3301, an SGP30, a BME280, an HM3301, and an I2C ADC. I would like to read from all three sensors at the same time. Unfortunately when the HM3301, SGP30, and another I2C device are attached to the same I2C bus the SGP30 is not discoverable via i2cdetect



When I run i2cdetect with the HM3301, SGP30, and either the BME280 or I2C ADC the SGP30 does not appear. Order of connection does not matter.



When I run i2cdetect with the HM3301, BME280, and an I2C ADC all three devices appear.



When I run i2cdetect with the SGP30, BME280, and an I2C ADC all three devices appear.



I shut down, unplugged, reconnected sensors, then restarted the Raspberry PI for each configuration I checked.



All four devices use different addresses, so the issues does not seem to be an address conflict.



If I plug in only the SGP30 and HM3301 I can read values from both devices at the same time for many cycles (separate programs in separate terminals).



If I plug in only the BME280 and HM3301 I can read values from both devices at the same time for many cycles (separate programs in separate terminals).



If I plug in the SGP30, HM3301, and BME280 the HM3301 experiences frequent CRC errors (see datasheet) but can still read data from it, if only once or twice before experiencing a CRC error. The BME280 works fine for many cycles. As the SGP30 is not discoverable I cannot read any values from it.



How do I get the HM3301 SGP30 and another I2C device to all be accessible at the same time?



PS: I am using python libraries I collected and assembled to read from the sensors.

Hi,

Can you check the power requirements of the sensors? it might be due to insufficient power?