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.
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.
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?
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
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?
Thanks for the prompt response. Very much appreciated
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.