Go Down

Topic: Any trick to getting Hitec DIGITAL servos to work with Arduino? (Read 3537 times) previous topic - next topic

168gr


Because I'm ready to stick a fork in my eye to distract myself from the pain of getting this to work.

I've got a couple of Hitec servos, a cheap standard one (a HS-311) and an expensive super-torquey digital one (a HS-7950TH).

Using an Arduino Mega and the Adafruit motor shield (here) the HS-311 works fine on the Servo 1 pins.

If I plug the HS-7950TH into the same pins, it won't move.

The HS-7950TH works fine when plugged into Hitec's servo programmer/tester (HPP-21Plus) and a NiMH battery.

The Hitec web site (FAQ) states "Hitec digital servos will perform like standard servos out of the box. It is not required to program them before use."  I expected it to just work when plugged in.

Hitec's tech support said they don't know anything about Arduinos and blamed the Arduino, suggesting that possibly the Arduino couldn't provide the necessary current.  I am using an external power supply for the servo; the same NiMH battery that powers it with the tester.  So that's not it.

I did all my software debugging with the cheap HS-311 so I'm about 98% certain the fault isn't the Arduino's ... I'd just use the HS-311 but I actually need every bit of torque from the HS-7950TH.


Any ideas?

zoomkat

Quote
I am using an external power supply for the servo; the same NiMH battery that powers it with the tester.  So that's not it.
Do you have the servo and arduino grounds connected together like below?
Google forum search: Use Google Search box in upper right side of this page.
Why I like my 2005 Rio Yellow Honda S2000  https://www.youtube.com/watch?v=pWjMvrkUqX0

keeper63

What external power supply are you using with the Adafruit motor shield when you run the HS-311 (if you say "none" - there's your problem).
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

168gr

Do you have the servo and arduino grounds connected together like below?
Yes.


What external power supply are you using with the Adafruit motor shield when you run the HS-311 (if you say "none" - there's your problem).
It's a 3000 mAh NiMH battery.



Again, this WORKS with the HS-311 but not the HS-7950TH.

I'm trying to figure out why the HS-311 works but the HS-7950TH won't.

The HS-7950TH runs fine with the same 3000 mAh NiMH battery and the HPP-21Plus servo programmer.

zoomkat

I think servo testers only use the 45-135 deg control range. Is this the range being used in your arduino code?
Google forum search: Use Google Search box in upper right side of this page.
Why I like my 2005 Rio Yellow Honda S2000  https://www.youtube.com/watch?v=pWjMvrkUqX0

michinyon

According to the link you posted,   unless modified that servo will respond to pulse widths from 1500 to 1900 microseconds only.

To test it,  I would suggest trying to set it to an angle which corresponds to a pulse duration in that range.

michinyon

Quote
but I actually need every bit of torque from the HS-7950TH.
This might be your problem.   Servo specifications are known to be "ambitious".   Try testing it, without 55 "kg-cm" of load on it.

What voltage is your battery ?

When you connect it,  does it do anything at all ?   (  Humm,  buzz,  click,  twitch ? )

168gr

According to the link you posted,   unless modified that servo will respond to pulse widths from 1500 to 1900 microseconds only.

To test it,  I would suggest trying to set it to an angle which corresponds to a pulse duration in that range.
That was it.

My test code was running the servo back and forth from 5 to 175 degrees.  Servo did nothing, didn't even hum ... didn't occur to me to try a different range.

Tried some in the middle, and it works.

I figured it would be something trivially simple.

Thank you for your help.  :-)

MarkT

Loading a servo to its maximum torque will fry it, you need to allow a reasonable
overhead so its not pulling amps all the time.  The idea is the torque overhead is
only needed to accelerate the load briefly and the average motor current is fairly
low.  If you want high duty cycle you'll need a servo in a metal case so the heat
can escape as a start....
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

168gr

Loading a servo to its maximum torque will fry it, you need to allow a reasonable
overhead so its not pulling amps all the time.  The idea is the torque overhead is
only needed to accelerate the load briefly and the average motor current is fairly
low.  If you want high duty cycle you'll need a servo in a metal case so the heat
can escape as a start....
This particular servo turns a gear that basically shovels gritty sandy stuff.  It doesn't need much torque except for the very, very short period of time that an aperture is closing, and only if some material is 1/2 way in.

Actually the wimpy little HS-311 and its 51 oz-in usually works fine, but about 10% of the time it gets stuck because it lacks the oomph to overcome that random grain getting sort of stuck in the way.  The HS-7950TH has almost 10x as much torque and so it powers through that sticking point pretty easily, but there's no load on it at either its starting or ending points.

It's probably overkill for the project, but I like overkill and I don't think I'd like even a 1% got-stuck rate.  :)

Thanks for the help.

Go Up