<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
How wide is the paper ?   One possibility would be to rip an old HP Thinkjet printer apart and use the grit-wheel mechanism to keep the paper velocity constant.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Synth-diy <synth-diy-bounces@synth-diy.org> on behalf of rburnett@richieburnett.co.uk <rburnett@richieburnett.co.uk><br>
<b>Sent:</b> 07 January 2025 22:57<br>
<b>To:</b> Jean-Pierre Desrochers <jpdesroc@oricom.ca><br>
<b>Cc:</b> synth-diy@synth-diy.org <synth-diy@synth-diy.org><br>
<b>Subject:</b> Re: [sdiy] Looking for a mini rotary encoder with very low torque (servo type)</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">JP would it be practical to use a capstan and pinch-roller arrangement
<br>
to keep the velocity of the paper constant, despite the increase in the <br>
effective diameter of the take-up roller? Like how tape was driven <br>
through an old reel-to-reel tape machine.<br>
<br>
Apologies if someone already suggested this and I missed it.<br>
<br>
-Richie.<br>
<br>
<br>
On 2025-01-07 21:19, Jean-Pierre Desrochers via Synth-diy wrote:<br>
> Hi Spiros,<br>
> <br>
> Thanks for your kind suggestions..<br>
> But let me point out some lines heres :<br>
> <br>
> _>  is that to achieve an 1:1 translation of linear movement of paper<br>
> to rotation of encoder you need a way to ensure that the two are<br>
> always in optimal contact, which basically translates to keeping the<br>
> tension > controlled within some window, so that the paper presses on<br>
> it properly at all times. If that was the case you wouldn't need this<br>
> method at all,_<br>
> …<br>
>> since a rotation of your motor would already translate directly > to<br>
> linear motion of the paper,<br>
> <br>
> That’s true but the acumulating thickness of the take up spool<br>
> accelerates the paper pace..<br>
> So checking the motor speed to adjust the pape has never been the<br>
> solution.<br>
> <br>
>> As a final thought, you mentioned that you don't care about encoder<br>
> resolution, but my experience with controlling slow moving motors is<br>
> that as speed goes down,<br>
>> worse. The reason is that you produce "corrections" in the form of<br>
> pulses as the shaft turns;<br>
>> keeping the resolution constant and reducing the speed means you get<br>
> to wait more time between those corrections,<br>
>> essentially creating temporal "gaps" in your control loop.<br>
> <br>
> I think youd didn’t notice I’m using step motors so adjusting the<br>
> steps timing<br>
> is much precise than do ON/OFF stuff on DC motors which I’m nort<br>
> using here.<br>
> <br>
> _>Doing a search in aliexpress with the keywords "motor encoder" could<br>
> yield some results worth trying out._<br>
> <br>
> I don’t want to check the motor shaft speed using an internal<br>
> encoder..<br>
> It’s the paper pace I need to have an eye on.<br>
> <br>
> _> Quite the head scratcher you have here. As you can probably tell I<br>
> love these sorts of control puzzles!_<br>
> <br>
> That’s the fun of it !!<br>
> <br>
> De : Spiros Makris <spirosmakris92@gmail.com><br>
> Envoyé : 7 janvier 2025 05:53<br>
> À : Jean-Pierre Desrochers <jpdesroc@oricom.ca><br>
> Cc : synth-diy@synth-diy.org<br>
> Objet : Re: [sdiy] Looking for a mini rotary encoder with very low<br>
> torque (servo type)<br>
> <br>
> yes, I did after posting my message.<br>
> <br>
> It does seem fiddly, but if it works it works, I guess. 😅<br>
> <br>
> As is common in robotics, the exact thing you need to know and the<br>
> method you observe it can be a very convoluted topic. My understanding<br>
> of the problem is that you need the paper to move with a constant pace<br>
> under some sort of reader (I vaguely remember your past emails about<br>
> how to detect the hole patterns on the piano roll). In theory,<br>
> directly measuring that rotation by making the paper rotate the<br>
> encoder as it moves would suffice. What I'm thinking (and maybe<br>
> playing devil's advocate here), is that to achieve an 1:1 translation<br>
> of linear movement of paper to rotation of encoder you need a way to<br>
> ensure that the two are always in optimal contact, which basically<br>
> translates to keeping the tension controlled within some window, so<br>
> that the paper presses on it properly at all times. If that was the<br>
> case you wouldn't need this method at all, since a rotation of your<br>
> motor would already translate directly to linear motion of the paper,<br>
> not to mention that dodgy sensor measurements will definitely manifest<br>
> as weirdness in your control behaviour. As an example, think what<br>
> would a PID do if suddenly the measured speed was dropping to zero<br>
> because of slippage; it would accelerate thinking it needs to<br>
> compensate, increase the tension again and produce measurements, try<br>
> to slow down, then possibly lose tension again etc and enter a kind of<br>
> oscillation that might be hard to tame.<br>
> <br>
> Using a second passive wheel to sandwich the paper and force it to be<br>
> in good contact with your encoder wheel at all times could be<br>
> something to try out if you stumble on that problem.<br>
> <br>
> As a final thought, you mentioned that you don't care about encoder<br>
> resolution, but my experience with controlling slow moving motors is<br>
> that as speed goes down, the speed measurements become worse. The<br>
> reason is that you produce "corrections" in the form of pulses as the<br>
> shaft turns; keeping the resolution constant and reducing the speed<br>
> means you get to wait more time between those corrections, essentially<br>
> creating temporal "gaps" in your control loop. To solve it you will be<br>
> forced to increase the integration time (which converts position to<br>
> speed), which in turn will make your control loop slower. If this<br>
> speed is not enough orders of magnitude above the process you are<br>
> trying to control, you are in for some fun times trying to tune this<br>
> (more or less) untunable loop. In practice, spending more money for a<br>
> much more accurate encoder could solve this, but those buggers can get<br>
> pretty expensive when you go into the 100s of pulses per revolution<br>
> region. Doing a search in aliexpress with the keywords "motor encoder"<br>
> could yield some results worth trying out. Using gears to multiply the<br>
> revolutions measured by the sensors would be a cheap way out, but this<br>
> will proportionally increase the torque required to turn the wheel,<br>
> possibly making the paper slip.<br>
> <br>
> If this approach fails, it could be worth investigating ways to<br>
> control the tension of the paper, rather than its speed.<br>
> <br>
> Quite the head scratcher you have here. As you can probably tell I<br>
> love these sorts of control puzzles!<br>
> <br>
> On Mon, 6 Jan 2025 at 17:26, Jean-Pierre Desrochers<br>
> <jpdesroc@oricom.ca> wrote:<br>
> <br>
>> Thank You Spiros for your nice message.<br>
>> <br>
>> Did you see my last post about the final setup I will use ?<br>
>> <br>
>> The small wheel with tire is making a good steady contact<br>
>> with the scrolling paper I want to measure the speed of..<br>
>> <br>
>> So far so good.<br>
>> <br>
>> De : Spiros Makris <spirosmakris92@gmail.com><br>
>> Envoyé : 6 janvier 2025 07:29<br>
>> À : Jean-Pierre Desrochers <jpdesroc@oricom.ca><br>
>> Cc : Gerry Murray <synthimuse@gmail.com>; synth-diy@synth-diy.org<br>
>> Objet : Re: [sdiy] Looking for a mini rotary encoder with very low<br>
>> torque (servo type)<br>
>> <br>
>> Did you have a look at encoders built for motor control (and<br>
>> robotics in general)? They can in many flavors (and prices), and are<br>
>> usually mount on the shaft of the motor; in your case you might need<br>
>> to devise a different mounting method. Using rubber bands is<br>
>> probably going to slip, but if space allows you could use a belt,<br>
>> the way 3D printers do - if properly designed for the application it<br>
>> will not slip.<br>
>> <br>
>> In my experience, trying to make your own using hall sensors and<br>
>> magnets will be hard to nail down, unless you have a 3D printer (or<br>
>> other CNC type machine) that will take care of tolerances for you.<br>
>> If your goal is to keep speed constant, or measure amount of<br>
>> rotation, this can have a very big impact on your application.<br>
>> <br>
>> Finally, you can get rotary encoders aimed for UI/controls that have<br>
>> a smooth rotation. They specify the torque needed to turn them, so<br>
>> you can pick the lowest. If what you measure is actively moved by a<br>
>> motor then it will definitely have no problem turning it, and will<br>
>> be unlikely to slip, as long as it is mated to the rotating axis<br>
>> properly.<br>
>> <br>
>> You might also consider tensioning your moving paper in a different<br>
>> way, so that the slip will become negligible.<br>
>> <br>
>> On Thu, 12 Dec 2024 at 18:55, Jean-Pierre Desrochers via Synth-diy<br>
>> <synth-diy@synth-diy.org> wrote:<br>
>> <br>
>> _> Is it more important to measure the surface of the paper itself<br>
>> due to torque/slippage reasons like on a tape machine, _<br>
>> <br>
>> Yes.<br>
>> <br>
>> _> or will measuring the speed of the take up spool get you the same<br>
>> info?_<br>
>> <br>
>> No.<br>
>> <br>
>>> If the latter is an option, what about a magnet and a hall sensor<br>
>> on the take up spool,<br>
>>> disk the same diameter as the take up reel in the drive mechanism<br>
>> with some other sort of sensor on it like cheater mentioned,<br>
>>> or even a small notch in the take up spool (or equivalent disk in<br>
>> the drive mechanism) that has a limit switch with roller against it.<br>
>> Measuring the take up spool rotation speed will hide the actual<br>
>> problem I have<br>
>> which is paper thickness accumulation on the take up spool (with<br>
>> fixed speed)<br>
>> that speeds up the overall moving paper speed !<br>
>> <br>
>> So far my software only put 25 fixed parameters (by means of a<br>
>> potentiometer) to control<br>
>> the PLAY stepup motor steps and would not check for any speedup in a<br>
>> song.<br>
>> That’s what I discovered some days ago and am trying to fix.<br>
>> <br>
>> The solution is to read the paper moving surface (regardless of the<br>
>> take up spool speed )<br>
>> But in a very small space to do it.<br>
>> So no place for any encoder disc (it would need to be smaller than<br>
>> 18mm in diameter.. see why below),<br>
>> nor any ‘normal’ size Opto-Interrupter..<br>
>> <br>
>> Because of the very small and limited space I could mount this<br>
>> thing,<br>
>> <br>
>> I will use a model car wheel with rubber tire (overall outside<br>
>> diameter 18mm),<br>
>> <br>
>> mounted on a small 1/16in. shaft that will turn a small glued piece<br>
>> of opaque plastic<br>
>> in the slot of a very small SMD opto-interupter like this one :<br>
>> <br>
>> The below picture shows the actual tiny wheel with rubber tire I<br>
>> will use (to put against the moving paper)<br>
>> and part of the setup I used in a past project with a small rotating<br>
>> piece of plastic<br>
>> moving inside a Opto-Interrupter.<br>
>> Mine will be much smaller.<br>
>> <br>
>> I’m now waiting my Digikey order for the Opto-Interrupters + nylon<br>
>> hardware.<br>
>> <br>
>> And thanks Gerry for your nice suggestions !<br>
>> <br>
>> De : Synth-diy <synth-diy-bounces@synth-diy.org> De la part de<br>
>> Nathan Trites<br>
>> Envoyé : 12 décembre 2024 10:17<br>
>> À : Gerry Murray <synthimuse@gmail.com><br>
>> Cc : synth-diy@synth-diy.org<br>
>> Objet : Re: [sdiy] Looking for a mini rotary encoder with very low<br>
>> torque (servo type)<br>
>> <br>
>> This is the direction I was just thinking, and was also on the<br>
>> Adafruit site looking at plug and play sensor options.<br>
>> <br>
>> Jean-Pierre - I'm assuming this is to make the speed on your piano<br>
>> roll player programmable/repeatable? Is it more important to measure<br>
>> the surface of the paper itself due to torque/slippage reasons like<br>
>> on a tape machine, or will measuring the speed of the take up spool<br>
>> get you the same info? If the latter is an option, what about a<br>
>> magnet and a hall sensor on the take up spool, disk the same<br>
>> diameter as the take up reel in the drive mechanism with some other<br>
>> sort of sensor on it like cheater mentioned, or even a small notch<br>
>> in the take up spool (or equivalent disk in the drive mechanism)<br>
>> that has a limit switch with roller against it.<br>
>> <br>
>> If it must be against the paper, opto-interruptors and disks are<br>
>> available on their own, and then you could rig something up so that<br>
>> assembly rests lightly against the paper:<br>
>> <br>
>> <a href="https://bc-robotics.com/shop/opto-interrupter-with-mounting-tabs/">https://bc-robotics.com/shop/opto-interrupter-with-mounting-tabs/</a><br>
>> <br>
>> <a href="https://bc-robotics.com/shop/encoder-disc/">https://bc-robotics.com/shop/encoder-disc/</a><br>
>> <br>
>> Nathan<br>
>> <br>
>> On Thu, Dec 12, 2024 at 9:22 AM Gerry Murray via Synth-diy<br>
>> <synth-diy@synth-diy.org> wrote:<br>
>> <br>
>> Hi JP<br>
>> <br>
>> You could maybe try a resolver. The resolution of them can be very<br>
>> high<br>
>> : up to 16 bit.<br>
>> <br>
> <a href="https://www.mouser.co.uk/applications/resolver-encoder-motor-control/">
https://www.mouser.co.uk/applications/resolver-encoder-motor-control/</a><br>
>> <a href="https://www.instructables.com/Arduino-Resolver-Module/">https://www.instructables.com/Arduino-Resolver-Module/</a><br>
>> <br>
>> I always like it when you put an inquiry on the list because,<br>
>> usually 6<br>
>> months later on, a really cool project emerges. :-)<br>
>> <br>
>> Best wishes<br>
>> <br>
>> Gerry<br>
>> <br>
>> On 11/12/2024 15:09, Jean-Pierre Desrochers via Synth-diy wrote:<br>
>>> I'm looking for a very small (20mm or less body diameter)<br>
>>> rotary encoder with very low torque (servo type).<br>
>>> The low torque shaft is needed because it will turn by means<br>
>>> of a small wheel with rubber sides that will be put against a<br>
>> moving surface, turn and 'follow'<br>
>>> the moving surface.. no slipping allowed !<br>
>>> <br>
>>> The precision of steps/turn is not important.<br>
>>> But the higher will be best..<br>
>>> <br>
>>> I was thinking of using a dismantled PC mouse (rubber ball type)<br>
>>> and use one of the two  X/Y optical rotary encoders, but these PC<br>
>> mice<br>
>>> nowadays are hard to find.. So.<br>
>>> <br>
>>> I checked Digikey and Mouser but they have encoder too big<br>
>>> for my uses..<br>
>>> The smaller I found has 20mm in diameter..<br>
>>> <br>
>> <br>
> <a href="https://www.digikey.ca/en/products/detail/nidec-components-corporation/RES20D-50-201-1/6469509">
https://www.digikey.ca/en/products/detail/nidec-components-corporation/RES20D-50-201-1/6469509</a><br>
>>> <br>
>>> Any suggestions ?<br>
>>> <br>
>>> <br>
>>> ________________________________________________________<br>
>>> This is the Synth-diy mailing list<br>
>>> Submit email to: Synth-diy@synth-diy.org<br>
>>> View archive at: <a href="https://synth-diy.org/pipermail/synth-diy/">https://synth-diy.org/pipermail/synth-diy/</a><br>
>>> Check your settings at:<br>
>> <a href="https://synth-diy.org/mailman/listinfo/synth-diy">https://synth-diy.org/mailman/listinfo/synth-diy</a><br>
>>> Selling or trading? Use marketplace@synth-diy.org<br>
>> <br>
>> ________________________________________________________<br>
>> This is the Synth-diy mailing list<br>
>> Submit email to: Synth-diy@synth-diy.org<br>
>> View archive at: <a href="https://synth-diy.org/pipermail/synth-diy/">https://synth-diy.org/pipermail/synth-diy/</a><br>
>> Check your settings at:<br>
>> <a href="https://synth-diy.org/mailman/listinfo/synth-diy">https://synth-diy.org/mailman/listinfo/synth-diy</a><br>
>> Selling or trading? Use marketplace@synth-diy.org<br>
>> <br>
>> ________________________________________________________<br>
>> This is the Synth-diy mailing list<br>
>> Submit email to: Synth-diy@synth-diy.org<br>
>> View archive at: <a href="https://synth-diy.org/pipermail/synth-diy/">https://synth-diy.org/pipermail/synth-diy/</a><br>
>> Check your settings at:<br>
>> <a href="https://synth-diy.org/mailman/listinfo/synth-diy">https://synth-diy.org/mailman/listinfo/synth-diy</a><br>
>> Selling or trading? Use marketplace@synth-diy.org<br>
> ________________________________________________________<br>
> This is the Synth-diy mailing list<br>
> Submit email to: Synth-diy@synth-diy.org<br>
> View archive at: <a href="https://synth-diy.org/pipermail/synth-diy/">https://synth-diy.org/pipermail/synth-diy/</a><br>
> Check your settings at: <br>
> <a href="https://synth-diy.org/mailman/listinfo/synth-diy">https://synth-diy.org/mailman/listinfo/synth-diy</a><br>
> Selling or trading? Use marketplace@synth-diy.org<br>
________________________________________________________<br>
This is the Synth-diy mailing list<br>
Submit email to: Synth-diy@synth-diy.org<br>
View archive at: <a href="https://synth-diy.org/pipermail/synth-diy/">https://synth-diy.org/pipermail/synth-diy/</a><br>
Check your settings at: <a href="https://synth-diy.org/mailman/listinfo/synth-diy">
https://synth-diy.org/mailman/listinfo/synth-diy</a><br>
Selling or trading? Use marketplace@synth-diy.org<br>
</div>
</span></font></div>
</body>
</html>