element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Motors and Drives
  • Technologies
  • More
Motors and Drives
Forum Why did the micro servo zero position move?
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Motors and Drives to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 13 replies
  • Subscribers 70 subscribers
  • Views 4776 views
  • Users 0 members are here
  • servo motor
  • arduino motor
  • micro servo
Related

Why did the micro servo zero position move?

colporteur
colporteur over 2 years ago

I‘ve started to use more Micro Servo Motor SG90S 9G servos controlled by a Nano using the Servo.h library provided in the Arduino IDE. The servo's are inexpensive (cheap) for the small animation projects they are used in.

I noticed an anomaly that is troubling. The servo’s zero position when first install has moved.

image

My knowledge of servo operation tells me that the position of the arm is based on the millisecond pulse provided from the controller. The servo rotates to the position indicated by the pulse.

I installed a servo and zero’d it before positioning the arm to move a shaft up and down. The servo worked for a few weeks. Today the physical position of the arm for zero has moved 90 degrees compared to when it was installed. Nothing has changed! The code is the same and the Nano used is the same.

I'm using a servo because of zero position. The code zero's the servo before starting. Then the codes moves the arm to the desired position. If zero moves, that is not good.

I’m hoping someone might have some insight into why zero has changed. Maybe there is something I can do to prevent this from happening. Same Nano, same code, just todays reboot put the servo zero arm in a different place for zero.

What is a reasonable expectation for a servo?

  • Sign in to reply
  • Cancel

Top Replies

  • dougw
    dougw over 2 years ago +2
    The position is controlled by an internal pot reading matching the demodulated PWM signal, but many things can cause the pot to read incorrectly. Check if the range of motion has the same limits as before…
  • michaelkellett
    michaelkellett over 2 years ago +1
    If the pulses are the same (can you check) and the zero position has moved 90 degrees I would suspect that the servo has failed. I have played a little with some cheap servos and been surprised by how…
  • Fred27
    Fred27 over 2 years ago +1
    That definitely doesn't sound right. I wouldn't expect really accurate positioning or repeatability from a hobby servo, but there's likely to be something wrong with it. The other thing that springs…
  • michaelkellett
    michaelkellett over 2 years ago

    If the pulses are the same (can you check) and the zero position has moved 90 degrees I would suspect that the servo has failed.

    I have played a little with some cheap servos and been surprised by how good they are for £3 each. If you are using parts in that sort of price class they won't be very reliable ( a good industrial quality servo pot on its own cost £25 or so).

    So first base, check the input pulses haven' changed for  a mystery reason , and if not change the servo.

    MK

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • dougw
    dougw over 2 years ago

    The position is controlled by an internal pot reading matching the demodulated PWM signal, but many things can cause the pot to read incorrectly. Check if the range of motion has the same limits as before....if so, then perhaps the internal pot has slipped or cracked. If the position range is different, maybe the arm somehow slipped due to something getting stripped or something is too loose. Is the servo still stable? Does it jump during its travel?

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • Fred27
    Fred27 over 2 years ago

    That definitely doesn't sound right. I wouldn't expect really accurate positioning or repeatability from a hobby servo, but there's likely to be something wrong with it.

    The other thing that springs to mind is whether you ran up against a hard stop at one end of the travel and the arm slipped. Perhaps not as likely, but worth checking whether there has been a physical shift somewhere.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • robogary
    robogary over 2 years ago

    All the other comments privided so far are definite possibilities. Another possiblity for your issue  is a stripped gear in the servo. You may need to upgrade to a MG (metal gear) micro servo or even a standard size servo for long term reliability.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • colporteur
    colporteur over 2 years ago

    Thanks for the responses. Your input gives me confidence my electronic knowledge hasn't strayed. I'm going to replace the servo and start from a known good position. 

    I have other servos of the same type installed. The one is question was fail safe monitored and came to my attention fast.

    I tend to agree you get what you pay for. The servos I am using are plastic with a price point of less that $2 Canadian. If the issue persists I will consider other units. I tend to justify things working correctly for a few more dollars.

    If there are any other comments please send them along.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • shabaz
    shabaz over 2 years ago

    I just realized I have a couple of those servos. I didn't take it apart, because I need them.

    I've tried moving the servo arm manually, and it feels pretty good, it's a fair amount of force and doesn't seem to strip anything, although that would still be my #1 guess.

    I've not opened it to see the build quality in more detail. I needed it for a very lightweight non-critical application.

    One thing I've noticed with cheap servos is that if they get deliberately stalled (e.g. the servo is commanded to a position, but it cannot due to a mechanical limitation or someone preventing the servo turning), then that smokes it. I guess a symptom of that though might be that the servo rotates but cannot rotate back... that may be different from your symptom though. In any case, whether it's mechanical or electrical, it does sound like your servo is faulty and needs to be replaced!

    (Assuming your code is 100% functioning correctly. Do you have a servo tester? I don't, but an Arduino could be coded to just move the servo between two limits, just to eliminate any complex code issues, because perhaps although your code may not have changed, maybe something else has, such as a switch setting or sensor measurement or position in your project).

    image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • colporteur
    colporteur over 2 years ago in reply to shabaz

    Thanks for sharing your insight S.

    I replaced the servo, re-positioned the arm and everything appears to be working. I have the errant servo on the desk. I ran it through the 0-180 Arduino tester that is used to position the servo. It appears to work but zero is at a different position. I know this because of a black line I make on the gear when I install them. It lets me determine rotation direction. The line is moved, Zero is in a different spot. It works but from a new zero. I'm not sure why?

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • robogary
    robogary over 2 years ago in reply to colporteur

    one of the gears likely slipped a tooth or two (or more) 

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • genebren
    genebren over 2 years ago in reply to colporteur

    Or possibly the top gear/horn slipped.

    Most servos can work as continuous rotation, if you remove the position sensing pot and maybe clip a stop pin or two.  The point here is that the slip could have occurred in any number of places (top gear, a reduction gear or the position sensing pot gear.  Rapid movements, stalls and other issues could have caused the slippage.  I have a whole box full of failed servos (many sizes and styles) that have used and abused in animatronics projects.  I happens a lot.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • shabaz
    shabaz over 2 years ago in reply to colporteur

    I did the same, you can see the faint red paint mark on the spindle in the photo above. 

    The supplied servo arms fit pretty snugly, and shouldn't slip, but these servos are so cheap, perhaps some may have more variability in construction! There are literally many cogs in the system : )to go wrong as Gene and others mention. Anyway , it looks like you're doing the right things such as verifying with the 0-180 tester, marking the positions and so on, and glad that swapping it out has resolved it.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube