Shoulder and Arm Servos (HS-5745MG) Not Running

Hi Guys,

I bought an AL5D Without Electronics Option Robotic Arm. I am planning to interface it with NI’s Compact RIO and program the code through NI’s LabVIEW.

Architecture-wise, I had connected the Servos to a Variable DC Power supply rated at 5A and configured the output to 5V. Then I connected the signal pin to an isolated PWM Module which is capable of switching up to 1A of current per channel. I also set the voltage level of the signal at 5V similar to the supply.

I set the PWM frequency at 50 Hz and configured the duty cycle to run for an equivalent pulse width of 0.6 to 2.4ms. Initially, I am testing each motor individually (with others disconnected) just as to configure the motion range and ultimately test each individual servos. I was able to make the Wrist Rotate, Gripper, Wrist and Base Servos run correctly. Problem arose however with the HS-5745MG Digital Servos at the Shoulder and Arm. When I plug it in at the same lines I use to test the other servos, the motor stalls but doesn’t move, as if no pulse is being delivered at the signal line.

Your urgent help would be greatly appreciated on this matter as I am on a tight deadline. I am very much inclined to believe that I missed something, but is currently out of idea on what is wrong. I certainly hope that it is not a product defect since I don’t think I have the time bandwidth to send it back and request for a new one.

I’m looking forward to your replies.

Thanks,
JoshuaD

As far as I know digital servo’s need to be programmed before use. Have you programmed them yet?

Digital servos don’t need to be programmed before use. You can change the end stops and things like that via the servo programmer, but it’s not necessary.

There is one important difference between analog and digital servos. The pulse range they recognize is much narrower on a digital servo.

Analog is 500 to 2500uS.

Digital is 1100uS to 1900uS.

The digital servo will “turn on” and hold position without pulses being received. If your pulses are out of range they will be ignored.

Hi Guys,

Thanks for the reply. Yes, true, digital servos are programmable, but for this one, it explicitly said that it can be used direct from the box. So there shouldn’t be a problem with regards to that issue I suppose.

Hi Jim,

I may had not made myself clear. I’ve tested it for the entire 600us to 2400us range and it wouldn’t move. Actually, my initial testing application was using a 1500us pulse, which as a standard, should be within the working range of both servo types. Still no response.

Is there any initialization sequence needed to be done before using the unit? Or any power/voltage/current specifications that I don’t know of? Or maybe some fiddling with the internal mechanisms? Judging from the specs, the setup should work fine. I am completely dumbfounded.

I would need the arm up and running by next week. What are my options?

Thanks,
JoshuaD

Probably want to start off with a picture or two of how you have things wired… showing connections to servos, power, and jumper on the board.

Hi Eddie,

Ok… but it’s really quite straightforward isn’t it?
Red -> 5V
Black -> Common
Yellow -> Signal

5V is routed from the supply to the Signal Wire through an isolated digital output channel capable of producing pulses at a rate of 50Hz and with a resolution of up to 1us. Capacity of the channel is 1A, so I guess this shouldn’t be an issue (considering the fact that that the signal input doesn’t really nead anythin much… or does it?)

Like I said, the tester circuit (above configuration) worked for all motors aside for the two HS-5745MG. Usually at this point I would already assume that the unit is at fault, but due to the fact that the probability of 2 units of the same make and model just so happenned to both be spoilt isn’t that high, and another this is due to my deadline, I’m very much happy to believe otherwise

Thanks, your response is highly appreciated.
JoshuaD

Here is what the pulses should look like…

[code] ____ ____ ____
| | | | | |
| | | | | |
| || || |_____________________

<-A->

<-----------B-----------> [/code]

Where A=1100uS to 1900uS and B=20mS.

Are you sure this is what you are sending to the servo? An analog servo will respond to signals that are out of this range, but the digital ones are more picky. We control the 5745 routinely with the SSC-32. Your pulses must be incorrectly formatted. Do you have a scope?

Hi Jim,

Thanks for the prompt response. Very much appreciated :slight_smile:

I haven’t actually tested the pulse but I’m pretty sure that waveform would be the final result. Basically for the modules you’d only need configure two things:

frequency, which I set to 50Hz for a 20ms period.
duty cycle, which I set at a constant rate of 7.5 percent for a 1500us “high” pulse.

Just to be sure, I’d be changing the supply, module, controller and connections tomorrow and read the signals from a scope in hope that one of those is the culprit. Would inform you of the results. Anyways, if you could point out anything else that I may consider, that would be very helpful.

Again, your help is very much appreciated
Thanks
JoshuaD

first off I missed that you were doing this with a RIO and LabView and was thinking you were using an ssc-32. sorry about that.

are the servos that operate off of your output analog and only the shoulder servo digital? if that is the case then I would certainly expect the 50Hz / 20mS frame rate is the culprit.

truly a scope would be your best asset here. actually, can you configure one of the RIO pins as an input and sample that at 10us or so for a hundred ms while the servo output is running and display the data in a xy graph (signal vs time)? you are looking more for a digital logic-analyzer type signal than an analog signal.