Monday, November 19, 2012

Raspberry Pi I2C

I have a Raspberry Pi and lets face it, who doesn't?

I have played with linux on many architectures before including PPC, Hitachi, MIPS, PA-RISC and Sparc so I figure I had better have a go at ARM too.

Apart from playing around, I plan to create a light controller module for my garden lights. This will require some hardware hacking which is always a bit of fun but my main plan is to bring it together with some fancy software.

In previous projects I have interfaced with GPIO and I2C to run door controllers and read swipe cards (Mostly on the WRT54G).

I could not find accurate instructions for getting I2C going on the rpi so here are my instructions for users for raspbian:

Install some tools
# apt-get install i2c-tools

edit  /etc/modprobe.d/raspi-blacklist.conf and comment out the line


I don't know why it comes as blacklisted.

edit /etc/modules and add the lines
This will make sure the drivers are loaded during the boot.

create a file /etc/udev/rules.d/99-i2c.rules and add the line
SUBSYSTEM=="i2c-dev", MODE="0666"
This will give all users access to the i2c devices. You could instead set the owner or group but the rpi is not normally being used as a multi-user device

Now you can test these changes without a reboot:
modprobe i2c-bcm2708
modprobe i2c-dev
udevadm trigger
ls -l /dev/i2c*

And you should see output like this (Your date will be different):
crw-rw-rwT 1 root i2c 89, 0 Nov 18 22:36 /dev/i2c-0
crw-rw-rwT 1 root i2c 89, 1 Nov 18 22:36 /dev/i2c-1

If that works, reboot and run the ls again. The devices should be there and have world read/write permissions.

Now, to connect up some hardware and show that it works. Look for a new blog soon.


  1. Thanks for posting this! Did not know about 99-i2c.rules, and the ability to have those permissions set on boot.

  2. I recommend reading it to the end. Rita

  3. The information you shared is very helpful to us. friv 4 school

  4. Raspberry Pi 3 supports I2C communication. ... In this post, we will make a simple I2C demonstration with Raspberry Pi3 as a single master and two Arduino UNO devices as slaves. So this will be a single master, two slave setup--Click here

  5. Very good post . I certainly love this ưdownload. Keep writing!

  6. Thank you for sharing this relevant content.

  7. great site information, I am having an issue with the mother board of my mini computer.And I don't know how to fix it. Feels great I have this information.

  8. great site information, Glad that I found this! Plumber Near Me

  9. I think this information that you have shared with us is really worth sharing. Thank you for this. - Best Dumpster Rental

  10. Wow, these are actually great information about Linux. I am actually doing a dual boot up and I hope that this information that you've just shared is also going to work on my computer. Thank you again,

  11. So that's how it is fixed. Thanks for this, we will use this on our site here:

  12. This comment has been removed by the author.

  13. recently switched to linux! I'm really dumbfounded and I don't know which is which. Thanks for sharing this. Cheers from us at