Welcome to Synthiam!

Program robots using technologies created from industry experts. ARC is our free-to-use robot programming software that makes features like vision recognition, navigation and artificial intelligence easy.

Get Started
United Kingdom
Asked — Edited

Advice On Using Release() Command

I have a general question regarding the Release() script command. What I would like to do is to add this to some of my scripts after a Sleep() duration command to release some of my servos to save on any unnecessary servo holding strain and also to save on battery power.

But I read in a post somewhere recently (can't find the thread I saw it in at the moment) that using a "release" would cause the EZ-B to brown out and would need to be power cycled, or dis and reconnect the EZ-B's network connection, as this should only be used in an emergency.

I have tried it on a simple servo script to have a servo release at its rest position and it seemed to work ok. But before I go ahead and add more Release() commands to a lot more scripts, can anyone tell me if this would be ok to do, or would it not be advisable? Obviously a don't want to keep restarting the EZ-B every time a servo is released in a script.


United Kingdom
Thanks for the reply DJ. I thought as much, as I mentioned, I used it in a script and worked just fine (wish I could remember the thread I saw this in now). Just wanted to be sure before I added Release() to a load more scripts.

Also thanks for pointing me in the direction of the Auto Release control. I missed that one. *eyeroll*

@Steve... If anything the release() command will do the opposite of a "brown out"... The power needed to hold the servos is as the command indicates "released" leaving the battery with less of a load to contend with..

One thing about release... once you use it you will have to reset your servo speeds again or the servo(s) may not respond to any new commands...
United Kingdom
Thanks Richard. Good to know.:)
United Kingdom
I just found the thread I read it on in post #10. It was something @thetechguru wrote talking about a servo control. I thought release on the servo control or via script was the same thing, so I guess not.


Clicking Release will stop sending position information to the servo. In general, you need to restart the EZ-B after a release for that servo to take commands again. Release is used as an "emergency stop" when you have gotten into a position that is straining a servo and risking burn out.

After re-reading the other thread, I see I used the term "brown out" to try and describe what I was talking about, which I now see was the wrong term. Apologies for that.

Thanks again.
It is possible I was wrong about needing to reset after releasing. Richard R indixates that maybe just restting the servo speed will get them working again. I need to experiment to see if that resolves the issue, but I do set all the speeds in my initialization script and I am fairly certain reconnecting or re-running the script was not sufficient to bring all the servos back to life.

Hmmm, I don't think @Alan believes that entirely now... Reading it however, I can see how it could be taken out of context a little... You don't need to restart your ezb, just reset your servo speeds... Any chance was this in a thread about an ezb3? It's true though, release can be used to save a would be smoking servo....
@Alan, next to "Panic Release" in the menu bar is the Reset servo Speed option... That will get you back in business... Just wish there was a script command to reset servo speeds (Similar to the release(all) command )
@DJ... Could that be by any chance be a future script command? ResetServoSpeed(all) or something like that?
United Kingdom

The initial poster, posted five days ago and asks about the dev kit, so I'm assuming he is talking about the v4, and glad you saw what my understanding of this subject was. And agree about having a reset command. That would be a nice addition.


I'm glad you came in on this Alan, and hope you didn't mind me referring to your post. I too have an init script to set servo speeds on connection. I'll have a play about with this again tomorrow and give the Release Control that DJ mentioned a go.
Sure enough, the reset servo speed button brings all my servos back to life. I then need to re-run my initialization script because it sets them all to speed 0 and I have a bunch of them set to speed 1. Using a ServoSpeed() command in a script does not bring them all back. It will revive some, but not all, but the button does work. (I haven't tried a script that sets ServoSpeed() to 0 and then sets it to 1. That might work.

@Alan, that's why I thought ResetServoSpeed(all) would be a good idea for a script command.... That way you can release, reset all servos in one go and then set your servo speeds back to the way you want them again....

I think ServoSpeed(D0,0) might do the same as the menu button Reset servo Speeds, however you have to use this command for each and every servo you are using.... Hence my idea ResetServoSpeed(all).....:)
@RichardR, Just to valadate your idea; I've wanted a command like ResetServoSpeed quite a few times. I was surprised there was no script command for it scene there is a button on the menu bar for it.
Just starting on my new EZB4 robot with custom pan and tilt fabrication.
After I assembled everything, I started testing, works fine till I do a servo release to save battery. No more servo movement when I go back?
I learned if I reload or reconnect it works?
What has changed? Resetting servo speeds to 0 then higher works if I call it twice?
Reset servo speeds button works, but not available in script?
Now I am not in a hurry to update CaptainAnn EZB3 which uses many servo release calls!
Found this post after thinking about it. I am sure something simple like this will be resolved soon.
Steve S
@steve, there is no command for reset all servo speeds so you can try doing it one at a time... Try it and see if it works. There is a button next to panic servo release in the menu (under options) that resets all servo speeds to zero... No need to reload and reconnect....


Thank you Richard,
I have tried resetting each individual servo speed again to 0 and it worked, but had to do several times till everything worked correctly.
I also added the desired speed in script and it worked.
I do not understand why we have to start adding all these scripts?
I was not expecting to have to do all this w EZB4.
I know there are still many more advantages to EZB4, and this will be resolved.
Steve S
@Steve, not sure I understand... Why do you think the ezb4 needs more scripting? What "all these scripts" are you referring to? I assume you mean more than the ezb3 does? The panic release does the same thing to the ezb3 as it does to the ezb4....
I could release servos w EZB3 and later activate movement w/out reloading or reconnection.
I can not do that now, without extra work.
I did not mention the panic release button. You mentioned the reset servo speed button was next to the panic button.
I thought it was explained above, but I appreciate your help and trying to help me.
I am sure this will be resolved.
Thank You
Steve S
You don't have to do that with the ezb4 either.... As I mentioned in the menu bar beside the Panic servo Release is the reset servo speed command... This re-enables the servos again and resets their speed back to 0 (full speed)... No need to disconnect ezb4 or reload your project...
Thank You Richard,
I understand that, but I never had to manually go to the menu bar and choose "Reset servo speeds" before, or when my robot was running.
What has changed is the question, and there is not a script to call it.
Thank You,
Steve S