# Why do I need to calibrate servos?

Hi,

I'm a complete noob and I'm trying to build a robotic arm with Arduino and four servos. I've managed to make the servos move by hooking them up to the Sweep program, but apparently I need to calibrate them before I put them into the arm. Why do I need to calibrate them and how do I do that? (They all take 6 volts, by the way).

Perhaps it's to establish the end points of your desired movement. Not everyone wants or needs 90 or 180 degrees of movement.

annesophie98: I'm a complete noob and I'm trying to build a robotic arm with Arduino and four servos. I've managed to make the servos move by hooking them up to the Sweep program, but apparently I need to calibrate them before I put them into the arm. Why do I need to calibrate them and how do I do that? (They all take 6 volts, by the way).

You need to know what servo value corresponds to what angle in the arm.

annesophie98: Hi,

I'm a complete noob and I'm trying to build a robotic arm with Arduino and four servos. I've managed to make the servos move by hooking them up to the Sweep program, but apparently I need to calibrate them before I put them into the arm. Why do I need to calibrate them and how do I do that? (They all take 6 volts, by the way).

I don't really know what you mean by calibrating them? Although physically a servo can only move about 180 degrees, so you want to make sure that its set in the right degree you want it to be before you physically connect it to anything.

For example lets say you wanted your arm to move up 70 degrees and also down 70 degrees, well if you stick your arm on the servo that is currently at 90 degrees, then you will definitely be able to move 70 degrees in either direction since you have 180 degrees of movement but if you connect your arm when the servo is set to say 10 degrees, you will be able to move it one way of the desired 70 degrees but not the other way since you only have 10 degrees left of motion.

Calibrate is not the correct term, rather one needs to characterize one's specific servos being used as all don't have the same total travel range and the same pulse width range to reach those end stops.

Using servo.writeMicroseconds(uS) one can with some time invested determine the exact end stops and total travel range. The arduino library of degrees of movement using the servo.write(angle) command is an abstraction that makes assumptions for servos in general rather then any particular servo.