Might be an I2c issue

I am using a 16-Chanel PWM board to control servo motor.
And I use this code to test whether my servo is okay:

import smbus
import time

bus = smbus.SMBus(8)
address = 0x2D


def move(servo, angle):
    bus.write_byte_data(address, servo, angle)
    time.sleep(0.05)
while True:
    for i in range(0, 90, 1):
        move(8,i)
    for i in range(90, 0, -1):
        move(8,i)

If everything goes well, the servo would runing from 0 to 90 and 90 to 0 over and over again. But in fact the servo stopped after serveral times of loop, ended with ‘OSError: [Errno 121] Remote I/O error’. And I found it strange that if I pick up my servo and shake it, the error comes much more earlier than if I put my servo on my desk. And sometimes the code ended with another error ‘BlockingIOError: [Errno 11] Resource temporarily unavailable’.
I don’t know how to solve this problem, because I don’t know what caused this issue.

Sorry for the late response, is this still an issue to support? Thanks

Which port/pins of Xavier did you use for this? Have you probe the output signals from Xavier to motor to make sure that is correct?

Yes, I need more support lol

Pin1 for VCC, Pin 6 for GND, Pin 3 for SDA, Pin 6 for SCL. Haven’t probe the output signals.

Assume you are using pin 5 for SCL, pin 6 for GND. Please probe signals first.

Oh sorry, and yes, pin 5 for SCL.
By the way, what kind of signal should I probe and how to do this?

You can use oscilloscope to probe SDA and SCL waveform. Do you familiar with I2C port? Also you should check the connection lines to the motor, there are some requests on I2C lines.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.