I am trying to use Pololu Micro Maestro to control two digital servos but I am not able to reach to extreme ends on either side, i.e. range of motion is limited between about 10 to 170 degrees. However for my application it is important to have motion from 0 to 180 degrees.
When I tried a analog servo, I am able to reach all the positions. Please note that I have tried a very low min and high max position from Channel Settings tab but still not able to do. For example, I used 556 and 3000 as min-max settings on channel 0, but my servo moves only between 756 and 2351 and that too corresponding to about 10 and 170 degrees.
Please note that I have tried two different digital servo but got the same results. The servos I am trying to use are -
Digital (both moving from 10 to 170)
Hitec HS7980TH (responding to range between 756 and 2351)
Hitech HS5645MG (responding to range between 740 and 2248)
Analog(moving in full range)
Hitec HS311 (560 to 2448)
Please suggest me whats wrong here? I am using 6 volts as power supply. I have to use LabView as the final controller. I have already build the vi for it and I am getting the exactly same response from LabView.
What are the servos doing once you’re sending commands past where the servos will go? If it sounds like they’re straining, you should definitely disconnect power or send them back to an in-range position to avoid destroying the servo. In any case, this isn’t something you can do anything about from the servo controller, and it doesn’t have anything to do with the servos being digital or analog: servos just don’t necessarily have 180 degrees of range. Do you know the servos are capable of 180-degree range? Some digital servos let you configure some parameters like the range, so you should see if the servos you have can be adjusted or programmed. For instance, the servo might have 180 degrees available mechanically, but the servo is set to ignore commands past the last 10 degrees to limit the likelihood of the servo destroying itself by crashing into the mechanical limit.
Nothing. There is no straining or humming from the servo. They simply stop at the position.
I remember using HS 5645 MG Digital servo with ATMega 16 microcontroller earlier for my other project and I was able to move the servo right from 0 to 180. But I am not able to do it with PC.
Yes, mechanically all these servos have same range. I believe these servo should be able to move all 180 degrees.
I will try to contact the manufacturer if they have set such limit on these servos. Meanwhile, if you can suggest something, please do. I need to make them work. If anyone have encounter similar problem, please share!
The 8-bit settings described in the user’s guide determine the response to Mini-SSC commands. Note that using these commands will not allow you do anything beyond the min and max that you have configured for each channel; there is no reason to expect a greater range with Mini-SSC than with the standard protocol.
As said that I am facing this problem with both servos, HS 7980 TH and HS 5645MG. And I was able to rotate full 180 degree motion with HS5645MG using ATMega16 microcontroller. I have not tried HS7980TH yet.
You still think it might be servo problem? If yes, then why it is responding to ATMega16? I am still so much confused about it. On other hand, analog servo is working absolutely fine with Maestro.
I will try with Mini SSC Protocol with settings as you have suggested.
Do you have access to an oscilloscope to look at the signal you’re generating on the ATmega16 and to compare it to what’s coming out of the servo controller? Does the particular servo you’re using with the Maestro work with your own pulse generation? (If not, I think it could be this issue of servo variation or the servo being configured differently.)
No, I do not have access to an oscilloscope. I have used HiTec Hs5645MG with ATMega16 micro and was able to get 0 to 180. Now, when I tried using the exact same servo with Micro Maestro it is giving me 10 to 170.
HiTec guy responded, he is saying these both digital servos are capable of rotating full 180 degrees. He is saying that it might be related to resolution. I could not understand what he meant. I have replied him back and waiting for his response.
It’s hard to tell much from what you’re saying, but it sounds like HiTec guy is giving you a BS or useless response. A quick search for that servo makes it seems like the end points are adjustable, so if it just stops responding to pulses widths past some point, it seems like that’s the issue. You talk about the ATmega16 approach being in the past; can you get that hooked up again to make the servo do 180 degrees right now?
Thank you very much for your response again.I had a discussion with one of student here who had worked in lab. He also asked me to use o’scope and read pulse from both, maestro and ATMega16. As of now, I am short of ATMega16 programmer so can not try right away. I should be able to do it on Tuesday.
HiTec guy responded again and asked me to use to HiTec PC Programmer HPP-21 and configure the end points, just like you said.
It look like I need to buy a programmer too. I will keep you posted if I am solve this problem.