Skip to content

Rotary Encoder mod (mandatory)

mean00 edited this page Jun 11, 2023 · 12 revisions

The vanilla DSO150 is using the same pins to send data to the screen and to read the rotary encoder. The pins are reconfigured on the fly from input to output and back depending on the usage.

It means that if the screen is being refreshed, some rotary events are missed or delayed. That will make the rotary encoder feels unresponsive.

There is a very simple modification to do to make it much better : Connect them to PB14/PB15, which are not used. That way we wont miss rotary event whatever the screen is doing and we can use plain pin interrupts

Simplest way

This is using the rotary encoder directly soldered to the main board (without the riser PCB)

screenshot

Move away R5 and R6 (either push them up a bit like on the pic or remove them altogether) Connect the rotary encoder to PB14/PB15 (if it is inverted, you can swap it later in the software)

Warning If you use the small PCB to hold the rotary encoder, the pins to connect are the Two on the left.

Reverting

Disconnect PB14/PB15, put back R5 and R6 (1KOhm resistors)