Raspberry Pi I2C Unexpected Behavior

Hi All.

I spent last weekend trying to hook up 2 adafruit QuadAlphanumeric displays to my Rasberry Pi 3 B+.

From what I understand, all I need to do is hookup the displays in series to the SDA SCL outs, and the I2C chip is able to dynamically assign addresses to the devices I hookup.

No matter what I tried, when I hooked up my devices, they would both get assigned to address 0x70. If I hooked up the displays independently, they would both work. But when I attached 2, they would both be assigned 0x70. I was still able to send text commands to them, but they would both show the same text.

I’ve attached a diagram of how I have wired up my displays in case I got it wrong somehow…

I got a response on rasberry stackexchange, I can supposedly set the addresses of the devices with the jumper solders.

There’s a caveat though, you can only assign 8 addresses… Here is the explanation on how to do that:

There’s one thing though, does anyone know if there’s a way to translate the signal so that I can use more than 8? Or am I misunderstanding something?

Hi Christos,

I’m not sure how you would assign more addresses with these particular devices. They don’t seem to support it. There may be displays that let you set the I2C address in code rather than by soldering jumpers, but I’m not aware of any.

Good luck with your project!

1 Like

You could use something like a TCA9548A I2C Multiplexer, https://core-electronics.com.au/tca9548a-i2c-multiplexer.html or SparkFun Qwiic Mux Breakout - 8 Channel (TCA9548A), https://core-electronics.com.au/sparkfun-qwiic-mux-breakout-8-channel-tca9548a.html
This would give you 8 x 8 (64) devices!

3 Likes

Thanks mate, this sort of thing is perfect.

1 Like