telmich / gpm

general purpose mouse
http://www.nico.schottelius.org/software/gpm/
GNU General Public License v2.0
84 stars 28 forks source link

Help Request: Investigating MicroSpeed PD600-9313 Travel Trackball Protocol #46

Open Saijin-Naib opened 1 year ago

Saijin-Naib commented 1 year ago

Using this device via a PL2303 Serial->USB adatper on Alpine Linux x86_64 edge, kernel 6.1.38-1-lts.

GPM is version 1.20.7-r4.

When testing out the mouse via mouse-test, here is what I see:

This program is designed to help you in detecting what type your
mouse is. Please follow the instructions of this program. If you're
bored before it is done, you can always press your 'Interrupt' key
(usually Ctrl-C)

     *** Remember: don't run any software which reads the mouse device
     *** while making this test. This includes "gpm","selection", "X"

Note that this program is by no means complete, and its main role is
to detect how does the middle button work on serial mice

Ok, so your mouse device is "/dev/ttyUSB0"

The possible mouse types are:
    mman (Mouseman)
    ms
    bare (Microsoft)
    bm (BusMouse)
    brw
    calr
    evdev
    exps2 (ExplorerPS/2)
    js (Joystick)
    genitizer
    imps2
    logi (Logitech)
    logim
    mm (MMSeries)
    ms3
    ms+
    ms+lr
    msc (MouseSystems)
    netmouse
    pnp
    ps2 (PS/2)
    sun
    syn (synaptics)
    synps2 (synaptics_ps2)
    twid
    vsxxxaa
    wacom

Now please press and release your left mouse button,
one time only

    Removing type "bm" because of 'different read() semantics'
    Removing type "calr" because of 'different read() semantics'
    Removing type "evdev" because of 'different read() semantics'
    Removing type "js" because of 'different read() semantics'
    Removing type "logi" because of 'different read() semantics'
    Removing type "syn" because of 'different read() semantics'

Now you will be asked to generate different kind of events,
in order to understand what protocol is your mouse speaking
    Baud rate is 1200

==> Detecting the packet size

Now please press and release several times
the left button of your mouse, *** trying not to move it ***

Press any key when you've done enough
matches for 3 bytes: 156   -- matches for 5 bytes: 0
** type 'mman' still possible
** type 'ms' still possible
** type 'bare' still possible
    Removing type "brw" because of 'different packet lenght'
    Removing type "exps2" because of 'different packet lenght'
    Removing type "genitizer" because of 'incorrect button detected'
    Removing type "imps2" because of 'different packet lenght'
    Removing type "logim" because of 'different packet lenght'
    Removing type "mm" because of 'incorrect button detected'
    Removing type "ms3" because of 'different packet lenght'
** type 'ms+' still possible
** type 'ms+lr' still possible
    Removing type "msc" because of 'different packet lenght'
    Removing type "netmouse" because of 'different packet lenght'
** type 'pnp' still possible
    Removing type "ps2" because of 'incorrect button detected'
    Removing type "sun" because of 'incorrect button detected'
    Removing type "synps2" because of 'different packet lenght'
    Removing type "twid" because of 'different packet lenght'
    Removing type "vsxxxaa" because of 'incorrect button detected'
    Removing type "wacom" because of 'different packet lenght'

Your mouse is one of the ms family, but do you have the middle button (y/n)? 

Your mouse is one of the ms family, but do you have the middle button (y/n)? n

Then, you should use the "bare" protocol on "/dev/ttyUSB0"

The mouse lights up when clicked in mouse-test, but is otherwise unresponsive.

When issuing any of the following:

$ doas gpm -m /dev/ttyUSB0 -t bare
$ doas gpm -m /dev/ttyUSB0 -t ms
$ doas gpm -m /dev/ttyUSB0 -t ms+
$ doas gpm -m /dev/ttyUSB0 -t ms+lr
$ doas gpm -m /dev/ttyUSB0 -t mman
$ doas gpm -m /dev/ttyUSB0 -t pnp

The mouse lights up when clicked but is otherwise unresponsive, but the lights only work for about 3s after the gpm daemon is started, afterwards it is completely unresponsive.

I'd like to note that this setup works fine, even under Windows 11, so I know the hardware itself is not suspect at this time.

How do I go about investigating what protocol this mouse might be using, or collecting any other information that might be useful for this mouse?

It'd be really special for me to be able to use this mouse, but I understand that this is niche and very old.

Thank you!