Fun little project for a simple scrolling input method using a potentiometer and a few buttons. Given that the Arduino Uno R3 I am using cannot communicate with the PC as an HID device unless the user decides to flash custom firmware, I have decided to implement a solution based on reading the serial output instead.
The switches used in my example are Omron B3WNs, and the potentiometer is a common 10k ohm one (306E).

Only Windows support for now, executable builds are made using Auto-py-to-exe.
Simulate on Tinkercad here: link



Close the IDE when complete.

On first launch, if you receive the following error:

Please make sure you are using the correct COM port for your connection by changing it in the settings, then click restart.

You can check the COM port your Arduino is using in Arduino IDE.
If you are unable to input the full range of characters (a-z), note that in the sketch (.ino) file for the Arduino, the potentiometer range is set from 0 to 670 for my particular setup. If you are using a different potentiometer, please change the range to something appropriate for your components. (Refer here)
Make sure no other program (for example, Arduino IDE) is accessing your COM port while attempting to run this program; this will prevent it from receiving data. Also, make sure you don't already have an instance running. If the window is hidden, just force close it in Task Manager.
Closing the settings menu without saving and restarting causes the UI to never time out.(fixed, now the main window hides itself anyways)Button gestures with MODE are jank because too many variations.(Maybe fixed???)- buggy behaviour with window when waking from background
- You tell me :D
Refer to Wiki