I2C Usage

This guide will show you how to access the I2C interface with ADB command.

Connections

I2C A
Sensor SCL <-> I2C_SCK_A (PIN 22)
Sensor SDA <-> I2C_SDA_A (PIN 23)
Sensor GND <-> GND
Sensor VCC <-> 5V or 3.3V //depends on external device power requirement
I2C B
Sensor SCL <-> I2C_SCK_B (PIN 25)
Sensor SDA <-> I2C_SDA_B (PIN 26)
Sensor GND <-> GND
Sensor VCC <-> 5V or 3.3V //depends on external device power requirement

I2C A
Sensor SCL <-> I2C_SCK_A (PIN 22)
Sensor SDA <-> I2C_SDA_A (PIN 23)
Sensor GND <-> GND
Sensor VCC <-> 5V or 3.3V //depends on external device power requirement
I2C B
Sensor SCL <-> I2C_SCK_B (PIN 25)
Sensor SDA <-> I2C_SDA_B (PIN 26)
Sensor GND <-> GND
Sensor VCC <-> 5V or 3.3V //depends on external device power requirement

I2C 3
Sensor SCL <-> I2C0_SCK (PIN 22)
Sensor SDA <-> I2C0_SDA (PIN 23)
Sensor GND <-> GND
Sensor VCC <-> 5V or 3.3V //depends on external device power requirement
I2C 4
Sensor SCL <-> I2C1_SCK (PIN 25)
Sensor SDA <-> I2C1_SDA (PIN 26)
Sensor GND <-> GND
Sensor VCC <-> 5V or 3.3V //depends on external device power requirement

I2C A
Sensor SCL <-> I2C1_SCK (PIN 25)
Sensor SDA <-> I2C1_SDA (PIN 26)
Sensor GND <-> GND
Sensor VCC <-> 5V or 3.3V //depends on external device power requirement

I2C F
Sensor SCL <-> I2C0_SCK (PIN 22)
Sensor SDA <-> I2C0_SDA (PIN 23)
Sensor GND <-> GND
Sensor VCC <-> 5V or 3.3V //depends on external device power requirement

Device Detection

Detect device on I2C A:

1
2
3
4
5
6
7
8
9
10
# i2cdetect -y -r 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- 1d -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Detect device on I2C B:

1
2
3
4
5
6
7
8
9
10
# i2cdetect -y -r 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- 51 -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

If the wiring is correct and the connected sensor is functioning normally, then you will see the address of the connected device, such as: 0x1d, 0x18 and 0x51.

Detect device on I2C A:

1
2
3
4
5
6
7
8
9
10
# i2cdetect -y -r 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- 1d -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Detect device on I2C B:

1
2
3
4
5
6
7
8
9
10
# i2cdetect -y -r 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- 51 -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

If the wiring is correct and the connected sensor is functioning normally, then you will see the address of the connected device, such as: 0x1d, 0x18 and 0x51.

Detect device on I2C 3:

1
2
3
4
5
6
7
8
9
10
# i2cdetect -y -r 3
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Detect device on I2C 4:

1
2
3
4
5
6
7
8
9
10
# i2cdetect -y -r 4
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- 0e --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: UU -- 22 -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

If the wiring is correct and the connected sensor is functioning normally, then you will see the address of the connected device, such as: 0x0e and 0x22.

Detect device on I2C A:

1
2
3
4
5
6
7
8
9
10
# i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Detect device on I2C F:

1
2
3
4
5
6
7
8
9
10
# i2cdetect -y 5
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- UU -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Read the Value of the Device Register

Read the device connected to the I2C A bus, whose device address is 0x1d and register address is 0x0d.

1
# i2cget -f -y 1 0x1d 0x0d

Read the device connected to the I2C A bus, whose device address is 0x1d and register address is 0x0d.

1
# i2cget -f -y 1 0x1d 0x0d

Read the device connected to the I2C 3 bus, whose device address is 0x1d and register address is 0x0d.

1
# i2cget -f -y 3 0x1d 0x0d

Read the device connected to the I2C A bus, whose device address is 0x1d and register address is 0x0d.

1
# i2cget -y 0 0x1d 0x0d
Note

Executing ADB commands require root privileges

For more information, please refer to the I2C tool documentation.