Summary
This is a high resolution rotary device. Powererd by a 32u4 (Pro Micro) microcontroller, which supports USB HID. This means the controller can be freely programmed via the Arduino IDE to work with any HID copatible device.
Build cost around €10-15 (see component list)
Video:
https://youtube.com/shorts/Ty42Z4h6TcQ
The device only works via cable. It would be possible to add a Bluetooth module and a battery, but in my opinion that makes the device far too complex for a DIY project. There would also be several technical challenges involved in making it wireless.
As of now the device is configured as a surface dial device. This unlocks surface dial functionality in Windows.
I have only tested this device in Windows!
The dial can be reprogrammed easily for Linux or macOS, but it won’t support high‑resolution scrolling because I haven’t figured out how to set up the correct HID descriptors. I also don’t plan to invest much time in figuring that out.
Hardware Needed
AS5600
23x23x3.2mm
Holes 3.7mm (centers in 16x16 square)
Magnet 5x2 mm (usually comes with the module)
~€2,50 on AliExpress

AS5600 module

AS5600 Schematic
Pro Micro (32u4) usb-c
~€5 on AliExpress

Ball Bearing 6809
45x58x7 mm
~€5 on AliExpress

Tools needed
3D-Printer
Soldering iron + wires to connect encoder
Basic Arduino IDE skills
5 small screws for assembly
Rubber mat / Antislip surface to stick to the bottom of the dial
Sandpaper (~400 grit) to smooth the dial surface
Build Details
Programming/Software
The library used for HID: https://github.com/NicoHood/HID
This library has to be manually placed in the Arduino IDE libraries.
Etiquetas
Fuente del modelo
