Close

Design considerations

A project log for Programmable ambidextrous joystick mouse

A flexible and accessible pointing device

ndbNDB 08/30/2020 at 10:390 Comments

The TeensyLC is my go-to micro-controller board for building USB HID projects. The libraries that come with Teensyduino make prototyping almost too easy!
The challenge was writing the firmware so that all the mouse events could be remapped across the various input methods. There would also be additional events, like mouse button toggling and instant double clicks. Also, I wanted the cursor move rate to be configurable across the joystick axis range, using different interpolation functions per axis.

I wanted the device to have more than one set of programmed ‘presets’ that can be cycled through to change to the mappings best suited to the task at hand. For example, the initial preset would operate like a regular mouse, but the next preset would map the horizontal and vertical scroll wheel events to the joystick axis instead, which would be useful in the context of reading documents. This required adding an additional ‘mode’ button to the device design. I considered putting this button on the front of the device, but that position would have been ergonomically awkward. I now envision it being beneath the bottom mouse button, potentially under the ‘pinky’ finger.

Discussions