Welcome to Synthiam!

The easiest way to program the most powerful robots. Use technologies by leading industry experts. ARC is a free-to-use robot programming software that makes servo automation, computer vision, autonomous navigation, and artificial intelligence easy.

Get Started
Asked — Edited

How A Servo Works

This is a short tutorial on how a servo works at an electrical level. The position of a servo is determined by the pulse, which is normally between 1ms and 2ms. However, many servos have different ranges that can even be 0.5ms and 2.5ms. The EZ-B supports a wide range by providing 0.5ms to 2.5ms.

The pulses are looped every 20ms (which means 5 pulses per second)


Upgrade to ARC Pro

Get access to the latest features and updates with ARC Early Access edition. You'll have everything that's needed to unleash your robot's potential!

Now to describe how to get the resolution of the servo postions. Before I received my ez-b I programmed a HC12 using OCM to control the servo I had, I only managed to get 8 servo positions out of the OCM, it was a nice lesson in servo control. Then I used Hyper Terminal to increase, decrease, high, center and low positon the servo through keyboard presses. Love your oscilliscope, I need one of those.
The different servo positions depend on the length of the pulse. The pulse is between 1ms-2ms .. So a pulse of 1.5ms would put the servo in the center position. A pulse of 1.25ms would put the servo in 1/4 position. A pulse of 1.75ms would put the servo in 3/4 position. Etc...

So if you can imagine how fast the little processors must run to pulse the outputs that quickly. We're talking microseconds!