Enabling I2C on Raspbian
This is a quick guide to enabling I2C support on the Raspberry PI operating system Raspbian. This may work on the other Linux based distros available for the Pi but I have not checked.
sudo apt-get update sudo apt-get install python-smbus
Next we need to enable the kernel drivers for I2C, by default the drivers are blacklisted so we must un-comment the lines that include “i2c-bcm2708”
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Then add the kernel module “i2c-dev” to /etc/modules
sudo nano /etc/modules
Then finally reboot the Pi
sudo reboot
Using the I2C Command Line Tools
The i2c-tools package provide a number tools for operating on the I2C bus using the command line. The first is i2cdetect which scans the bus for devices and then prints an address map.
i2cdetect -y 1
The next is i2cset, this is a tool that allows you to set register values on an I2C device. The first argument after the bus is the chip address, then the register address and finally the value to write. All of the arguments are in decimal.
i2cset -y 1 <chip> <addr> <value>
The opposite to the set command is i2cget, this reads a register on an I2C device.
i2cget -y 1 <chip> <addr>
Another tool is i2cdump which reads out all of the registers of a I2C device.
i2cdump -y 1 <chip>i2c kernel linux raspberry pi smbus