Hello again all. I posted here not so long ago seeking a power solution for some servos in a project. I sorted out a supply, and I've now got sufficient power, although I'm noticing a minor problem:
In my current project, I'm running 6 continuous rotation servos and 3 standard micro servos, controlling them using just 6 pins. All of the micro servos are controlled using separate pins, and the continuous rotation servos are run in pairs, two to a pin.
I've noticed that one of the continuous rotation servos runs faster than its partner, which is a problem, as I need paired servos to run at as close to the same speed as each other as possible. I swapped it out for a different servo, just in case it was an idiosyncrasy - I know they aren't all guaranteed to run at the same speed - but I noticed the problem occurring again.
I'm not the most informed when it comes to electronics - although I'm picking more as a I go along, thanks to some great advice - but is it possible that problem is due to the servo being the first in the circuit to receive power, thus running faster than the rest?
I'm away from the project today so can't test anything out yet, but the servo's arrangement in the circuit only occurred to me earlier and I'm wondering if this is the cause of the issue. Unfortunately, I've run out of pins and cannot comparatively compensate for the speed in software; it will always receive the same control message as its partnered servo.
The next thing I was going to try was rearranging the circuit so that one of individual servos comes first. I also thought about testing my theory by switching the two servos over and seeing if the other one then becomes the faster.
As always, I'd appreciate any advice that people might have to offer. Many thanks.
I don't have a schematic, but I knocked up this Fritzing diagram as a reminder for myself. If you need more context, let me know. I understand this isn't the tidiest of things, but aside from that one servo, it works a treat: http://media.tumblr.com/tumblr_m8r5z4k1NK1r0mie4.png
Your problem is most likely nothing to do with your code or wiring. R/C servos are designed to work with internal feedback from a built-in pot that tracks with the gear train over the approx 180% travel and are very linear when operated as designed like that, that is a 1 to 2 millisec signal pulse tracks well from 0 to 180 degrees of mechanical travel.
When one modifies a R/C servo to become a continuous rotation 'servo' the pot is disconnected either mechanically or electrically. The result is that the center 50% (1.5 millisec) signal is the approx stop position and any deviation plus or minus from 1.5 millsec pulse, causes a variable speed in one direction or the other. However the deviation from stop is in no way linear and to expect two modified servos to track identically when wired to the same control signal is probably an assumption not possible. The internal servo 'tuning' were never designed to work in a continuous rotation mode as the whole take a standard R/C servo and convert it to bi-directional variable speed geared motor drive is just a popular hack and results in it not being a precision device anymore.
Thanks for the info, Lefty. Someone gave me the gist of that before, I guess it must just be coincidence that I've picked up two faster servos for the pair I'm trying to remedy, and the other two pairs are near enough balanced between each other.
For a bit of context: each pair of servos pulls a small block between two points using some thread and reels. The tension only ever gets too high with the servo I'm trying to sort out, either pulling the reel off the servo or snapping the thread.