SchmalzHaus logoEBB 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 my e-mail address

Creative Commons License
EggBotBoard by Brian Schmalz is licensed under a Creative Commons Attribution 3.0 United States License.
Based on a work at www.schmalzhaus.com/EBB.
Permissions beyond the scope of this license may be available at www.schmalzhaus.com/EBB.