Make Your Own Pot And Encoder Knobs, Without Reinventing Them

Rotary potentiometers, switches, and encoders all share a basic design: adjustment is done via a shaft onto which a knob is attached, and knobs are sold separately. That doesn’t mean one knob fits all; there are actually a few different standards. But just because knobs are inexpensive and easily obtained doesn’t mean it’s not worth making your own.

A simple and effective indicator can be easily printed in a contrasting color.

Why bother 3D printing your own knobs instead of buying them? For one thing, making them means one can rest assured that every knob matches aesthetically. The ability to add custom or nonstandard markings are another bonus. Finally, there’s no need to re-invent the wheel, because [Tommy]’s guide to making your own knobs has it all figured out, with the OpenSCAD script to match.

By default, [Tommy]’s script will generate a knob with three shims (for interfacing to a splined shaft) when pot_knob(); is called. The number of shims can be adjusted by modifying potKnobDefaultShimCount. To give the knob a flat side (to interface with D-shafts), change flatted = false to flatted = true. And for adding a screw insert suitable for a set screw? Change tightenerDiameter = 0 from zero to the diameter desired.

The script is quite comprehensive and has sensible defaults, but it does require a bit of knowledge about OpenSCAD itself to use effectively. We have covered the basics of OpenSCAD in the past, and if you’re ready for a resource that will help you truly master it, here’s where to look.

10 thoughts on “Make Your Own Pot And Encoder Knobs, Without Reinventing Them

  1. It’s great to see how easy it can be to customize your own knobs! 3D printing is an incredibly versatile tool for making adjustments and modifications, and having a guide like [Tommy]’s makes it even easier. Have you ever tried printing your own knobs? What kind of adjustments were you able to make?

  2. @John and @Freeman just add
    pot_knob();
    at the end of the variable setup
    Which is right above the line: module pot_knob(

    As described in Donald’s write-up – although it is understandable you miss it.

Leave a 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.