[sdiy] MIDI control syntax to debug 16 bits values on the MIDI steam using MIDI-OX MIDI monitor ?
Jean-Pierre Desrochers
jpdesroc at oricom.ca
Sat Jan 11 22:49:26 CET 2025
I’m debugging a PIC program that normally sends MIDI data on one of the micro’s UART port.
And that works fine.
But I’m in a debugging section where I’d like to use this MIDI output port
to output 16 bits datas (2 consecutives bytes) wired on my Windows MIDI-OX MIDI stream monitor.
The thing is that this program check the incoming MIDI command data values
and do not show those that would exceed standard MIDI specs..
So my question is :
Is there a MIDI command (SYSEX or whatever..) that I could put 2 consecutive 8 bits datas in
and would be accepted in the standard MIDI protocol ??
For example Control Change (0xE0) uses 2 consecutive bytes variables but each of them
cannot exceed 0x7F. So.. not usable for me.
Any commands that would do ?
Thanks.
De : Mike Bryant <mbryant at futurehorizons.com>
Envoyé : 7 janvier 2025 18:37
À : rburnett at richieburnett.co.uk; 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)
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.
_____
From: Synth-diy <synth-diy-bounces at synth-diy.org <mailto:synth-diy-bounces at synth-diy.org> > on behalf of rburnett at richieburnett.co.uk <mailto:rburnett at richieburnett.co.uk> <rburnett at richieburnett.co.uk <mailto:rburnett at richieburnett.co.uk> >
Sent: 07 January 2025 22:57
To: Jean-Pierre Desrochers <jpdesroc at oricom.ca <mailto:jpdesroc at oricom.ca> >
Cc: synth-diy at synth-diy.org <mailto:synth-diy at synth-diy.org> <synth-diy at synth-diy.org <mailto:synth-diy at synth-diy.org> >
Subject: Re: [sdiy] Looking for a mini rotary encoder with very low torque (servo type)
JP would it be practical to use a capstan and pinch-roller arrangement
to keep the velocity of the paper constant, despite the increase in the
effective diameter of the take-up roller? Like how tape was driven
through an old reel-to-reel tape machine.
Apologies if someone already suggested this and I missed it.
-Richie.
On 2025-01-07 21:19, Jean-Pierre Desrochers via Synth-diy wrote:
> 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 <mailto:spirosmakris92 at gmail.com> >
> Envoyé : 7 janvier 2025 05:53
> À : Jean-Pierre Desrochers <jpdesroc at oricom.ca <mailto:jpdesroc at oricom.ca> >
> 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)
>
> 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>
> ________________________________________________________
> 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/20250111/a760ebb6/attachment.htm>
More information about the Synth-diy
mailing list