I can't help to get my I2C device (an Adafruit Pi Plate I just bought and built) to work in my Raspbian machine. Although the command sudo modprobe i2c-bcm2708 showed no errors, something strange appears in dmesg:

[  275.580368] bcm2708_i2c_init_pinmode(0,0)
[  275.580401] bcm2708_i2c_init_pinmode(0,1)
[  275.580490] bcm2708_i2c bcm2708_i2c.0: could not add I2C adapter: -16
[  275.580551] bcm2708_i2c: probe of bcm2708_i2c.0 failed with error -16
[  275.580607] bcm2708_i2c_init_pinmode(1,2)
[  275.580622] bcm2708_i2c_init_pinmode(1,3)
[  275.580686] bcm2708_i2c bcm2708_i2c.1: could not add I2C adapter: -16
[  275.580732] bcm2708_i2c: probe of bcm2708_i2c.1 failed with error -16

After a lot of research, I've found that the loading fails if my DVB adapter, an Asus My Cinema U3000 Mini, is plugged in. If I unplug it, dmesg shows

[   12.331518] bcm2708_i2c_init_pinmode(0,0)
[   12.337053] bcm2708_i2c_init_pinmode(0,1)
[   12.345332] bcm2708_i2c bcm2708_i2c.0: BSC0 Controller at 0x20205000 (irq 79) (baudrate 100000)
[   12.357036] bcm2708_i2c_init_pinmode(1,2)
[   12.369518] bcm2708_i2c_init_pinmode(1,3)
[   12.379588] bcm2708_i2c bcm2708_i2c.1: BSC1 Controller at 0x20804000 (irq 79) (baudrate 100000)

and the example program runs flawlessly.

The same happens if I add i2c-bcm2708 and i2c-dev in /etc/modules. So it looks like the load order is not important.

How can I get both the I2C bus and the DVB adapter work on the same machine?


The i2c-bcm2708 is blacklisted by default in Raspbian.

Remove or comment out the blacklist i2c-bcm2708 line in /etc/modprobe.d/raspi-blacklist.conf, and keep loading i2c-bcm2708 in /etc/modules. This way, i2c-bcm2708 is loaded before any other USB device, including the Asus U3000.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.