Xavier NX I2C bus is blocked?

,

Hello,

Yesterday I connected a PWM/Servo Driver (PCA9685) to the I2C bus 8 on pins 5 and 3. Everything was working great until an accidental static discharge occured from my hand to the servo driver board.

I installed i2c-tools and it appears that my Xavier NX I2C bus 8 is still working and detects my servo driver device at address 40 and address 70. However, the adafruit_servokit ServoKit method on python no longer seems to be able to move my servos. When I execute a command to change the angle of the servo, it exits normally with no errors raised but the servo does not move. Before my static charge incident, everything was functioning perfectly. I am worried I destroyed my Xavier NX.

Is my I2C bus blocked? Does anyone have any suggestions or recommendations on how I can diagnose this issue?

I tested that the PCA9685 board still works by connecting it to an Arduino Uno. The board and the servos still work.

Using this command tells me that the PCA9685 board is being detected on the I2C bus 8.

sudo i2cdetect -y -r 8

adafruit_servokit ServoKit appears to have no errors. I think it is my Xavier NX I2C bus malfunctioning, but I am unable to determine why. I also tried rebooting the Xavier NX and it did not resolve this issue. Is there something I can do to reset the bus?

Turns out I was not supplying enough power to my I2C slave device to power the servos.

Do you use the adafruit library?
I follow this video but there is an error.

kit=ServoKit(channel=16)
This line creates an error "ModuleNotfoundError: No module named ‘machine’, but this error is from python3.6…busio.py
I assume the adafruit library has problem? Just wonder which library do you use.

Thanks.

This line creates an error "ModuleNotfoundError: No module named ‘machine’, but this error is from python3.6…busio.py
I assume the adafruit library has problem? Just wonder which library do you use.

I got the exact same issue, any progress on that? the "ModuleNotfoundError: No module named ‘machine’ I just can’t find a solution to this

So to answer my own question, /usr/local/lib/python3.6/dist-packages/busio.py needs to be modified, the error is in line 59 when it tries to import the machine module, despite my best efforts, and uninstalling, reinstalling, cleaning, and making 100% sure that said module was in fact installed, I just can’t import it to any python version, I get the ModuleNotfoundError

So all you have to do is change line 59 from:
from machine import I2C as _I2C
to
from adafruit_blinka.microcontroller.generic_linux.i2c import I2C as _I2C

I need to be very clear, I have absolutely no idea of what I’m doing, but after making this one change, now it’s working.

My logic was that maybe detector.board is not detecting the jetson nano correctly, and I passed to that else statement the option of any_embedded_linux case.

Cheers!

It works. Thx