EBB Command FAQ
EBB Command FAQ
Q1) How can I calculate how
long it will take to move from one RC servo position to another?
Specifically in relation to the standard pen-arm servo that is
activated with the SP,1 and SP,0 commands.
A1) By default, with
the latest version of EBB firmware (v2.1.5), we add (or subtract)
the rate value from the current pulse duration every time the
pulse fires until the current pulse duration equals the target
duration. Normally we have 8 servo channels available, and each
gets 3 ms, so that means that each channel can fire once every
24ms. So the rate value gets added or subtracted from the current
pulse duration every 24ms.
For example, if you're currently at a position
(pulse duration) of 10000 and you send a new command to move to
position 15000, then you have a 'distance' of 5000 to go. So
when we start out, our current duration is 10000 and our target
is 15000. If our rate value is 100, then it will take 50 of
these 24ms periods to get from 10000 to 15000, or 1.2seconds
total.
Now, when you're using the SP,0 and SP,1 commands,
the servo_min (defaults to 16000, or 1.3ms) and servo_max
(defaults to 20000, or 1.6ms) get used as the positions. And the
servo_rate_up and servo_rate_down get used as the rates.
So the formula is as follows:
((<servo_max> - <servo_min>) *
.024)/<servo_rate> = total time to move
For the example above
((15000 - 10000) * .024)/100 = 1.2 seconds
Questions? E-mail me at