<div dir="ltr">yes, I did after posting my message. <div>It does seem fiddly, but if it works it works, I guess. 😅</div><div></div><div>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. <br></div><div>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.</div><div>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.<br></div><div>If this approach fails, it could be worth investigating ways to control the tension of the paper, rather than its speed.</div><div>Quite the head scratcher you have here. As you can probably tell I love these sorts of control puzzles!</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Mon, 6 Jan 2025 at 17:26, Jean-Pierre Desrochers <<a href="mailto:jpdesroc@oricom.ca">jpdesroc@oricom.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg299506312845398061"><div lang="FR-CA" style="overflow-wrap: break-word;"><div class="m_299506312845398061WordSection1"><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif">Thank You Spiros for your nice message.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif">Did you see my last post about the final setup I will use ?<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif">The small wheel with tire is making a good steady contact<br>with the scrolling paper I want to measure the speed of..<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif">So far so good.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt;font-family:Calibri,sans-serif"><u></u> <u></u></span></p><div style="border-top:none;border-right:none;border-bottom:none;border-left:1.5pt solid blue;padding:0cm 0cm 0cm 4pt"><div><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0cm 0cm"><p class="MsoNormal"><b><span lang="FR" style="font-size:11pt;font-family:Calibri,sans-serif">De :</span></b><span lang="FR" style="font-size:11pt;font-family:Calibri,sans-serif"> Spiros Makris <<a href="mailto:spirosmakris92@gmail.com" target="_blank">spirosmakris92@gmail.com</a>> <br><b>Envoyé :</b> 6 janvier 2025 07:29<br><b>À :</b> Jean-Pierre Desrochers <<a href="mailto:jpdesroc@oricom.ca" target="_blank">jpdesroc@oricom.ca</a>><br><b>Cc :</b> Gerry Murray <<a href="mailto:synthimuse@gmail.com" target="_blank">synthimuse@gmail.com</a>>; <a href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a><br><b>Objet :</b> Re: [sdiy] Looking for a mini rotary encoder with very low torque (servo type)<u></u><u></u></span></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">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.<u></u><u></u></p><div><p class="MsoNormal">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.<u></u><u></u></p></div><div><p class="MsoNormal">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.<u></u><u></u></p></div><div><p class="MsoNormal">You might also consider tensioning your moving paper in a different way, so that the slip will become negligible.<u></u><u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">On Thu, 12 Dec 2024 at 18:55, Jean-Pierre Desrochers via Synth-diy <<a href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a>> wrote:<u></u><u></u></p></div><blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin-left:4.8pt;margin-right:0cm"><div><div><div><p class="MsoNormal"><b><i><span style="color:rgb(85,142,213)">> Is it more important to measure the surface of the paper itself due to torque/slippage reasons like on a tape machine, </span></i></b><u></u><u></u></p><p class="MsoNormal" style="margin-bottom:12pt">Yes.<u></u><u></u></p><p class="MsoNormal"><b><i><span style="color:rgb(85,142,213)">> or will measuring the speed of the take up spool get you the same info?</span></i></b><u></u><u></u></p><p class="MsoNormal">No.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"><b><i><span style="color:rgb(85,142,213)">>  If the latter is an option, what about a magnet and a hall sensor on the take up spool, <br>> disk the same diameter as the take up reel in the drive mechanism 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 the drive mechanism) that has a limit switch with roller against it.</span></i></b><br>Measuring the take up spool rotation speed will hide the actual problem I have<br>which is paper thickness accumulation on the take up spool (with fixed speed)<br><u>that speeds up the overall moving paper speed !</u><u></u><u></u></p><p class="MsoNormal">So far my software only put 25 fixed parameters (by means of a potentiometer) to control<br>the PLAY stepup motor steps and would not check for any speedup in a song.<br>That’s what I discovered some days ago and am trying to fix.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal" style="margin-bottom:12pt">The solution is to read the paper moving surface (regardless of the 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 18mm in diameter.. see why below), <br>nor any ‘normal’ size Opto-Interrupter..<u></u><u></u></p><p class="MsoNormal">Because of the very small and limited space I could mount this thing,<u></u><u></u></p><p class="MsoNormal">I will use a model car wheel with rubber tire (overall outside diameter 18mm),<u></u><u></u></p><p class="MsoNormal">mounted on a small 1/16in. shaft that will turn a small glued piece of opaque plastic<br>in the slot of a very small SMD opto-interupter like this one :<u></u><u></u></p><p class="MsoNormal" style="margin-bottom:12pt"><u></u> <u></u></p><p class="MsoNormal"><img border="0" width="248" height="336" style="width: 2.5833in; height: 3.5in;" id="m_299506312845398061m_6341782698702377523Image_x0020_2" src="cid:ii_194403ed03f4ce8e91"><u></u><u></u></p><p class="MsoNormal">The below picture shows the actual tiny wheel with rubber tire I will use (to put against the moving paper)<br>and part of the setup I used in a past project with a small rotating piece of plastic<br>moving inside a Opto-Interrupter.<br>Mine will be much smaller. <u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"><img border="0" width="1048" height="593" style="width: 10.9166in; height: 6.177in;" id="m_299506312845398061m_6341782698702377523Image_x0020_1" src="cid:ii_194403ed03f5b006a2"><u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">I’m now waiting my Digikey order for the Opto-Interrupters + nylon hardware.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">And thanks Gerry for your nice suggestions !<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><div style="border-top:none;border-right:none;border-bottom:none;border-left:1.5pt solid blue;padding:0cm 0cm 0cm 4pt"><div><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0cm 0cm"><p class="MsoNormal"><b><span lang="FR">De :</span></b><span lang="FR"> Synth-diy <<a href="mailto:synth-diy-bounces@synth-diy.org" target="_blank">synth-diy-bounces@synth-diy.org</a>> <b>De la part de</b> Nathan Trites<br><b>Envoyé :</b> 12 décembre 2024 10:17<br><b>À :</b> Gerry Murray <<a href="mailto:synthimuse@gmail.com" target="_blank">synthimuse@gmail.com</a>><br><b>Cc :</b> <a href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a><br><b>Objet :</b> Re: [sdiy] Looking for a mini rotary encoder with very low torque (servo type)</span><u></u><u></u></p></div></div><p class="MsoNormal"> <u></u><u></u></p><div><p class="MsoNormal">This is the direction I was just thinking, and was also on the Adafruit site looking at plug and play sensor options. <u></u><u></u></p><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">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.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">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:<u></u><u></u></p></div><div><p class="MsoNormal"><a href="https://bc-robotics.com/shop/opto-interrupter-with-mounting-tabs/" target="_blank">https://bc-robotics.com/shop/opto-interrupter-with-mounting-tabs/</a><u></u><u></u></p></div><div><p class="MsoNormal"><a href="https://bc-robotics.com/shop/encoder-disc/" target="_blank">https://bc-robotics.com/shop/encoder-disc/</a><u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Nathan<u></u><u></u></p></div></div><p class="MsoNormal"> <u></u><u></u></p><div><div><p class="MsoNormal">On Thu, Dec 12, 2024 at 9:22<span style="font-family:Arial,sans-serif"> </span>AM Gerry Murray via Synth-diy <<a href="mailto:synth-diy@synth-diy.org" target="_blank">synth-diy@synth-diy.org</a>> wrote:<u></u><u></u></p></div><blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt 4.8pt"><p class="MsoNormal" style="margin-bottom:12pt">Hi JP<br><br>You could maybe try a resolver. The resolution of them can be very high <br>: up to 16 bit.<br><a href="https://www.mouser.co.uk/applications/resolver-encoder-motor-control/" target="_blank">https://www.mouser.co.uk/applications/resolver-encoder-motor-control/</a><br><a href="https://www.instructables.com/Arduino-Resolver-Module/" target="_blank">https://www.instructables.com/Arduino-Resolver-Module/</a><br><br>I always like it when you put an inquiry on the list because, usually 6 <br>months later on, a really cool project emerges. :-)<br><br>Best wishes<br><br>Gerry<br><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 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 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>> <a href="https://www.digikey.ca/en/products/detail/nidec-components-corporation/RES20D-50-201-1/6469509" target="_blank">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: <a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>> View archive at: <a href="https://synth-diy.org/pipermail/synth-diy/" target="_blank">https://synth-diy.org/pipermail/synth-diy/</a><br>> Check your settings at: <a href="https://synth-diy.org/mailman/listinfo/synth-diy" target="_blank">https://synth-diy.org/mailman/listinfo/synth-diy</a><br>> Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">marketplace@synth-diy.org</a><br><br><br>________________________________________________________<br>This is the Synth-diy mailing list<br>Submit email to: <a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>View archive at: <a href="https://synth-diy.org/pipermail/synth-diy/" target="_blank">https://synth-diy.org/pipermail/synth-diy/</a><br>Check your settings at: <a href="https://synth-diy.org/mailman/listinfo/synth-diy" target="_blank">https://synth-diy.org/mailman/listinfo/synth-diy</a><br>Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">marketplace@synth-diy.org</a><u></u><u></u></p></blockquote></div></div></div></div><p class="MsoNormal">________________________________________________________<br>This is the Synth-diy mailing list<br>Submit email to: <a href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>View archive at: <a href="https://synth-diy.org/pipermail/synth-diy/" target="_blank">https://synth-diy.org/pipermail/synth-diy/</a><br>Check your settings at: <a href="https://synth-diy.org/mailman/listinfo/synth-diy" target="_blank">https://synth-diy.org/mailman/listinfo/synth-diy</a><br>Selling or trading? Use <a href="mailto:marketplace@synth-diy.org" target="_blank">marketplace@synth-diy.org</a><u></u><u></u></p></div></blockquote></div></div></div></div></div></blockquote></div>