Site Tools


documentation:protocols:i2c:i2c-tools_shell

This is an old revision of the document!


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.

  • i2cdetect -l to list busses. To access each buss you have to used it's number (i2c-{NUM}) or the full string name.
  • -q and -r options are to use quick write and receive byte commands for probing. They can corrupt certain IC chips.
  • -F displays the list of functionalities available on the bus.

i2cdump

2

i2cget

3

i2cset

4

i2ctransfer

5

documentation/protocols/i2c/i2c-tools_shell.1791542435.txt.gz · Last modified: by chris