[sdiy] Looking for a mini rotary encoder with very low torque (servo type)

Jean-Pierre Desrochers jpdesroc at oricom.ca
Tue Jan 7 22:19:41 CET 2025


Hi Spiros,

 

Thanks for your kind suggestions..
But let me point out some lines heres :

 

>  is that to achieve an 1:1 translation of linear movement of paper to rotation of encoder you need a way to ensure that the two are always in optimal contact, which basically translates to keeping the tension > controlled within some window, so that the paper presses on it properly at all times. If that was the case you wouldn't need this method at all, 
…
> since a rotation of your motor would already translate directly > to linear motion of the paper,

That’s true but the acumulating thickness of the take up spool accelerates the paper pace..
So checking the motor speed to adjust the pape has never been the solution.

> As a final thought, you mentioned that you don't care about encoder resolution, but my experience with controlling slow moving motors is that as speed goes down, 
> worse. The reason is that you produce "corrections" in the form of pulses as the shaft turns; 
> keeping the resolution constant and reducing the speed means you get to wait more time between those corrections, 
> essentially creating temporal "gaps" in your control loop.

I think youd didn’t notice I’m using step motors so adjusting the steps timing
is much precise than do ON/OFF stuff on DC motors which I’m nort using here.

 

>Doing a search in aliexpress with the keywords "motor encoder" could yield some results worth trying out.

I don’t want to check the motor shaft speed using an internal encoder..
It’s the paper pace I need to have an eye on.

 

> Quite the head scratcher you have here. As you can probably tell I love these sorts of control puzzles!

That’s the fun of it !!

 

 

De : Spiros Makris <spirosmakris92 at gmail.com> 
Envoyé : 7 janvier 2025 05:53
À : Jean-Pierre Desrochers <jpdesroc at oricom.ca>
Cc : synth-diy at synth-diy.org
Objet : Re: [sdiy] Looking for a mini rotary encoder with very low torque (servo type)

 

yes, I did after posting my message. 

It does seem fiddly, but if it works it works, I guess. 😅

As is common in robotics, the exact thing you need to know and the method you observe it can be a very convoluted topic. My understanding of the problem is that you need the paper to move with a constant pace under some sort of reader (I vaguely remember your past emails about how to detect the hole patterns on the piano roll). In theory, directly measuring that rotation by making the paper rotate the encoder as it moves would suffice. What I'm thinking (and maybe playing devil's advocate here), is that to achieve an 1:1 translation of linear movement of paper to rotation of encoder you need a way to ensure that the two are always in optimal contact, which basically translates to keeping the tension controlled within some window, so that the paper presses on it properly at all times. If that was the case you wouldn't need this method at all, since a rotation of your motor would already translate directly to linear motion of the paper, not to mention that dodgy sensor measurements will definitely manifest as weirdness in your control behaviour. As an example, think what would a PID do if suddenly the measured speed was dropping to zero because of slippage; it would accelerate thinking it needs to compensate, increase the tension again and produce measurements, try to slow down, then possibly lose tension again etc and enter a kind of oscillation that might be hard to tame. 

Using a second passive wheel to sandwich the paper and force it to be in good contact with your encoder wheel at all times could be something to try out if you stumble on that problem.

As a final thought, you mentioned that you don't care about encoder resolution, but my experience with controlling slow moving motors is that as speed goes down, the speed measurements become worse. The reason is that you produce "corrections" in the form of pulses as the shaft turns; keeping the resolution constant and reducing the speed means you get to wait more time between those corrections, essentially creating temporal "gaps" in your control loop. To solve it you will be forced to increase the integration time (which converts position to speed), which in turn will make your control loop slower. If this speed is not enough orders of magnitude above the process you are trying to control, you are in for some fun times trying to tune this (more or less) untunable loop. In practice, spending more money for a much more accurate encoder could solve this, but those buggers can get pretty expensive when you go into the 100s of pulses per revolution region. Doing a search in aliexpress with the keywords "motor encoder" could yield some results worth trying out. Using gears to multiply the revolutions measured by the sensors would be a cheap way out, but this will proportionally increase the torque required to turn the wheel, possibly making the paper slip.

If this approach fails, it could be worth investigating ways to control the tension of the paper, rather than its speed.

Quite the head scratcher you have here. As you can probably tell I love these sorts of control puzzles!

 

On Mon, 6 Jan 2025 at 17:26, Jean-Pierre Desrochers <jpdesroc at oricom.ca <mailto:jpdesroc at oricom.ca> > wrote:

Thank You Spiros for your nice message.

 

Did you see my last post about the final setup I will use ?

The small wheel with tire is making a good steady contact
with the scrolling paper I want to measure the speed of..

So far so good.

 

De : Spiros Makris <spirosmakris92 at gmail.com <mailto:spirosmakris92 at gmail.com> > 
Envoyé : 6 janvier 2025 07:29
À : Jean-Pierre Desrochers <jpdesroc at oricom.ca <mailto:jpdesroc at oricom.ca> >
Cc : Gerry Murray <synthimuse at gmail.com <mailto:synthimuse at gmail.com> >; synth-diy at synth-diy.org <mailto:synth-diy at synth-diy.org> 
Objet : Re: [sdiy] Looking for a mini rotary encoder with very low torque (servo type)

 

Did you have a look at encoders built for motor control (and robotics in general)? They can in many flavors (and prices), and are usually mount on the shaft of the motor; in your case you might need to devise a different mounting method. Using rubber bands is probably going to slip, but if space allows you could use a belt, the way 3D printers do - if properly designed for the application it will not slip.

In my experience, trying to make your own using hall sensors and magnets will be hard to nail down, unless you have a 3D printer (or other CNC type machine) that will take care of tolerances for you. If your goal is to keep speed constant, or measure amount of rotation, this can have a very big impact on your application.

Finally, you can get rotary encoders aimed for UI/controls that have a smooth rotation. They specify the torque needed to turn them, so you can pick the lowest. If what you measure is actively moved by a motor then it will definitely have no problem turning it, and will be unlikely to slip, as long as it is mated to the rotating axis properly.

You might also consider tensioning your moving paper in a different way, so that the slip will become negligible.

 

On Thu, 12 Dec 2024 at 18:55, Jean-Pierre Desrochers via Synth-diy <synth-diy at synth-diy.org <mailto:synth-diy at synth-diy.org> > wrote:

> Is it more important to measure the surface of the paper itself due to torque/slippage reasons like on a tape machine, 

Yes.

> or will measuring the speed of the take up spool get you the same info?

No.

 

>  If the latter is an option, what about a magnet and a hall sensor on the take up spool, 
> disk the same diameter as the take up reel in the drive mechanism with some other sort of sensor on it like cheater mentioned, 
> or even a small notch in the take up spool (or equivalent disk in the drive mechanism) that has a limit switch with roller against it.
Measuring the take up spool rotation speed will hide the actual problem I have
which is paper thickness accumulation on the take up spool (with fixed speed)
that speeds up the overall moving paper speed !

So far my software only put 25 fixed parameters (by means of a potentiometer) to control
the PLAY stepup motor steps and would not check for any speedup in a song.
That’s what I discovered some days ago and am trying to fix.

 

The solution is to read the paper moving surface (regardless of the take up spool speed )
But in a very small space to do it.
So no place for any encoder disc (it would need to be smaller than 18mm in diameter.. see why below), 
nor any ‘normal’ size Opto-Interrupter..

Because of the very small and limited space I could mount this thing,

I will use a model car wheel with rubber tire (overall outside diameter 18mm),

mounted on a small 1/16in. shaft that will turn a small glued piece of opaque plastic
in the slot of a very small SMD opto-interupter like this one :

 



The below picture shows the actual tiny wheel with rubber tire I will use (to put against the moving paper)
and part of the setup I used in a past project with a small rotating piece of plastic
moving inside a Opto-Interrupter.
Mine will be much smaller. 

 



 

I’m now waiting my Digikey order for the Opto-Interrupters + nylon hardware.

 

And thanks Gerry for your nice suggestions !

 

 

De : Synth-diy <synth-diy-bounces at synth-diy.org <mailto:synth-diy-bounces at synth-diy.org> > De la part de Nathan Trites
Envoyé : 12 décembre 2024 10:17
À : Gerry Murray <synthimuse at gmail.com <mailto:synthimuse at gmail.com> >
Cc : synth-diy at synth-diy.org <mailto:synth-diy at synth-diy.org> 
Objet : Re: [sdiy] Looking for a mini rotary encoder with very low torque (servo type)

 

This is the direction I was just thinking, and was also on the Adafruit site looking at plug and play sensor options. 

 

Jean-Pierre - I'm assuming this is to make the speed on your piano roll player programmable/repeatable? Is it more important to measure the surface of the paper itself due to torque/slippage reasons like on a tape machine, or will measuring the speed of the take up spool get you the same info? If the latter is an option, what about a magnet and a hall sensor on the take up spool, disk the same diameter as the take up reel in the drive mechanism with some other sort of sensor on it like cheater mentioned, or even a small notch in the take up spool (or equivalent disk in the drive mechanism) that has a limit switch with roller against it.

 

If it must be against the paper, opto-interruptors and disks are available on their own, and then you could rig something up so that assembly rests lightly against the paper:

https://bc-robotics.com/shop/opto-interrupter-with-mounting-tabs/

https://bc-robotics.com/shop/encoder-disc/

 

Nathan

 

On Thu, Dec 12, 2024 at 9:22 AM Gerry Murray via Synth-diy <synth-diy at synth-diy.org <mailto:synth-diy at synth-diy.org> > wrote:

Hi JP

You could maybe try a resolver. The resolution of them can be very high 
: up to 16 bit.
https://www.mouser.co.uk/applications/resolver-encoder-motor-control/
https://www.instructables.com/Arduino-Resolver-Module/

I always like it when you put an inquiry on the list because, usually 6 
months later on, a really cool project emerges. :-)

Best wishes

Gerry


On 11/12/2024 15:09, Jean-Pierre Desrochers via Synth-diy wrote:
> I'm looking for a very small (20mm or less body diameter)
> rotary encoder with very low torque (servo type).
> The low torque shaft is needed because it will turn by means
> of a small wheel with rubber sides that will be put against a moving surface, turn and 'follow'
> the moving surface.. no slipping allowed !
>
> The precision of steps/turn is not important.
> But the higher will be best..
>
> I was thinking of using a dismantled PC mouse (rubber ball type)
> and use one of the two  X/Y optical rotary encoders, but these PC mice
> nowadays are hard to find.. So.
>
> I checked Digikey and Mouser but they have encoder too big
> for my uses..
> The smaller I found has 20mm in diameter..
> https://www.digikey.ca/en/products/detail/nidec-components-corporation/RES20D-50-201-1/6469509
>
> Any suggestions ?
>
>
> ________________________________________________________
> This is the Synth-diy mailing list
> Submit email to: Synth-diy at synth-diy.org <mailto:Synth-diy at synth-diy.org> 
> View archive at: https://synth-diy.org/pipermail/synth-diy/
> Check your settings at: https://synth-diy.org/mailman/listinfo/synth-diy
> Selling or trading? Use marketplace at synth-diy.org <mailto:marketplace at synth-diy.org> 


________________________________________________________
This is the Synth-diy mailing list
Submit email to: Synth-diy at synth-diy.org <mailto:Synth-diy at synth-diy.org> 
View archive at: https://synth-diy.org/pipermail/synth-diy/
Check your settings at: https://synth-diy.org/mailman/listinfo/synth-diy
Selling or trading? Use marketplace at synth-diy.org <mailto:marketplace at synth-diy.org> 

________________________________________________________
This is the Synth-diy mailing list
Submit email to: Synth-diy at synth-diy.org <mailto:Synth-diy at synth-diy.org> 
View archive at: https://synth-diy.org/pipermail/synth-diy/
Check your settings at: https://synth-diy.org/mailman/listinfo/synth-diy
Selling or trading? Use marketplace at synth-diy.org <mailto:marketplace at synth-diy.org> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20250107/60619003/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 8202 bytes
Desc: not available
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20250107/60619003/attachment.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.jpg
Type: image/jpeg
Size: 44182 bytes
Desc: not available
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20250107/60619003/attachment-0001.jpg>


More information about the Synth-diy mailing list