I2C multi-byte read without specifying register



  • I'm working with the Sensirion SVM30, which is comprised of an SHTC1 and SGP30.

    In dealing with the Onion I2C stack, it's quickly apparent this won't work for the SHTC1. This is because to take a measurement, one must first send the measurement command to the IC (in this case, i2c.write(0x70, [0x7C, 0xA2])). After a brief wait, one can then query the device for the response. It is just a read from the I2C address, no register required (nor allowed). This seems to be incompatible with the Onion Omega I2C stack.

    I tried using the smbus2 package for python. This allows me to read a single byte read without specifying a register using the read_byte command, which seems to be successful, but only allows for a single byte, rather than the 6 I need. I'm working on seeing if smbus2 can be extended, but it would seem best to use the official library, rather than hodge-podging my own together.

    How can reads be done without specifying the register? Further, how can multi-byte reads be done?

    TIA!





  • Thanks. I'd seen that before, ran into bigger problems with the pigpio build (eg no ldconfig available for the omega). That said, I found a method to use with the smbus2 package that allowed me what I needed.


Log in to reply
 

Looks like your connection to Community was lost, please wait while we try to reconnect.