MLX 90640 doesn't work when Ultrasonic I2C Range Sensor is also connected (via 1-to-3 Hub Unit)

  • I am daisy-chain linking a series of I2C sensors to grove port A on the M5Go (esp32) and noticed that the MLX 90640- the last one I'm adding- completely freezes or shows nothing whenever I also connect the Ultrasonic I2C Range Sensor. They do not have the same address (MLX...- 0x33 vs. Ultrasonic I2C...- 0x57) and the MLX 90640 works when linked to 6 other sensors, just not when linked to the Ultrasonic I2C. Does anyone know if this could be related to a frame rate issue with the MLX or why this would be the case? And does anyone have a workaround that could resolve it (that is not buying a Pa.Hub)?

    Thanks in advance,

  • Hello @learly6

    maybe the issue is the I2C clock speed. Looking at each example it seems that the MLX 90640 is setup with 450 kHz (interestingly the comment says 400 kHz) whereas the Ultrasonic Range Sensor is setup with 200 kHz.

    The MLX datasheet indicates I2C clock speeds of 400 kHz and up. I cannot find a datasheet for the Ultrasonic Range Sensor.

    I'd double check the I2C frequency and whether both sensors can deal with either 200 kHz or 400 kHz.

    Another thing to keep in mind are the pull-up resistors. Most (if not all) I2C sensors have built-in pull-up resistors. With each additional sensor the resulting resistance gets smaller as they are all in parallel.