[beagleboard] Re: Servo control: pulse width working range ?

2020-09-17 Thread Dennis Lee Bieber
On Thu, 17 Sep 2020 02:03:31 -0700 (PDT), in
gmane.comp.hardware.beagleboard.user Pavel Yermolenko
 wrote:


>I asked Tower support for the information and tech support replied that the 
>500-2400us pulse width provided a range of 0 to 160 degrees, while 
>according to my observations the "width limits "are approximately 400 and 
>2500us, which provides an angle range of 0 ... 200 degrees.
>

Take into account that if those are pushing against the internal stops,
you are leaving the coils energized trying to move the shaft -- which could
lead to that overheating that had been mentioned before.

The range provided by Tower support is probably the intended/safe
design range -- which all are supposed to support. Going beyond those
limits may be manufacturing variance that can not be relied upon.


-- 
Dennis L Bieber

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/jav6mf9gagrm2egmjpda2294vi3684aibj%404ax.com.


Re: [beagleboard] Re: Servo control: pulse width working range ?

2020-09-17 Thread Pavel Yermolenko
If you stick with manufacturers such as Hitec, Tower, Futaba, or Parallax 
you should be fine.
I have Tower servo.
I asked Tower support for the information and tech support replied that the 
500-2400us pulse width provided a range of 0 to 160 degrees, while 
according to my observations the "width limits "are approximately 400 and 
2500us, which provides an angle range of 0 ... 200 degrees.

Sincerely,

Pavel.

On Wednesday, September 16, 2020 at 7:27:59 PM UTC+2, jonnymo wrote:
>
> Actually 360 degree Continuous Rotation Servers are quite common. There 
> are basically two types of servos: 360 degree Continuous Rotation and 90 
> degree Standard Rotation.  Each has a different purpose.
>
> As far as manufacturers not providing datasheets for their products, I 
> would suspect this depends on where you are purchasing the servers from.  
> If you stick with manufacturers such as Hitec, Tower, Futaba, or Parallax 
> you should be fine.  If you are purchasing cheap off brand servers, then 
> you may run into an issue with each being different as far as how they 
> react to a PWM signal. Also, depending on the application, there could be a 
> difference between plastic and metal gears.  I tend to like metal gear 
> servos though. 
>
> Cheers,
>
> Jon
>  
>
> On Wed, Sep 16, 2020 at 8:54 AM Dennis Lee Bieber  > wrote:
>
>> On Wed, 16 Sep 2020 07:36:14 -0700 (PDT), in
>> gmane.comp.hardware.beagleboard.user Pavel Yermolenko
>> > wrote:
>>
>> >I noticed that many servo motor manufacturers don't provide datasheets 
>> for 
>> >their products (for example for my servo it's the case)
>> >Generic values that can be found on the web don't work for every servo.
>> >For example what should be pulse width for 0/90/180/360 degrees.
>> >I suppose the value of pulse widths depends on a particular model.
>> >
>>
>> Very few servos have a 360 rotation range... +/- 90 degree is more
>> common (the exception being servos that have had the position feed back
>> logic removed and act as variable speed continuous motors).
>>
>>
>> https://www.jameco.com/jameco/workshop/howitworks/how-servo-motors-work.html
>>
>> 1.5mS pulse should be the "neutral" position (middle of the range).
>>
>> https://learn.adafruit.com/adafruit-motor-selection-guide/rc-servos
>>
>> https://learn.adafruit.com/adafruit-motor-selection-guide/continuous-rotation-servos
>>
>> >For example I noticed that if pulse width in quite low, the servo heats 
>> up 
>> >as an iron.
>>
>> Likely you are over (under) driving the position, and the servo 
>> can not
>> physically move to the position you are requesting -- this leaves the 
>> coils
>> energized with the servo pushing against the internal end-stop.
>>
>> My suggestion would be that you write a short calibration program 
>> with
>> which you adjust the pulse width from neutral, one step at a time, until
>> the servo reaches an end point (ie; the control "horn" stopped moving 
>> while
>> you changed the pulse width), then back up until you just detect the horn
>> has moved off the end-stop. Record that value and repeat for the other
>> direction. Maybe put a sticker on the servo with the values of the
>> end-point pulse widths -- neutral position should be the average of those
>> two values.
>>
>> Do that for all your servos, and either use the minimum span for 
>> all,
>> or program the limits per servo (if using Python, install Adafruit Blinka
>> and libraries for CircuitPython -- the servo class allows override of
>> min/max pulse width; they default to 0.5 - 2.5ms, but do state that
>> "standard" servos are supposed to work with 1.0 - 2.0ms width).
>>
>> https://learn.adafruit.com/circuitpython-essentials/circuitpython-servo
>> https://learn.adafruit.com/circuitpython-on-raspberrypi-linux (ignore the
>> R-Pi, it works for BBB also)
>>
>> https://learn.adafruit.com/using-servos-with-circuitpython/high-level-servo-control
>>
>>
>>
>>
>> -- 
>> Dennis L Bieber
>>
>> -- 
>> For more options, visit http://beagleboard.org/discuss
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "BeagleBoard" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to beagl...@googlegroups.com .
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/beagleboard/nkb4mfd0pbjeigumqjvhb0k8gur9qql2ed%404ax.com
>> .
>>
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/9f826526-7529-4e24-bcee-f5ba2b4e9d60o%40googlegroups.com.


[beagleboard] Re: Servo control: pulse width working range ?

2020-09-17 Thread Pavel Yermolenko


* Very few servos have a 360 rotation range... +/- 90 degree is more common 
(the exception being servos that have had the position feed back *
*logic removed and act as variable speed continuous motors). *
The mine has the range (at a glance) about 200 degrees.



*Likely you are over (under) driving the position, and the servo can not 
physically move to the position you are requesting -- this leaves the coils 
energized with the servo pushing against the internal end-stop.*
Sure, I was out of range and torque was quite high.
But why the range isn't specified in datasheets ... applying over/under 
driven position one can damage servo definitely.
Safe operating conditions - the first thing that should be in the 
datasheet, isn't it ?








*My suggestion would be that you write a short calibration program with 
which you adjust the pulse width from neutral, one step at a time, until 
the servo reaches an end point (ie; the control "horn" stopped moving while 
you changed the pulse width), then back up until you just detect the horn 
has moved off the end-stop. Record that value and repeat for the other 
direction. Maybe put a sticker on the servo with the values of the 
end-point pulse widths -- neutral position should be the average of those 
two values.*
It is difficult to estimate with the naked eye when the servo reaches the 
end / start points.
Another detail: I observed a kind of hysteresis when the servo approaches 
the end or start points.
I mean that by approaching one of these points I can move forward in 
relatively small steps. Once the limit point is reached, to go in the 
opposite direction, I have to take a relatively large step.
Probably one of the methods for determining the limit points is current 
control, i.e. when the torque continues but the servo can no longer rotate, 
will the current rise?





*Do that for all your servos, and either use the minimum span for all, or 
program the limits per servo (if using Python, install Adafruit Blinka and 
libraries for CircuitPython -- the servo class allows override of min/max 
pulse width; they default to 0.5 - 2.5ms, but do state that "standard" 
servos are supposed to work with 1.0 - 2.0ms width)*
Ok, thanks.

Sincerely,

Pavel.

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/df3ad4ff-51b0-475b-b9b6-4e69bcf60631o%40googlegroups.com.


[beagleboard] Re: Servo control: pulse width working range ?

2020-09-16 Thread Dennis Lee Bieber
On Wed, 16 Sep 2020 10:27:17 -0700, in gmane.comp.hardware.beagleboard.user
jonnymo  wrote:

>Actually 360 degree Continuous Rotation Servers are quite common. There are
>basically two types of servos: 360 degree Continuous Rotation and 90 degree
>Standard Rotation.  Each has a different purpose.

>On Wed, Sep 16, 2020 at 8:54 AM Dennis Lee Bieber 
>
>wrote:
>
>> Very few servos have a 360 rotation range... +/- 90 degree is more
>> common (the exception being servos that have had the position feed back
>> logic removed and act as variable speed continuous motors).


I'd have though I'd covered those with the "act as variable speed
continuous motors".

However, the OP asked about setting specific angles of 0, 90, 180, 270
(I'm assuming the 270, they went 0, 90, 180, 360). Continous rotation types
do not have feed-back for positions, so could not be commanded to rotate to
any particular angle.

That leaves us back with common positioning servos which normally run
-90 to +90 (or 0 to 180, if one prefers... +/- 90 makes for sense if being
used for a steering servo on a robot, where 0 is "straight ahead". It may
also make sense for throttle control, where 0 is stopped, -90 is full
reverse, +90 is full forward).



-- 
Dennis L Bieber

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/dd55mf5trjrj5ska4s34vdcichqgdc89i4%404ax.com.


Re: [beagleboard] Re: Servo control: pulse width working range ?

2020-09-16 Thread jonnymo
Actually 360 degree Continuous Rotation Servers are quite common. There are
basically two types of servos: 360 degree Continuous Rotation and 90 degree
Standard Rotation.  Each has a different purpose.

As far as manufacturers not providing datasheets for their products, I
would suspect this depends on where you are purchasing the servers from.
If you stick with manufacturers such as Hitec, Tower, Futaba, or Parallax
you should be fine.  If you are purchasing cheap off brand servers, then
you may run into an issue with each being different as far as how they
react to a PWM signal. Also, depending on the application, there could be a
difference between plastic and metal gears.  I tend to like metal gear
servos though.

Cheers,

Jon


On Wed, Sep 16, 2020 at 8:54 AM Dennis Lee Bieber 
wrote:

> On Wed, 16 Sep 2020 07:36:14 -0700 (PDT), in
> gmane.comp.hardware.beagleboard.user Pavel Yermolenko
>  wrote:
>
> >I noticed that many servo motor manufacturers don't provide datasheets
> for
> >their products (for example for my servo it's the case)
> >Generic values that can be found on the web don't work for every servo.
> >For example what should be pulse width for 0/90/180/360 degrees.
> >I suppose the value of pulse widths depends on a particular model.
> >
>
> Very few servos have a 360 rotation range... +/- 90 degree is more
> common (the exception being servos that have had the position feed back
> logic removed and act as variable speed continuous motors).
>
>
> https://www.jameco.com/jameco/workshop/howitworks/how-servo-motors-work.html
>
> 1.5mS pulse should be the "neutral" position (middle of the range).
>
> https://learn.adafruit.com/adafruit-motor-selection-guide/rc-servos
>
> https://learn.adafruit.com/adafruit-motor-selection-guide/continuous-rotation-servos
>
> >For example I noticed that if pulse width in quite low, the servo heats
> up
> >as an iron.
>
> Likely you are over (under) driving the position, and the servo
> can not
> physically move to the position you are requesting -- this leaves the coils
> energized with the servo pushing against the internal end-stop.
>
> My suggestion would be that you write a short calibration program
> with
> which you adjust the pulse width from neutral, one step at a time, until
> the servo reaches an end point (ie; the control "horn" stopped moving while
> you changed the pulse width), then back up until you just detect the horn
> has moved off the end-stop. Record that value and repeat for the other
> direction. Maybe put a sticker on the servo with the values of the
> end-point pulse widths -- neutral position should be the average of those
> two values.
>
> Do that for all your servos, and either use the minimum span for
> all,
> or program the limits per servo (if using Python, install Adafruit Blinka
> and libraries for CircuitPython -- the servo class allows override of
> min/max pulse width; they default to 0.5 - 2.5ms, but do state that
> "standard" servos are supposed to work with 1.0 - 2.0ms width).
>
> https://learn.adafruit.com/circuitpython-essentials/circuitpython-servo
> https://learn.adafruit.com/circuitpython-on-raspberrypi-linux (ignore the
> R-Pi, it works for BBB also)
>
> https://learn.adafruit.com/using-servos-with-circuitpython/high-level-servo-control
>
>
>
>
> --
> Dennis L Bieber
>
> --
> For more options, visit http://beagleboard.org/discuss
> ---
> You received this message because you are subscribed to the Google Groups
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to beagleboard+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/beagleboard/nkb4mfd0pbjeigumqjvhb0k8gur9qql2ed%404ax.com
> .
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/CAG99bkpb_a%2B8RUCggcgWF-fGBcrgFY4VYGA2CEygfPTR8GM%3DAQ%40mail.gmail.com.


[beagleboard] Re: Servo control: pulse width working range ?

2020-09-16 Thread Dennis Lee Bieber
On Wed, 16 Sep 2020 07:36:14 -0700 (PDT), in
gmane.comp.hardware.beagleboard.user Pavel Yermolenko
 wrote:

>I noticed that many servo motor manufacturers don't provide datasheets for 
>their products (for example for my servo it's the case)
>Generic values that can be found on the web don't work for every servo.
>For example what should be pulse width for 0/90/180/360 degrees.
>I suppose the value of pulse widths depends on a particular model.
>

Very few servos have a 360 rotation range... +/- 90 degree is more
common (the exception being servos that have had the position feed back
logic removed and act as variable speed continuous motors).

https://www.jameco.com/jameco/workshop/howitworks/how-servo-motors-work.html

1.5mS pulse should be the "neutral" position (middle of the range).

https://learn.adafruit.com/adafruit-motor-selection-guide/rc-servos
https://learn.adafruit.com/adafruit-motor-selection-guide/continuous-rotation-servos

>For example I noticed that if pulse width in quite low, the servo heats up 
>as an iron.

Likely you are over (under) driving the position, and the servo can not
physically move to the position you are requesting -- this leaves the coils
energized with the servo pushing against the internal end-stop.

My suggestion would be that you write a short calibration program with
which you adjust the pulse width from neutral, one step at a time, until
the servo reaches an end point (ie; the control "horn" stopped moving while
you changed the pulse width), then back up until you just detect the horn
has moved off the end-stop. Record that value and repeat for the other
direction. Maybe put a sticker on the servo with the values of the
end-point pulse widths -- neutral position should be the average of those
two values.

Do that for all your servos, and either use the minimum span for all,
or program the limits per servo (if using Python, install Adafruit Blinka
and libraries for CircuitPython -- the servo class allows override of
min/max pulse width; they default to 0.5 - 2.5ms, but do state that
"standard" servos are supposed to work with 1.0 - 2.0ms width).

https://learn.adafruit.com/circuitpython-essentials/circuitpython-servo
https://learn.adafruit.com/circuitpython-on-raspberrypi-linux (ignore the
R-Pi, it works for BBB also)
https://learn.adafruit.com/using-servos-with-circuitpython/high-level-servo-control




-- 
Dennis L Bieber

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/nkb4mfd0pbjeigumqjvhb0k8gur9qql2ed%404ax.com.


[beagleboard] Re: Servo control: pulse width working range ?

2020-09-16 Thread robert.sty...@gmail.com
My memory is a little rusty, but IIRC

With remote control (RC) servos, there is a pulse width between 1ms and 2ms 
to give minimum to maximum angle.  
There is pulse repetition rate of 20ms.

I found these 
 


Pulse width cycle time 20ms, repetition 50Hz
Pulse width duty 5% to 10%

On Wednesday, 16 September 2020 at 15:36:14 UTC+1 py.o...@sunrise.ch wrote:

> Hello,
>
> I noticed that many servo motor manufacturers don't provide datasheets for 
> their products (for example for my servo it's the case)
> Generic values that can be found on the web don't work for every servo.
> For example what should be pulse width for 0/90/180/360 degrees.
> I suppose the value of pulse widths depends on a particular model.
>
> For example I noticed that if pulse width in quite low, the servo heats up 
> as an iron.
>
> Any comments ?
>
> Thanks.
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/4601daa7-3863-46ec-8b39-34e7dfff3125n%40googlegroups.com.