High-resolution scrolling for the Adept

We just released some firmware that enables high-resolution scrolling for the Adept. Anybody using an Adept with their Windows or Linux machine can now have pixel-by-pixel scrolling precision, and all you need to do is upload the new firmware, which takes about ten seconds!

Here’s a bit more info.

We recently released the Knob, which features high-resolution scrolling. This is a great feature with a lot of useful applications. It requires a high-precision sensor, which isn’t really common in our devices for scrolling. Many of them rely on a low-fidelity Gray encoder, which works well but has discrete steps.

The Adept, however, uses the PMW-3360 for its scrolling, a sensor that has incredibly high fidelity. It’s perfect for high-resolution scrolling use.

We have two firmwares that are ready to be used by anybody with an Adept: one with dragscroll as a toggle, and one with dragscroll as a click-and-hold. Importantly, these only work with Windows and Linux.

If you want to customize things, here’s a patch file with everything that you need to enable high-resolution scrolling:

diff --git a/keyboards/ploopyco/madromys/config.h b/keyboards/ploopyco/madromys/config.h
index db600a16d1..e697236f1d 100644
--- a/keyboards/ploopyco/madromys/config.h
+++ b/keyboards/ploopyco/madromys/config.h
@@ -18,6 +18,14 @@

 #pragma once

+#define POINTING_DEVICE_HIRES_SCROLL_ENABLE 0
+#define POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER 15
+
+#define PLOOPY_DRAGSCROLL_MOMENTARY
+#define PLOOPY_DRAGSCROLL_DIVISOR_H 4.0
+#define PLOOPY_DRAGSCROLL_DIVISOR_V 4.0
+#define PLOOPY_DRAGSCROLL_INVERT
+
 #define UNUSABLE_PINS \
     { GP1, GP3, GP4, GP6, GP8, GP10, GP14, GP16, GP18, GP20, GP22, GP24, GP25, GP26, GP27, GP28, GP29 }


As you can see, it’s extremely short! Only two lines need to be added to enable high-resolution scrolling and scale it appropriately (POINTING_DEVICE_HIRES_SCROLL_MULTIPLIER has a default value of 120, but we find that this makes scrolling too slow).

Our thanks go out to Github contributor @eynsai (and others!), who contributed the PR that enabled high-resolution scroll stepping.

Happy customization!