I2C Addressing - Default and Alternatives

Is is possible to change the i2c address of the zymbit. E.g. what if I want to have multiple devices on the sole i2c bus available on the RPi, is this feasible or zymkey requires exclusive access due to its low-level (encrypted?) protocol?

@matrak

  1. You can change the I2C address through our standard APIs:
    C: zkSetI2CAddr
    Python: set_i2c_address

  2. The I2C communication between the Zymkey and the Host is encrypted, but will not interfere with other devices on the same bus (assuming there is no address conflict).

  3. Are you trying to a) put multiple zymkeys on the same host, or b) put one zymkey with other I2C devices on the same host ?

Many thanks for the reply. My use case is to have zymkey on the i2c alongside other i2c devices.

OK, great. So you should have what you now need to complete the I2C remapping.

so I am trying to do this and in python I am running zk.client.set_i2c_address(54) which should be 0x36 hex but it gives me bad return code -1 no matter what value I pass. I have another HAT that I think is interfering so I wanted to change and see if that helps. I already remapped the GPIO 4 successfully.

@joelcomp1 Unfortunately, set_i2c_address() currently cannot change the i2c address from the default of 0x30. If it is possible, you will need to change the address of the HAT.

Bob