top of page

Basic Assembly and Setup

Public·212 members

Jon Braverman
Jon Braverman

Servo Calibration & Control Issue

I am unboxing a pre-assembled Bittle (we purchased a number of these) and having trouble getting going.


I don't doubt that I may have missed a step, but it seems straightforward enough and there is just one anomaly here. The back left leg is not behaving as the rest are.


I can calibrate all other servos except those on the back left leg.


The system has charged for about 5 hours, I can charge it longer and measure the voltages to eliminate that if needed.





166 Views
Jason
Jason
22 апр.

I saw you are an Unknown member, so I'm not sure which video you showed before.

The servo has a backdoor signal to modify its parameters, defined by the manufacturer. The PWM signal is 2700us with a tolerance window (2650 to 2750 us). The PCA9685's internal crystal has a frequency between 23MHz and 27MHz. The standard Adafruit servo library just set it to 25MHz if not calibrated. The regular servo PWM signal ranges between 500 to 2500 us. The error (27-25)/25 = 8% usually can be tolerated by the system. But when the joint signal falls in the range of 2700us, the servo will enter the configuration mode. Only powering off will break it out of the loop.

The optional step can be a quick fix. It utilizes the input pin of the main chip, which has an accurate external crystal clock, to measure the signal from PCA9685. It compares the measured pulse width and expected value, calculates a calibrating factor, and stores it in the chip. The process can be less than 1 second or several seconds. As long as it's done once, you don't need to do it again unless the temperature changes a lot. Calibrating the signal can also make the movements more precise if you are professionals who need to conduct motion-related research.

The calibration can be applied to all the PCA9685-based servo drivers that omit an external crystal. To recalibrate, just run the first round of the program again and connect the two pins after the IMU calibration. The calibration value can be seen in Arduino's serial monitor and should be pretty consistent.

For Jon Braverman's video:

1. Please check the servo wires order.

2. Calibrate the servo driver: https://docs.petoi.com/arduino-ide/upload-sketch-for-nyboard#9.-calibrate-the-servo-controller-chip-pca9685-on-the-nyboard

3. Debug the servo as follows: https://docs.petoi.com/technical-support/faq-frequently-asked-questions#how-to-debug-the-servo

About

Discuss the assembling and solve the puzzle together!

bottom of page