Encoder Glitches

Hello, Organistas!

I have an OG Organelle which is a few years old now, and I’ve noticed that even since new, that rotating the encoder counter-clockwise to move the selector up sometimes moves the selector down - particularly when rotated quickly. Rotating the encoder clockwise to move the selector down usually works fine.

Has anyone else had this issue, or can suggest any fixes? Is it resolvable in software through some type of filtering (similar to a debounce algorithm)? Or is a new encoder the order of the day? I was hoping it might be resolvable through software, since I would assume having a faulty decoder from the factory is unlikely.

Any thoughts, tips or suggestions gratefully received!

Thanks!

Edit: I’ve found the relevant source code for the rotary encoder driver, and it looks like it might be a software, rather than a hardware, issue. Essentially it appears (from a cursory glance), that the encoder is periodically polled and uses combinatorial logic to decode it with no high-pass filter. To me this looks like, depending on the polling frequency of the encoder, the rotational speed, and amount of noise from the encoder, it might be easy for the rotation direction to be confused. I’d be keen to try some different algorithms, does anyone have any tips on cross-compiling the operating system on a Mac or Linux VM for the Organelle?

I can’t say ive seen any issues with the encoder that required filtering , unlike the pots/buttons which already are.

If your doing a small project like this, it be easier to compile on the organelle itself.

Note: I assume your planning on making changes to the ‘mother host’ , as there is no facility to flash the stm micro-controller

Thanks Mark.

I’m not sure where this particular file sits in the OS, but the file in question is

I will have to dig a little bit deeper to find out how to go about it. I don’t have a WiFi adaptor for my Organelle, so will try a USB-Ethernet adaptor and see how that goes in terms of getting SSH access.

In my case, the encoder glitching only really occurs when scrolling up (for example, through a long list of patches) very fast. Looks like C&G’s implementation is quite basic, but I think that if we can assume it’s been polled at a certain frequency then it should be possible to assume that very rapid changes scrolling direction shouldn’t be possible.

That’s for the organelle-m not the organelle-1

As I said the organelle-1 uses a micro-controller for interfacing to the encoder/screen/pots , the communicates this via serial to the SoC running Linux.

The organelle-m runs it all on the CM3

So for your organelle-1 you need to look at the serialmcu code
Important note : this code is in dev it’s not been released , you’d be better off looking at the released version for now.

Ethernet access works I use it all the time.
Or just connect an hdmi monitor and keyboard.