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
i2c-bcm2708
I don't know why it comes as blacklisted.
edit /etc/modules and add the lines
i2c-bcm2708
i2c-dev
This will make sure the drivers are loaded during the boot.i2c-dev
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 deviceNow you can test these changes without a reboot:
modprobe i2c-bcm2708
modprobe i2c-dev
udevadm trigger
ls -l /dev/i2c*
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
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.