AndunHH / spacemouse

Repository for a space mouse, which emulates a 3Dconnexion "Space Mouse Pro wireless". It is based on four joysticks with additional keys or an encoder
Other
83 stars 16 forks source link

Reverse Direction and Speed options in software not working #13

Open voxpop9 opened 3 months ago

voxpop9 commented 3 months ago

As per the title, i have tried to reverse and slow down the mouse using the 3Dconnexion's software and it is not working.

AndunHH commented 3 months ago

Yes, this is a known problem now. The 3dconnexion driver doesn't save this setting on the pc, but probably send this information to the spacemouse. And our version doesn't recognize this settings.

I would also like to have this feature! We need to find a solution. Maybe some other project has already solved this issue and we can merge the solution? I would start by looking into the history of the projects, where teaching tech sourced the HID interface.

voxpop9 commented 3 months ago

Yes, this is a known problem now. The 3dconnexion driver doesn't save this setting on the pc, but probably send this information to the spacemouse. And our version doesn't recognize this settings.

I would also like to have this feature! We need to find a solution. Maybe some other project has already solved this issue and we can merge the solution? I would start by looking into the history of the projects, where teaching tech sourced the HID interface.

That's interesting, because the Arduino code itself mentions using the software to invert it. perhaps 3Dconnexions changed this at one point.

AndunHH commented 3 months ago

You are right, but I am sure, this was not working on windows ...

For Linux this is a different story, as the original driver is from 2014 and spacenavd is a popular alternative, which allows this. I linked it in the readme, if you are interested.

voxpop9 commented 3 months ago

You are right, but I am sure, this was not working on windows ...

For Linux this is a different story, as the original driver is from 2014 and spacenavd is a popular alternative, which allows this. I linked it in the readme, if you are interested.

Im on Windows so it foesn't apply to me unfortunately. Oh well, i only use it for Onshape at the moment so code level modifications will suffice for now.

coliss86 commented 3 months ago

I don't know how to implement this, the USB bus should be sniffed with a genuine mouse and the protocol should be reversed engineered. A lot of work...

AndunHH commented 2 months ago

To let you know: I did an overhaul of the USB HID interface and I'm not done yet - in the branch EnableLED

There are many reports in the HID descriptor that are not used now. I found out that report ID

  1. IN Translation
  2. IN Rotation
  3. IN Keys
  4. OUT LEDs
  5. not existent
  6. OUT Usage (0x21) Cnt 1
  7. OUT Usage (0x22) Cnt 1
  8. OUT Usage (0x23) Cnt 7
  9. OUT Usage (0xB0) Cnt 7
  10. OUT Usage (0x25) Cnt 7
  11. OUT Usage (0x26) Cnt 1 ...

'19. OUT Usage (0x2E) Cnt 1

See https://github.com/AndunHH/spacemouse/blob/main/SpaceNavigator.md#hid-report-of-space-navigator for the whole HID descriptor.

I guess, that those six reports will tell the spacemouse about the sensitivities for the single axis. I have no clue, what report 19 will tell us ;) ... After finishing the LEDs, this will be next and is recorded here as a reminder.

AndunHH commented 1 month ago

My last comment is missing some important information: the observed hid descriptor with the additional reports are observed in a classical space navigator, which is NOT equal to our emulated space mouse pro!

I tried to switch our emulation to such a space navigator to get the configuration going. Unfortunately, this failed, because the driver didn't send any additional information.??? As expected the keys stopped working because the classic space navigator has only two keys. Therefore we stay we the actual emulation of the space mouse pro, where at least all keys are working.

If someone has such a space mouse pro, so we can Wireshark the USB communication, this would help!