Servos are probably the most popular actuator in DIY robotics today. Cheap, easy to use and easy to control, they are almost everything you want for your little robot. However, they're also quite limited, since they don't provide any feedback, or any information about how they're performing. This makes servos open loop systems, resulting in robots showing typical open loop issues.
Basically, your robot tells its servos to move to some position, and hopes they do it. Never knows whether servos have come to its target or they are stuck in the middle. Even when a servo doesn't get stuck, it's hard to predict where it actually is due to varying loads and initial conditions.
Most of the time, this is solved using an external sensor, like a potentiometer.
But some times there is no room for extra sensors in your robot, and even if there is, why bother when the servo has its own potentiometer inside?
In this tutorial, we are going to see how to access the internal potentiometer of a servo by means of a simple modification. This allows us to use the servo in advanced aplications, like closed loop control, without the need for extra sensors. Some of this uses we'll see in a later post.
So to start, lets take a look at a standard servo:
It tipically has three wires: Ground, Vcc and Pulse (usually black, red, white; In this case brown, red, orange).
Our intention is to access an internal 4th wire, the potentiometer's signal, which will tell us the excact position of the servo as an analog voltage.
Take a look at where this wire connects to the main board, because that's the spot where we are soldering the extra wire.
Now that you have located this tin point, put the electronics (with the motor) back to its place, and plug the soldering iron.
I'm not good at making holes and cutting things, so once I had finished, I decided to seal the hole with some glue and tie it to the other three wires to prevent forces around the soldering point that could eventually break it.
With this simple trick, we have hacked a standard servo into a complete actuator with position feedback. In the second part of this tutorial, we will see how to use this extra wire to characterise a mathematical model of the servo using an arduino board.