I 2 C
Back to current versionRestore this version

The Inter-integrated Circuit (I²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.

I²C 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 I²C sensors also includes an "INT" (interrupt) pin, AKA "GCLK" or "GPIO4".

To View the Current I²C 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 I²C Devices#

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

Stock Brand Description 7 bit address Notes
1 Pimoroni RGB Potentiometer 0x0E ‡ uses Nuvoton MS51
1 Pimoroni RGB Encoder 0x0F ‡ uses Nuvoton MS51
1 Pimoroni IO Expander 0x18 ‡ uses Nuvoton MS51
2 Pimoroni LSM303D 6DoF Motion Sensor 0x1D / 0x1E †
1 Pimoroni LTR-559 Light & Proximity 0x23
3 Pimoroni VL53L1X Time of Flight 0x29 range 40mm-4m
1 Adafruit VL6180X Time of Flight Distance Sensor 0x29 range 5-100mm
2 Adafruit HT0740 10A Switch 0x38 / 0x39 †
1 Adafruit INA260 Current Sensor 0x40 †
2 Pimoroni 11x7 LED Matrix 0x75 / 0x77 † 77 will be in conflict with 5x5
4 Pimoroni 5x5 RGB Matrix 0x74 / 0x77 † 77 will be in conflict with 11x7
2 Pimoroni ADS1015 +/-24V ADC 3 Channel 0x48 / 0x49 †
2 Adafruit ADS1015 12 bit ADC 4 Channel w Prog Gain 0x48 - 0x4B †
2 PiBorg Thunderborg 0x10 / 0x11 †
1 PiBorg Ultraborg 0x36
1 Pimoroni ICM20948 9-DOF Motion Sensor 0x68 / 0x69 †
1 Adafruit BNO055 IMU 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)
1 Pimoroni AS7262 6-channel Spectral Sensor (Spectrometer) 0x49 6 spectral channels (450, 500, 550, 570, 600, 650nm)

† jumper selectable ‡ software configurable

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


Tags:  Hardware