Belgium
Asked — Edited

Feetech Fs6535m Servo

Hi all, I'm new into EZB and electronics, so looking for a bit of help.

I own a EZB4/2 to control my Inmoov project. For the head I need a strong servo, so I've got a Feetech FS6535M. (https://www.robotshop.com/en/fs6535m-giant-scale-servo-motor-cw-rotation.html) When attached to the EZB and trying this to go from 0 to 180 degrees, I've found that on both sides I didn't get the full stretch. Trying to find out what was wrong, I searched the net further and found this: (https://www.robotshop.com/community/forum/t/fs6535m-servo/27951)

quote: We just tested it to make sure and yes you can have a full 180deg with signal from 500us to 2500us. unquote

When i went looking for more info on EZB, I found this: (https://synthiam.com/Community/Tutorials/48?courseId=1#part1a)

quote: The EZ-B has timing below 1ms and above 2ms to accommodate all servo types. Some servos do not fall within the specifications and require unusual timing. When testing with your servo, make sure you recognize the max and min values and set them in the control. unquote

500 us = 0.5 ms 2500 us = 2.5 ms

So I think it might be due to EZB that I'm not getting the full 180* stretch.

1/ is my "logic thinking" correct? 2/ is there a way to adjust this or do I need other servo's?

Thank you all. Have fun with your robot projects.

User-inserted image

User-inserted image


ARC Pro

Upgrade to ARC Pro

Unleash your creativity with the power of easy robot programming using Synthiam ARC Pro

#1  

If you use an SSC-32 control board (like I did) you will get the full range of non ez robot servos like the Feetech and hitec servos...

Belgium
#2  

Hi Richard. Thanks for the answer. I will look into that.

Is this what you mean? Lynxmotion SSC-32U USB servo Controller

If it is..... then I wonder how to connect that together with EZB...... Could you be so kind to help point me a bit in the direction I need to look please?

#3  

That's the one.... i have "how to" on how to connect to the ezb and ARC supports it in the auto positioner control... See here... SSC-32 tutorial

#4  

I'm not familiar with this servo, so I'm wondering if there is some reason you cant modify it (or any other standard hobby servo} for more rotation using the existing script? The traditional method is to add resistors to both end connections of the feedback pot and make any mechanical changes necessary to allow further rotation. The servo doesn't know it's been altered and keeps moving until it gets the designed feedback. It's usually done to go from 90 to 180 degree movement, but more travel is also usually possible. In this case you could theoretically get 300 degrees of movement or more from the servo by experimenting with resistor values. If you don't need the additional servo connections of the SS-32 then why spend $45 when a hack for <$1 could give even better performance? Am I missing something? Here's a short video - one of many on youtube - explaining this:

https://www.youtube.com/watch?v=rU7LDKdKQH0

Belgium
#5  

Thanks Richard! Interesting stuff to read.

Rocketsmith, My servo's have a stretch of 180°. I've tested this without power and they stretch even a bit further. The problem is that I don't get a full stretch from EZB. The timings that EZB provides don't have a wide enough window. (read the first message here I wrote in this topic). THe SSC-32 should fix this. I'm no real electronics man (yet), so hacking into the servo's isn't my thing for now. Looking at the provided Youtube movie, I see that they have put a resistor on both sides between the electronics . So far I understand it. Only 1 thing I don't understand in the movie: Where do they get the value 0.6 from? I think that this might be very interesting to know.

#6  

The 0.6 value is a general "rule of thumb" based on experience in the RC community. The actual value will be slightly different for every servo, even the same model from the same production line, though not very different in that case. This video shows a servo with pots added to both sides of the feedback pot, and what happens when they are adjusted. Note that "Techs Mechs" doesn't realise that the limiting factor in hobby servo travel is the size of the internal resistive contact area of the feedback pot. If the contact ARC inside is 270 degrees then that is the limit of travel for the servo. If the ARC is smaller then the the servo's travel is correspondingly smaller. At about the 4 minute mark he drives the servo past the end of the feedback pot's resistance ARC and the servo stops responding at first one extreme and then the other. It looks like he could get nearly 270 degrees of full travel from that servo with careful adjustment. It is bad servo design that the servo he is using has no mechanical stops to prevent this.

https://www.youtube.com/watch?v=rfk4NV5kM5o

Hobby servos are designed to adjust their position by use of a signal called Pulse Width Modulation, or PWM. The length of a timing pulse determines the position the servo will try to move to. The pulse timing is standardized so minimum pulse length and maximum pulse length do not vary from one manufacturer to another. All hobby servos are expected to see the same timing band in use. The design of the servo then, is what determines the servo travel, not an increase in the maximum timing of the control pulse or the code that determines its length. In practice this means that if you connect a servo with 90 degrees of travel to a receiver and move the transmitter's control stick, the servo will move through 90 degrees through the full range of stick movement, 45 degrees or "centered" at midrange or "center stick" and zero travel at minimum stick travel- up, centered and down on the transmitter. If instead you connect a 180 degree servo to the same port on the receiver you will see maximum travel at maximum stick, 90 degrees at midrange and zero at minimum or full down stick (if you are using a vertical motion stick). A 270 degree servo will be at 135 degrees at midrange or center stick. This is known as "proportional control". All hobby servos operate in this manner. All the computer code does is tell the servo controller how long a pulse (in the industry standardized band) to send to the servo, and how many steps there are in the spread of the timing band. The more steps, the higher the precision you get in servo movement, but the maximum travel of the servo does not change. It's possible the makers of the SS-32 have tweaked it to deliver slightly longer pulses at maximum but, even if they have, your servo may not recognize it because most servos have timing circuitry that expects to see the standardized timing and filters out anomalies- otherwise your plane might crash- bummer.

I don't think changing the code will have any effect on servo maximum travel. It will only change the number of steps in that full travel. Someone please correct me if I am wrong.

#7  

Okay, rereading the thread it looks like it's a hardware issue with the EZB that the SS-32 does fix, and changing the code won't. Good to know and thanks for the heads-up. Still, if the problem is with only one servo I'd rather hack it than spend the cost of 2 more servos to correct it. But I am a serial warranty voider. ;)

Belgium
#8  

Hey Rocketsmith, Thanks for the long response. This makes me understand better how servo's work. As in the 1 picture, I have an identical issue with both servo's to the 1° position using EZB. I realise now that I didn't make a pic from the neutral 90° positon, but both of them where centered first.

Like I've said in my 1st message, a quote from the vendor: quote: We just tested it to make sure and yes you can have a full 180deg with signal from 500us to 2500us. unquote

Then the quote from EZB: quote: The EZ-B has timing below 1ms and above 2ms to accommodate all servo types. Some servos do not fall within the specifications and require unusual timing. When testing with your servo, make sure you recognize the max and min values and set them in the control. unquote

What I think to understand here is: 1/ The explanation from EZB is blurry here, "above" and "below" are not an exact answer in this case. I suppose their working window is not wide enough. 2/ The SS32 has a more precised and probably wider window then the EZB to work in: $pos = "P1500" #1500 = 90, 500~ min and 2500~ max for 1 to 180... (I copied this line above from the tutorial that Richard R pointed me to in answer #4)

I agree with you when you say: quote: Okay, rereading the thread it looks like it's a hardware issue with the EZB that the SS-32 does fix, and changing the code won't. Good to know and thanks for the heads-up. Still, if the problem is with only one servo I'd rather hack it than spend the cost of 2 more servos to correct it. But I am a serial warranty voider. unquote SoI will test with a couple of more servo's and see what happens.

Thanks for thaking the time to answer me, this is a great help to understand things better for a real n00b like I am for now.

PRO
Synthiam
#9  

The ezb follows standard servo pwm specifications for the range, which you quoted. These servos you’re referring to simply exceed that range. While the manufacturer provided the range in their response, still doesn’t make it right. By exceeding the range, all servo hardware that is designed for standard servo specifications will not provide full range.

The ssc does not have finer resolution. Instead, it had a configurable resolution to accommodate these scenarios. This is because the ssc is a dedicated servo controller, and that’s all it does - so it can provide user configurable ranges. And therefore, should be used for your application.

The ezb supports that controller and contains a native plugin to do so. Have fun:) and build that robot!

Ps, you can know more or as much as anyone that you talk to about servos by reading our introduction manual. It contains videos explaining servo pwm and provides a lot of detail. We take a ton of effort to above and behind what anyone else explains. Here’s the direct link: https://synthiam.com/Tutorials/Lesson/48