The Inter-integrated Circuit (I2​C) Protocol (pronounced I-squared-C ) is a hardware serial interface (or "protocol") intended to allow multiple "slave" components to communicate with one or more "master" components. It used across many microprocessors and microcontrollers, including the Raspberry Pi.

I2C permits sensors and other IO devices to be connected to the controller (and/or each other) with only four wires (or really only two if you don't count Vcc and ground):

  1. 3-6V (Vcc)
  2. SDA (Serial Data Line)
  3. SCL (Serial Clock Line)
  4. GND (Ground)

The Pimoroni "Breakout Garden" set of I2C sensors also includes an "INT" (interrupt) pin, AKA "GCLK" or "GPIO4".

To View the Current I2C Devices#

To see what's connected on your Raspberry Pi, type (not including the % prompt):

   % i2cdetect -y 1
and you'll see something like:
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- 14 15 -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- 28 -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 
70: -- -- -- -- 74 75 -- 77  

Known I2C Devices#

Some well known I2C products. No two I2C may share the same address on an I2C bus, otherwise there will be contention.

Stock Brand Description 7 bit address Notes
1 Pimoroni LTR-559 Light & Proximity 0x23
3 Pimoroni VL53L1X Time of Flight (ToF) 0x29 range 40mm-4m
1 Adafruit VL6180X Time of Flight Distance Sensor 0x29 range 5-100mm
2 Pimoroni 11x7 LED Matrix #1 0x75
2 Pimoroni 11x7 LED Matrix #2 0x77
4 Pimoroni 5x5 RGB Matrix 0x74 / 0x77 77 will be in conflict with 11x7 #2
2 Pimoroni ADS1015 +/-24V ADC 3 Channel 0x48 / 0x49
2 Adafruit ADS1015 12 bit ADC 4 Channel w Prog Gain 0x48 - 0x4B (jumpers)
2 PiBorg Thunderborg 0x10 / 0x11
1 PiBorg Ultraborg 0x36
1 Pimoroni ICM20948 9-DOF Motion Sensor 0x68 / 0x69
1 Adafruit BNO055 Absolute Orientation Sensor 0x28 / 0x29
0 Adafruit VCNL4010 Proximity Sensor 0x13
0 Adafruit LSM9DS1 Accel Gyro Mag Temp 9-DOF 0x1C / 0x1E Accel, 0x6A / 0x6B for Gyro
0 Adafruit VL53L0X Time of Flight Distance Sensor 0x29 range 50-1200mm (2m on long range)

"Stock" is how many Murray has in his robot laboratory as part of exploratory design and development of the KR01 robot.


Tags:  Hardware