As part of a project I need an encoder to determine the angle that this, Continuous Rotation Servo - FeeTech FS5103R, has rotated through. The resolution needs to be fairly high as I will be using it to automate a process and so I want to make sure it's accurate.

The shaft it will be mounted to will be custom built so I'm just looking for standalone encoders right now. What are the pros and cons of different styles of rotary encoders?

  • $\begingroup$ Welcome to Robotics, MRussell. I changed the scope of your question a little from what read to be an open-ended design question to a question about the advantages and drawbacks of different styles of rotary encoders. "Here's my ___ what are your thoughts?" is off-topic because it is specific to your application. $\endgroup$
    – Chuck
    Jun 27, 2017 at 18:42
  • $\begingroup$ Welcome to Robotics M Russell, but I'm afraid that Pros & Cons questions are off-topic because there are many ways to solve any given design problem. We prefer practical, answerable questions based on actual problems that you face, so questions which ask for a list of approaches or a subjective recommendation on a method (for how to build something, how to accomplish something, what something is capable of, etc.) are off-topic. Please take a look at How to Ask & tour for more information on how stack exchange works. $\endgroup$
    – Mark Booth
    Jun 28, 2017 at 15:35

1 Answer 1


RC Servos are servos that use a potentiometer as their position sensor. To make a continuous rotation RC servo, the potentiometer is replaced with a fixed resistor so the servo loop is lost and thus the accuracy and position information as well. See A Continuous Rotation RC Servo is NOT a Servo for more details.

BUT... if you do the modification yourself (like is the guy in this video did) then the potentiometer is still there and it should provide a really inexpensive and pretty accurate way to know the motor's position. To use it, route the wires out and use an Analog Input on your processor to measure the absolute position of the motor.

OK, here it where I divert into something I believe will work but haven't tested. I believe if you alter the procedure to ONLY cut the center wire to the potentiometer and still do the rest of the modification then route that center wire out, the wire will have a voltage that represents the location of the motor shaft. This is because the outer wires are just to provide power and powering both resistor stacks should not be a problem and the voltage on the wire will be a voltage between the servo supply voltage and ground.

Another option is to use an actual optical encoder. Note that this is a significantly more expensive and complicated solution because:

  1. Optical encoders can be expensive
  2. You will need to figure a way to directly couple the encoder to the shaft.
  3. If you get a standard quadrature encoder, you will need to add a home sensor since the encoder (unlike the potentiometer) has no concept of absolute position
  4. You will have to know how to decode and use quadrature signals to count position. This is really easy to mess up for cases like an encoder vibrating on an edge.
  5. You will also need to make sure your design is fast enough that you can catch all the transitions when running at full speed (interrupt based or custom hardware). For a 1024 count encoder and a 55rpm motor then your are going to need to sample the encoder at least every 500us or faster.

.... shall I continue

I would recommend you use the potentiometer in the servo.

  • $\begingroup$ 500ms was a typo. I will correct to 500us. 1KHz is not recommended as you need the double samples to confirm you are not undersampled. $\endgroup$ Jun 27, 2017 at 20:10
  • $\begingroup$ Nyquist sampling doesn't really apply though if you know the top speed of your motor. 1kHz would be fine to sample an encoder. BUT, regardless, interrupts are still the superior way to handle it. $\endgroup$
    – Chuck
    Jun 28, 2017 at 1:30

Not the answer you're looking for? Browse other questions tagged or ask your own question.