Table of Contents

Bash Shell Interface for I2C

On the kernel level, I2C communication is handled by the i2c-dev kernel driver. On the lowest level, the bus is seen as a file and using a file descriptor one can read from it or write to it. The shell interface is a set of compiled programs that wrap this functionality for specific uses at a higher level. The intended use is interactive debugging to see if something works or not. For programmatic use it's better to take a look at the C API for C/C++ and the smbus2 library for Python.

These programs are part of the i2c-tools package that usually comes preinstalled in most Linux distributions.

i2cdetect

Detects I2C chips. Use: i2cdetect [options] i2cbus [first_addr last_addr]. Special flags that don't require a given i2cbus are -V that prints the current version and -l.

i2cdump

Examines registers on the I2C bus. Use: i2cdump [options] i2cbus address [mode [bank [bankreg]]]

Use of i2cdump is not advised unless you have intimate knowledge of the IC you're accessing. It's very easy to corrupt stuff.

i2cget

3

i2cset

4

i2ctransfer

5