TL DR summary begins: Use (X axis, Y axis, mouse wheel) of one pointing device to control (horizontal scroll, vertical scroll, zoom), while other connected pointing devices function as normal, except their scroll wheel functions are perhaps remapped to something else like volume control. I think this requires using USBHost_t36 and serial, keyboard, mouse, joystick USB mode at the same time because I plan to throw in a few other functions as well. The pointing device, or multiple devices via USB hub will connect to the Teensy host port. Teensy will receive and forward most messages unaltered to its PC host, but will intercept some messages and instead forward the scroll or zoom messages.

I'm posting this now because I see fresh commits in https://github.com/PaulStoffregen/USBHost_t36 so it is probably fresh for Paul.

The overall problem I am trying to solve is described here https://ubuntuforums.org/showthread.php?t=2458346 but OS accessibility development is notoriously slow, so I am trying the microcontroller route. If any of you know how to do it in the OS, please share.

On my Ubuntu 18.04 Jetson Nano computer, I want to be able to use any regular generic mouse, and/or keyboard touchpad as they normally function. Specific touchpad https://www.logitech.com/en-us/produ...20-007182.html but it could also be any laptop touchpad or touchpoint device on a laptop.
At the same time, also permit a Kensington Orbit Trackball https://www.kensington.com/p/product...h-scroll-ring/ to perform only horizontal scroll, vertical scroll, zoom ring functions and allow its left and right buttons to be repurposed. This is intended to aid viewing of schematics, gerber files, CAD files on a smallish screen.

Do I need to connect the Orbit trackball AND one of the other pointing devices to the USBHost_t36 port to permit the Orbit spoofing its output as if it were the other device? Or can the Orbit alone be connected.

Where can I find a comprehensive list of messages that can be sent by a Teensy serial, keyboard, mouse, joystick device. Are there any restrictions on the combined device type vs individual device types?

I am specifically interested in this page https://www.pjrc.com/teensy/usb_debug_only.html which is linked to from other pages and is what you get when clicking "Code Library". No mention of the actual code library https://github.com/PaulStoffregen appears on pjrc.com as far as I can tell. What is meant by "USB Debug Only, Version 1.1. -- WARNING: obsolete, use Teensyduino for new projects"? It is unclear what is still supported by which devices, or how to use teensyduino to do the same thing. I would like to develop a Linux GUI desktop application that talks to this same Teensy device. Eventually the GUI will issue commands to the Teensy to run motors or lights, etc.

Where can I find guidance on using USBHost_t36 to parse the output from the Orbit trackball?