Making Sense of the Values in UscCmd

When I use Pololu Maestro Control Center I can achieve about 180 degrees of rotation with a low value of about 500 and a high value of about 2,500.

When I use UscCmd I get the same 180 degree rotation with values of about 2,200 to 9,300. The center value also does not seem to be linear since 5,600 is the center.

How do the values used in UscCmd relate to the values in the Pololu Maestro Control Center program?


Hello, Mark.

The target value that UscCmd takes is in units of quarter-microseconds, which is the native units of the Maestro. The range values of each servo channel in the Maestro Control Center are in microseconds (i.e. 2500 microseconds is represented as 10000 quarter-microseconds). Multiplying the values you gave, 500 and 2500, by 4 gives you values of 2000 and 10000, which are close to what you measured for 180° when using the UscCmd program (2200 and 9300).

In case you did not already know and for others reading this post, it should be noted that the pulse width range will vary from servo to servo, even the same type of servo, so each servo needs to be tested individually to determine its range. (For a way to determine the maximum range of a servo, please see the “How do I use my Maestro servo controller to get the maximum possible range of motion from my servo” FAQ under the “FAQs” tab on any of our Maestro servo controller product pages.)

- Amanda

Thanks Amanda!

I will send you a picture soon of my “invention” that will turn knobs on my sunroom heating/cooling system.

It is very much appreciated to be able to get such great answers.