Digital Servo Holding position after disable

I’m hoping there’s some RC experts here on CD, because my google-fu is lacking at the moment.

We’re using a Hitec digital servo to angle our lift mechanism, on account of the looser servo rules and excellent holding torque and small deadband. My problem is that even if I turn the servo “off” it keeps holding position, unlike an analog servo. This was rather unexpected and a problem, because I want the angle to freewheel while we’re lifting, lest I break or fry something. Google tells me this is an unavoidable thing with a digital hitec. So 3 questions for CD:

  1. Do digital Futabas work this way? Are there any digital servos that freewheel on loss of signal?
  2. Is there a way to programmatically kill power to the PWM outputs?
  3. Does anyone know of a way I can abuse WPILib to get a non-PWM signal out of a RoboRIO PWM port? Then I might be able pull a reset signal out of the servo programmer and figure out how to send it to the servo.

Yes, I’ll be buying an adequate analog servo in case you guys can’t solve my problem, but I’m kinda hoping you can.

  1. Nope, not in C++ or Java at least, probably not in LV.
  2. Nope, the FPGA has those pins as PWM so not going to get far there. You may be able to with the MXP PWM pins because they’re multiplexed, but you can’t attach a servo to them so that doesn’t help much.

How exactly are you turning “off” the servo? While I’m not familiar with the exact details, I’d guess that if you killed power to the entire servo instead of just the control line, you’d see no resistance (beyond backdrive torque) and should be able to achieve what you want. Maybe you can put the servo on a relay of some sort? Not sure if that complies with electrical rules this year though.

R54 says servos must be connected only to the PWM port or through a wcp Spartan board. So no relay for me, this the question about killing onboard 6v.

Turning the servo “off” was supposed to happen with Servo.SetOffline() witch kills PWM to that port. Works great with speed controllers and analog servos. Apparently not great with hitec digital servos. Still waiting to hear from you guys or servocity about other digital servos.

You can try to find a servo with a failsafe setting. Try ‘failsafe’ as a keyword on Google and it might give you better results.

Your Q&A question will not do what you think. The PWM ports on the Spartan board are a straight passthrough of the roboRIO PWM pins, killing power to the board will not affect the PWM pins.

I was assuming those PWMs were separately powered, else why is the Spartan the only MXP board that you can connect servos to?

Do you have a schematic or a board in front of you to confirm that?

We had this problem with the servo on our hood until we got a Hitec servo compatible with this guy so we could reprogram it: https://www.servocity.com/html/hpp-21_servo_programmer.html#.VvVqMJYrKL8

Bought that programmer with the HS-7954SH servo. If I turn fail safe off, it freezes in place when it loses signal. If I turn fail safe on, it servos to the fall safe position and holds there. Doesn’t seem to be a setting to kill it when it loses signal. Maybe different hitec servos can do different things.

Anyways, my solution has been to buy another servo. Servocity says futaba digital servos just die when they lose signal. Those weren’t available around town, but Savox were. I can personally confirm the Savox die when they lose signal. It looks like just hitec hold position.

i am spit baling here as this is little out my league but could a simple fix be attaching a spring to the servo to overpower it every-time you cut power to it or turn it off. we did this on our scalier as a break so that if we dont get up high enough when the match ends and they cut the power the spring will take affect turning the servo to place the break mechanism on the scalier.

Unless I’m misreading the previous posts, the problem is this:

  1. A way to cut the power has not been identified, and

  2. When the signal is turned off, the servo tries to hold the last commanded position.

Assuming the above is correct, if you add a spring load sufficient to overcome the servo, all you’ll do is prevent the servo from moving and possibly burn out the motor.

This is correct for the Hitec digital servos. At this point we’ve solved our problem by buying a Savox servo, so this thread should now mostly be seen as informative for anyone that does/doesn’t want a servo that will hold its last commanded position after it’s lost signal. I need to test tomorrow if the hitec holds position even in Disabled, because I’m sure that would be a fascinating feature to some teams. For instance, IF it holds position, it means who716 could have gotten a hitec programmer and set his brake position as failsafe, and the brake would automatically engage at the end of the match.

that what i thought but it turns out that the servo is strong enough to pull the spring, but without power the spring pulls it back.