[sdiy] Digital encoders missing codes in many devices - why?

Tom Wiltshire tom at electricdruid.net
Sun Aug 22 00:07:53 CEST 2021

It’s true that mouse wheels are optical, and it’s also true that I’ve “fixed" them several times just by cleaning accumulated crud out of them. Being optical doesn’t make them immune to everything. They still get finger grease from mouse pads, and cat hair, and god only knows what else mixed up into a sticky grey paste that gets stuck all around the insides!

To be fair to the “optical” part of the mechanism, mostly the problems seemed to stem from stuff getting stuck to the outside of the optical encoder disks, meaning that they didn’t turn reliably when the mouse ball moved - e.g the actual optical sensing was probably sill working accurately. Taking the wheels out and cleaning the muck off the edges that contact the mouse ball helps no end. The ball itself gets dirty too, of course, but this doesn’t seem to cause so much trouble until the muck transfers to the encoder wheels.

At least, that’s been my experience of it.


       Electric Druid
Synth & Stompbox DIY

> On 21 Aug 2021, at 18:20, cheater cheater via Synth-diy <synth-diy at synth-diy.org> wrote:
> That would be a good initial theory, however, I believe that mouse
> wheels are fully optical, and have been since the very beginning.
> On Sat, Aug 21, 2021 at 6:04 PM David Riley <fraveydank at gmail.com> wrote:
>> On Aug 21, 2021, at 09:24, cheater cheater via Synth-diy <synth-diy at synth-diy.org> wrote:
>>> Hi all,
>>> I've noticed a trend in consumer electronics where encoders sometimes
>>> miss codes. By this I mean I'll scroll to the next detent and the
>>> corresponding value does not change. Sometimes it's completely
>>> skipped. Sometimes, the phase of the code will flip: for example, if
>>> normally the next code is sent out when overcoming the separation
>>> between subsequent detents at the "peak" of the separator, instead it
>>> will be sent out when moving around inside a single detent, when
>>> moving past the middle of the "valley" of the detent. However, this
>>> only happens rarely. For example, with a Logitech mouse, it'll only
>>> happen once every few days. With the Eventide stomp box, I have to
>>> make several full turns with the encoder before something like this
>>> happens.
>>> It comes in all places. My most recent problematic device is an
>>> Eventide H9, but this also happens on scroll wheels in Logitech mice,
>>> on microwave ovens, etc.
>>> Why does this happen? Why is it so spread out? Is this a programming
>>> issue, or a mechanical issue related to the lifetime of the encoder?
>> Having made these before at various different scales, I’d guess that it’s probably mechanical quadrature encoders using brushes to contact. If so, intermittent brush contact would do exactly that; a lot of decoders also don’t handle things like simultaneous transitions well.
>> There’s a reason ball mice used optical encoders. They last practically forever. Most brushless DC motors and other servos also use optical encoders. For some military hardware I worked with (the carrier-side instrument landing system antenna motors), we used a magnetic encoder, which I’ve not seen elsewhere.
>> Anyway, degrading contacts would be my guess. Either bent or dirty brushes. Does a hit of De-Ox-It help?
>> - Dave
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at synth-diy.org
> http://synth-diy.org/mailman/listinfo/synth-diy
> Selling or trading? Use marketplace at synth-diy.org

More information about the Synth-diy mailing list