Incremental rotary encoder knob?

I am trying to design a control knob. The requirement is to give its angular position over e.g. I2C, with a precision of about 1/60 of a degree (something like a quadrature encoder with 1000 pulses/revolution counted at 4x). The knob is controlled by a human being and there is only one knob so speed is not a problem for any reasonable uC. (One example use of this is e.g. a MIDI pitch wheel, or making a DJ turntable scratch MIDI controller.)

This may become a product so I would not be able to use recycled parts, such as from an old-style mechanical mouse.

I searched and found products above USD100 advertised as "low cost", and wonder if this is just the way it is?

The mechanical encoders usually have only about 24 pulses per turn and I probably won't be able to gear it enough to satisfy my resolution requirement.

I also looked at magnetic sensors, they look cool because they can detect the orientation of a magnet from a distance. Resolution seems to be dependent upon A/D precision but I am not sure about the repeatability and stability for use as a human interaction device.

There seems to be optical encoder modules with etched metal wheels pre-assembled in a housing. Some of these can achieve 1000 pulses per revolution without a problem. They seemed to be geared towards motor control and they are expensive. Is there an inexpensive source?


Do they have to be encoders or are precise potentiometers ok? You need more resolution if you use potentiometer. Arduino adc only has 1024 levels so less than 3 clicks per turn. Typically I see your required resolution in precision position or rotation controlled devices, which all employ gear boxes to slow down dc motors so they get thousands of pulses per degree or cm. Plus there will be some issues of the geerbox being loose when turning around. Any reasons your device has to have 60 clicks per degree?

Thanks for your reply!

This is an input device controlled by a human being... For example, a DJ scratches a turntable controller to make certain genres of music. The wheel being turned is quite large so even very minute gestures can potentially be meaningful.

That said, as I think about it, my original goals may in fact be overly ambitious and impractical. For example, even with a 12" vinyl record, the circumference is about 1m, and 1/60 of a degree is only about 0.3mm of linear motion at the circumference. I have to do some research on what kind of precision does the musician expect of this, but they may be happy enough with 1/10 of a degree.

Correction: googling the existing dj turntable controller products on the market, they do offer a resolution of about 3,600 ticks per revolution.

1/60 of a degree is 21600 pulses per rev...

Ya... :frowning: I need to go back and study elementary math again...

but anyway, this is the cheapest product I can find so far... some capacitive rotary encoder...

A 24 tick per rev encoder would give you 3600 ticks per rev with 150:1 gear reduction on the turntable, and that is certainly feasible so I’m not sure why you think you couldn’t get enough gear reduction to use it.

A few other ideas:

If it's for a fairly large knob like a turntable, why not mount an linear encoder along the outer edge and measure the linear speed of the rim. If you want to be really cheap, use an optical mouse sensor.

Use some form of gears to speed up the movement of your rotary encoder. You for example use from a turn table the power train and mount a regular rotary encoder instead of the motor.

And if it's for scratching, an accelerometer might also give natural input values.


The cheapest way you can achieve is using encoder wheel.

First, go -->
You can find a link to the basic knowledge of encoder wheel.

There is also a software that will generate a wheel patern for you to cut.

But for that resolution you want .. you'll need to go to the laser cut shop .. and they can not accept the bitmap format generated by the software above.

Here it come the help for that situation
Go --> Encoder Wheel Generator by NickAmes - Thingiverse
It have a poscript file that you can edit with text editor , preview it in gimp, and bring to laser cut shop.

Now , the limit is your ability to align the optical parts.

Have a nice hack (errrgghh .. alignment)


If it’s for a fairly large knob like a turntable, why not mount an linear encoder along the outer edge and measure the linear speed of the rim. If you want to be really cheap, use an optical mouse sensor.

Was gonna suggest that imho its probably the best way to go.