Matt Mets made this neat video about using a servo motor as an input device for keyframing a robot animation. He writes:

By reading the voltage from the center pin of the the servo’s potentiometer, it can be used as an input as well as an output device. Basically, you get a bunch of extra positional sensors ‘for free’. Some things that I could see this being useful for are:

1. Collision detection on unpowered arms (or even poor man’s torque detection by measuring the difference between what you requested and the actual position, assuming the servo doesn’t break).

2. Physical keyframing; you move the arms of the thing you are animating manually, then press a button to record that position, repeat a number of times and then have the computer play it back (see video)

3. Haptic feedback, if you can control the servo fast enough (doubtful, but worth a try).

Servo as input device for programing robot movements – Link.

Becky Stern

Becky Stern


  • John Ballinger

    Awesome. That is actually cool. Thanks for sharing. I am now starting to think what I could make with this? Anyway thanks for the video.

  • Russ Nelson

    Don’t you want to measure the error output from the comparator in the servo, instead? That tells you how hard the servo is working. So if you push on it, then the software can move it in the direction of the push. Plus, you’re not reverse-driving the servomotor, which can be hard on the gearing.

  • broos

    I can see some potential using this for a cnc machine.
    You could try to make some sort of an on the budget touch probe and use those saved data to make replica’s of excisting objects!

  • Hackius

    All HiTec digital servos have position reporting built in. Why would you not use that?

  • worf

    great nerd.
    i remember that technique once was called “teach in”.
    for robots.

  • jean-baptiste

    maybe you can do something like Topobo

  • Matt Mets

    That Topobo toy looks awesome!