How to make Arduino show up as USB trackpad or touch device?

I dislike almost everything about trackpads and Apple's "magic mouse" EXCEPT that they provide incredibly high resolution bidirectional scrolling. I can't find a more traditional mouse that can do this ANYWHERE, so I want to custom build one, most likely using a top-mounted trackball or something instead of a rotary encoder, but I keep getting stuck on the same thing: How do I tell the computer to scroll smoothly?! (Preferably on any OS that supports such features, personally I'd use it mostly on Windows 10 and MacOS)

I've had success using the Mouse library for normal move/click functions as well as the normal "notched" unidirectional scroll wheel; is there a similar library which would include trackpad / touchpad things? Possibly even rotation and pinch-zoom? Maybe something that could emulate gestures? I feel like I may have to try to communicate with existing trackpad drivers, or perhaps build my own (which I have no idea how to do), but the bottom line is I just don't know what data to send from the Arduino to the computer to get it to do what I want.

I see there exists a trackpad library, but this is for the other way around - getting INPUT from an existing trackpad sensor to use in the Arduino. I'm at a loss here!

This is mainly a driver problem on the PC. If you have existing hardware that does what you want, use that driver, sniff the USB communication and emulate it on the Arduino.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.