Raspberry Pi has only one group of I2C pins. Is it possible to connect, for example, three different modules to I2C directly or do I need for this some kind of I2C expander / switcher?


You can connect multiple i2c devices to the same set of pins as long as they have distinct i2c addresses and compatible voltage levels. The i2c pins on your Pi are 3V3 logic. If you have a 5 V logic device (or a mix between 3V3 and 5 V devices), you'll need to take some extra care. There are multiple other questions here on those topics.

| improve this answer | |
  • 1
    In fact I²C is an open collector/drain bus, which requires resistor pullup. Provided devices have no on-board pullups to 5V (the common situation) you can mix different voltage devices. – Milliways Oct 1 '17 at 0:28
  • Verifying what @Milliways said is part of what I include in the blanket statement "you'll need to take some extra care." Definitely possible to combine logical levels as long as you verify compatibility and/or take steps to create compatibility. – Brick Oct 1 '17 at 15:59

Not the answer you're looking for? Browse other questions tagged or ask your own question.