Hi, I am using the Maestro 12 to control 8 servos (following plans for a 3D printed Rubick’s Cube solver robot @ http://www.otvinta.com/download12.html).
I have gotten the Maestro to work with either Windows, Linux or Raspberry Pi.
One issue is synchronizing (any) two DS3218 servos. I need to sometimes turn two DS3218 servos in opposite directions, because these two servos are connected to a Rubick’s Cube together (facing each other). I noticed that opposite servos do not always turn at the same time (one servo may start after a delay, while another servo starts turning immediately).
I am using the Maestro’s serial servo commands documented under:
“Set Multiple Targets (Mini Maestro 12, 18, and 24 only)” @
in order to turn two (or more) servos at the same time.
This problem can also be observed in the Windows Maestro Control Center SW.
If I create two sequences, and play them in a loop, I expect all 4 servos to move in unison (back and forth).
Is this a servo problem? Should I purchase more servos and find which ones that have matching performance?
How does Maestro servo controller handle each servo? Does it treat each servo independently? If one servo is slow to respond, does the Maestro servo controller pause only the slow servo? or does it pause ALL servos to guarantee synchronization?
Can you quantify the delay between your servos starting to move? I expect the difference in time between the servo channels being updated to be very difficult to notice in either of the cases you described (e.g. using “Set Multiple Targets” or a sequence). Could you post your Maestro settings file? You can save your settings file by selecting the “Save settings file…” button within the “File” drop-down menu in the Maestro Control Center. A video showing the problem might be helpful as well.
Once receiving the “Set Multiple Targets” command, the Maestro will update each of the specified servo channels sequentially as quickly as it can. This command functions essentially the same as updating the servo channels one at a time, but should have a faster update rate (especially with a larger number of servos) since it does not require as many bytes. By the way, I am not sure what you mean when you mention a servo being “slow to respond”, but since servos do not make their internal position feedback available, the Maestro cannot monitor the servo positions.
Thanks for the assistance. I don’t have much servo experience, so I may be making a newbie mistake.
The servo’s voltage is 6.0V (as seen in the video below). I tried running it at 6.8V (the maximum) with no difference in behavior.
Below is a picture of my DS3218 20KG servo
Here is a video of my servos in action:
Here is my maestro_settings.txt:
maestro_settings.txt (2.7 KB)
Thank you for posting a video and your settings file. The sequence you are running looks fine; you can monitor what the Maestro channels are sending to the servos by looking at the “Status” tab of the Maestro Control Center while the sequence is looping.
I suspect the problem is either with the servos or the power supply. I could not find any current draw specifications for those servos with a quick Internet search, but they look like they could draw quite a bit. You might try the servos one at a time using the sliders in the “Status” tab of the Maestro Configuration Utility to see if they still have the same odd behavior (e.g. the stutter/hesitation when starting to move). Do you have any other servos you could test with?
Have you manage to solve the issue?