I use the Auto Position robot skill. What is the best way in ARC to ramp a hobby servo up to speed and ramp it down to a stop? I vaguely remember a servo ramping feature being added to ARC some time ago.
For clarity, I'm talking about a standard hobby servo connected through an EZ-B (or possibly directly to the PC-I haven't decided yet). Should ramping be handled by a Robot Skill, by EZ-B firmware/hardware settings, or by ARC scripting (JavaScript/Python)? If there is a built-in servo ramp feature, which robot skill or ARC control exposes it and where can I find the setting or documentation?
Related Hardware (view all EZB hardware)
Related Robot Skills (view all robot skills)
Upgrade to ARC Pro
With Synthiam ARC Pro, you're not just programming a robot; you're shaping the future of automation, one innovative idea at a time.
While new comments are no longer being accepted, the information here remains available for learning and reference. Check the most recent comment for additional details.

Yes - ARC does have servo ramping, but the best approach depends on what kind of servo you mean and how you’re controlling it.
Short answer
For a standard hobby PWM servo on an EZ-B v4, the most practical built-in options are:
For a basic hobby servo, the EZ-B/ARC is usually not doing a true hardware "acceleration profile" like a smart servo would. Instead, ARC typically moves the servo in small increments over time, which creates the ramp effect.
Best option for hobby servos
1) Auto Position
If you’re already using Auto Position, this is usually the best place to do it.
In Auto Position:
You’ll find those settings inside the Action configuration for each transition.
How to access it
Practical starting point
Try something like:
1020 ms1000or similar non-zero valueThat gives you a smoother start and stop without making the motion too sluggish.
2) Servo Speed skill
There is also a Servo Speed skill in ARC:
This skill is handy if you want to set and experiment with a servo speed value for a specific port.
It’s not really a full "ramping profile editor," but it can help you tune how fast a servo moves.
Docs:
3) Scripted ramping
If you want full control over acceleration and deceleration, scripting is the most flexible approach.
You can ramp a servo by moving it in small degree steps with a short
sleep()between each move.Example JavaScript ramp
That gives you a controlled move up and a controlled move down.
What about "true" hardware ramping?
That usually applies to smart servos or servo controllers that support:
ARC supports those features when the hardware/driver exposes them.
For example, some smart servo systems may support:
setVelocity()setAcceleration()But for a standard hobby servo, those hardware ramp parameters generally don’t exist on the servo itself.
If you connect the hobby servo directly to the PC
If you mean directly to the PC without an EZ-B, then the answer depends on which hardware/adapter is actually driving the servo.
ARC itself doesn’t drive a hobby servo directly from the PC’s USB port unless you have an intermediate controller or supported hardware interface. In that case, the ramping behavior would still be determined by:
So for a plain hobby servo, the EZ-B plus ARC scripting or Auto Position is the normal route.
Recommendation
For your case, I’d recommend:
Useful references
If you want, I can also give you:
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
I'm very sure the SW Ramping feature in the Auto Position skill is what I am remembering. This sounds like the perfect solution I'm looking for.
Presently I have a few scripts that operate some servos. I've tried scripting ramp effects on these servos but have struggled to get a good "ramp down" effect and the timing needs to be almost exact.
Moving their control to the Frames and Actions in the AP skill should give me softer start and stop of these hobby servos.
Thanks.