Duet servo inaccuracy problems
adistr last edited by
Hello, I connected Panasonic's servo to my Duet 2.
I have a strange problem with inaccuracy.
When I move with the head for the first time to point A it reaches a certain point and when I do a round trip to the same point it reaches another point (B).
When I do the round trip again it gets to point (B) again.
The gcode command is the same all the times.
What could be the reason for the inaccuracy and inconsistency?
JoergS5 last edited by
@adistr I see two possible main reasons: wrong gear setting (M92) or backlash. Backlash comes from play in gear between teeth e.g. Inside servos (if you mean a hobby servo) are gears, often plastic, sometimes metal based.
adistr last edited by
Hi, Mט M92 are fine (checked this), and also it seems that there is no problem in the servo.
The problem I mentioned is consistent and not random.
My command is fixed G1 Y106.0
The first time it misses (movement at a short distance - 100 mm) and then at all times it returns exactly to the same point (movement at a slightly longer distance of 200 mm).
dc42 administrators last edited by
@adistr "the first time" - after what?
JoergS5 last edited by JoergS5
@adistr if it's based on a hardware problem, it would be good to see a picture of the stepper, gear and belt/screw, depending on how you implemented it. If it's based on a firmware problem, it would be good to know which controller is used, whether it is used through an expension card, how the config.g file looks like and which firmware version is used. From your description I expect that it is not a hobby servo, but a "normal" one.
mendenmh last edited by
If you write a short gcode, you can test to see if this is a dead-band issue in the servo. Try starting at zero, moving to 95, then 100, for example. Then, go back to zero and move directly to 100. See if you end up in the same place. You may have to adjust the number to see the dead-band.
Long and short moves on a servo can end up at slightly different places, unless the dead-band is set to zero, in which case the servo tends to vibrate when it is supposed to be holding.