Adafruit is using a programmed microcontroller in their stemma lines (Arm line) in order to interface different sensors to an i2c bus. M5Stack is using the same approach using the Atmel328 (Arduino line) microcontroller eg in their PbHub, servo controller, Makey etc. For the PbHub you can use the library provided or use the pure I2C blocks from the flow advanced sections. Using the I2C blocks I was able to read analog values from the PbHub, which is described in their unit data sheet, but the function is not provided as a flow block.
Adafruit doesn't provide the details in their documents for their STEMMA Soil Sensor. But I probably found a solution described in following forum
I think you are facing 2 problems:
- timing problem ( you have to wait for for the sensor)
- in the Stemma line, you can change the I2C adress of the sensors writing the values into ??? register !
Because I don't have the STEMMA sensor, I can't try it out. But in my opinion, you don't need to include the seesaw STEMMA library (which may have the wrong timing for the M5Stack), but you can read the moisture values using M5Stack I2C blocks:
and translated into micropython: