I2C Access Issues

Hello all,

I’m having issues with my I2C interface between the Xavier and an Adafruit PCA9685 driver.
Because I am using a ROS node, I need to access the PCA9685 without root.

I ran these commands, hoping this would allow me access:

>sudo groupadd i2c
>sudo chown :i2c /dev/i2c-1
>sudo chmod g+rw /dev/i2c-1
>sudo usermod -aG i2c myusername

Then logged out, and in again.
I suddenly lost access to the servo driver.
I get an “access denied” message everytime I try to run my code, and the driver no longer shows up when I scan with the “i2cdetect” command.
If I create a new user account, and try my code (with sudo) it works… And I also see it with “i2cdetect”
What did I do wrong?

Can you tell what’s is ROS node?

Hi Shane, I’m using a custom node, basically I’m subscribing to data that is being sent from the arrow keys on my keyboard. This data is then used to move the servo through the Adafruit driver.

Here is the tutorial I was using for the sub/pub structure of the nodes: http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber(python)

So, the issue was that the PCA9685 has a default address of 0x40. Another device was attempting to use this same address, so the 9685 moved to 0x70 for some reason. By soldering the physical slots near the top of the board, we were able to change the physical address to 0x44, and then after changing the addresses in our code, it ran without a hitch.