[RPi] Connecting Multiple I2C devices with same address (VL53L1X)


tldr: What are the options for connecting two I2C devices with the same address two my Raspberry Pi (stacked with Explorer Hat Pro)?

I want to connect two I2C devices (Pimoroni VL53L1X Time of Flight (ToF) Sensor Breakout) two my Raspberry Pi. The breakout has a fixed I2C address 0x29.

As far as I understand, devices need to have different addresses to be used on the same I2C bus. I’ve read about several options, but I’m not sure under which conditions they work and what would be the best choice.

  • is it possible to change the address on the VL53L1X breakout?
  • Could I use an I2C multiplexer (e.g. on Adafruit)?
  • Can I create an additional I2C bus using GPIO as described here? In this case, could there be any issues because I have an Pimoroni Explorer Hat Pro stacked on my RPi and I cannot access all GPIO pins.

Background: I’m using the VL53L1X for obstacle avoidance on an small rover built on the Pimoroni STS-Pi kit. The sensor works really well, but the field of view is rather narrow, so I would like to use two sensors.