3D Printed Absolute Encoder Is Absolutely Wonderful

When you need to record the angle of something rotating, whether it’s a knob or a joint in a robotic arm, absolute rotary encoders are almost always the way to go. They’re cheap, they’re readily available, and it turns out you can make a pretty fantastic one out of a magnetic sensor, a zip tie, and a skateboard bearing.

When [Scott Bezek] got his hands on a AS5600 magnet sensor breakout board, that’s just what he did. The sensor itself is an IC situated in the middle of the board, which in Scott’s design sits on a 3D-printed carrier. A bearing mount sits atop it, which holds — you guessed it — a bearing. Specifically a standard 608 skateboard bearing, which is snapped into the mount and held securely by a zip tie cinched around the mount’s tabs. The final part is a 3D-printed knob with a tiny magnet embedded within, perpendicular to the axis of rotation. The knob slides into the bearing and the AS5600 reads the orientation of the magnet.

Of course, if you just wanted a rotary knob you could have just purchased an encoder and been done with it, but this method has its advantages. Maybe you can’t fit a commercially-available encoder in your design. Maybe you need the super-smooth rotation provided by the bearing. Or maybe you’re actually building that robotic arm — custom magnetic encoders like this one are extremely common in actuator design, and while the more industrial versions (usually) have fewer zip ties, [Scott]’s design would fit right in.

25 thoughts on “3D Printed Absolute Encoder Is Absolutely Wonderful

      1. Reminds me a Wang terminal very long ago.

        Potentiates get dusty and noisy after time.

        This Wang terminal solved this problem in an interesting way.

        Instead of pots for brightness and contrast controls it had a pilot light that shone through movable filter strip that had a gradient from clear to black and on the other side was a LDR (light sensor). The brightness and contrast controls moved the filter.

    1. The function performed is to encode the position of the knob (which is apparently 3D printed).

      So if we refer to the knob by it’s function we would call it an encoder knob. The relevance of the fact that it was 3D printed is lost when we refer to it as a function rather than an object.

      It is therefor a first class function (citizen).

  1. How to build an absolute encoder:
    step 1: buy an absolute encoder
    step 2: print a knob for it
    step 3: ???
    step 4: claim that you “printed an absolute encoder”

    I was expecting some new idea for an absolute encoder, not basically buying one.

    1. An absolute encoder chip without a knob, magnet, and rotating axis is a pretty shit self contained user controllable encoder. Or perhaps you make the chips you use in your projects out of sand and forgo buying commercial off the shelf components since that would make it not a new idea in your book?

    2. Too harsh for my tastes. Last time I built an absolute encoder, I did a lot of thinking and designing to make use of beam interruption sensors salvaged from laser printers to get three bits of directional data. A lot of work for a relatively mediocre result, compared to what’s possible if you know about the AS5600 sensor. Big if.

      So if you already know about these sensors, good for you! But if you’re like me and are (haphazardly) self-taught, then THANK YOU SCOTT for growing my toolkit!

  2. Totally adding some of these modules to my stash. Design is simple and awesome. Am curious though. I don’t know magnetics well. How susceptable would these be to magnetic inference from, say, a nearby motor running on the same axis?

    1. Magnetics is an inverse square relationship. So the magnetic force would have to be extremely close or extremely powerful to have a significant effect,

      That being said, this sensor is 12 bit so in some cases there may be minor interference. It may for instance make the difference between 183.47 degrees and 183.46 degrees. In most usage cases that’s not going to be a problem.

    2. I have some of their AMS5047 incremental encoders that I have used in the head of a milling machine (on a pulley adjacent to a 5hp 3ph motor) and on nema23 steppers and neither have much trouble. They seem to do some auto scaling of the signal so if you have trouble a bigger magnet on your sensor will usually drop the noise out.

  3. Why not design the bearing mount to be a friction fit like the knob? I did with mine, and also used a short spring and a small ball bearing, along with a scalloped inner edge to make it a detented encoder

Leave a Reply to ColtonCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.