use lower-level i2c processing