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

Become a Synthiam ARC Pro subscriber to unleash the power of easy and powerful robot programming

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!