Spacemouse wireless as a normal mouse
Moderator: Moderators
-
- Posts: 2
- Joined: Fri Jul 05, 2019 12:41 pm
Spacemouse wireless as a normal mouse
HI
Is it possible to use Spacemouse wireless with newest drivers (10.6) as a normal mouse (so that it controls the coursor) in certain applications, such as Chrome for example?
Any help would be apprieciated
Is it possible to use Spacemouse wireless with newest drivers (10.6) as a normal mouse (so that it controls the coursor) in certain applications, such as Chrome for example?
Any help would be apprieciated
Re: Spacemouse wireless as a normal mouse
Yes, there is some capability to control act like a 2D mouse.
It isn't a great 2D mouse. It's basically a joystick with all the limitations of a joystick. You are driving the cursor by velocity not displacement. It's difficult to stop on a dime. There's a reason we all use traditional 2D mice. We even make them.
Unfortunately the GUI can not help you set it up. You have to edit XML files. I can help you with that if you want to go down that road.
Some more info on the scenario would help.
Do you want to use this as your normal mouse? Do you also have a 2D mouse attached? Which apps do you want to use this with, and why?
The problem becomes how to you tell the driver which mode you want:
1) You can tell the driver to only send 2D mouse events all the time. You can then roam all around the desktop.
2) You could press a button on the device to tell it to toggle between 2D and 3D modes. But your SMW only has two. That's pretty limited.
3) You can define a cfg that tells the driver to send 2D mouse events when a specific app is in focus. The question is how do you get in and out of the apps.
4) You can dedicate one device as a 2D device and another as a 3D mouse.
5) You can use a CadMouse menu to switch the 3D mouse.
The driver has a lot of capabilities (everything I could think of at the time). Building a GUI that lets you understand how to control it has always been the challenge.
It isn't a great 2D mouse. It's basically a joystick with all the limitations of a joystick. You are driving the cursor by velocity not displacement. It's difficult to stop on a dime. There's a reason we all use traditional 2D mice. We even make them.
Unfortunately the GUI can not help you set it up. You have to edit XML files. I can help you with that if you want to go down that road.
Some more info on the scenario would help.
Do you want to use this as your normal mouse? Do you also have a 2D mouse attached? Which apps do you want to use this with, and why?
The problem becomes how to you tell the driver which mode you want:
1) You can tell the driver to only send 2D mouse events all the time. You can then roam all around the desktop.
2) You could press a button on the device to tell it to toggle between 2D and 3D modes. But your SMW only has two. That's pretty limited.
3) You can define a cfg that tells the driver to send 2D mouse events when a specific app is in focus. The question is how do you get in and out of the apps.
4) You can dedicate one device as a 2D device and another as a 3D mouse.
5) You can use a CadMouse menu to switch the 3D mouse.
The driver has a lot of capabilities (everything I could think of at the time). Building a GUI that lets you understand how to control it has always been the challenge.
Re: Spacemouse wireless as a normal mouse
@jwick I would like to have this capability as well as I find the form factor to be very ergonomic. I put the XML file you posted in a different thread in the folder and it is working, however I need a way to efficiently switch between 2d and 3d. Of the options presented, my first choice would be 3) and my second choice would be 5)
Re: Spacemouse wireless as a normal mouse
To send 2D mouse events, you need to tell the driver to send HIDMouse_X/Y Output Actions for the 3D Input Axes, as such
If you want this for an individual program, add these definitions to the cfg file for that program.
If you want to switch back and forth, add these to the Desktop.xml cfg.
Then there is a ButtonAction you can assign to one of your device buttons to toggle back and forth between the Desktop cfg and your current app (Driver_Desktop_ToggleGrab).
Code: Select all
<AxisBank Default="true">
<Name>STR_DEFAULT_BANK</Name>
<ID>Default</ID>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Rx</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDMouse_Y</ActionID>
</Output>
</Axis>
<Axis>
<Enabled>true</Enabled>
<Input>
<ActionID>HIDMultiAxis_Ry</ActionID>
<Min>-512</Min>
<Max>511</Max>
</Input>
<Output>
<ActionID>HIDMouse_X</ActionID>
<Reversed>true</Reversed>
</Output>
</Axis></AxisBank>
...
If you want to switch back and forth, add these to the Desktop.xml cfg.
Then there is a ButtonAction you can assign to one of your device buttons to toggle back and forth between the Desktop cfg and your current app (Driver_Desktop_ToggleGrab).
Re: Spacemouse wireless as a normal mouse
-where do I find the .cfg files for programs? I only have the Desktop_2DMouse.xml that I created in the ProgramData/3Dconnecion/3DxWare/Cfg folder?
-is there any way to switch back and forth without using a button as I only have two of them? perhaps by pushing the 3d mouse down?
-Where do I find the Driver_Desktop_ToggleGrab?
-is there any way to switch back and forth without using a button as I only have two of them? perhaps by pushing the 3d mouse down?
-Where do I find the Driver_Desktop_ToggleGrab?
Re: Spacemouse wireless as a normal mouse
There is no standard way to use the cap to change. That's a good idea though. It would require custom software on someone's part. That software would have to capture the data from a 3d mouse axis and, perhaps, trigger this action if it exceeded some threshold.
Driver_Desktop_ToggleGrab is defined in Base.xml, but you can use it anywhere without redeclaring it. Assign it as the Output of the button you want to use (you have to do that manually or add a ButtonAction to your cfg to have it listed in our GUI).
If you got Desktop_2Dmouse.xml from me, it should already be in there.
If you have two buttons, dedicating one of them for this is impractical.
Possibly you may want to create a script or something to do this.
This function does something very simple. it changes the <Grab> entry in the Desktop file from None<->Hard. Hard is grabbed regardless of focus. None is "follow focus".
The default cfgs are in the 3DxWinCore dir under Program Files.
User cfg changes are saved in %APPDATA%\3Dconnexion\3DxWare\Cfg.
Driver_Desktop_ToggleGrab is defined in Base.xml, but you can use it anywhere without redeclaring it. Assign it as the Output of the button you want to use (you have to do that manually or add a ButtonAction to your cfg to have it listed in our GUI).
If you got Desktop_2Dmouse.xml from me, it should already be in there.
If you have two buttons, dedicating one of them for this is impractical.
Possibly you may want to create a script or something to do this.
This function does something very simple. it changes the <Grab> entry in the Desktop file from None<->Hard. Hard is grabbed regardless of focus. None is "follow focus".
The default cfgs are in the 3DxWinCore dir under Program Files.
User cfg changes are saved in %APPDATA%\3Dconnexion\3DxWare\Cfg.
-
- Posts: 1
- Joined: Thu Apr 15, 2021 7:56 pm
Re: Spacemouse wireless as a normal mouse
I have same issue using it on ashampoo 3D CAD professional. Please send me the file. Thank you
-
- Posts: 265
- Joined: Mon Jul 12, 2010 5:58 pm
Re: Spacemouse wireless as a normal mouse
I believe spring loaded optical devices could be great 2D mices. Why not make a 2d mouse just like we have today (buttons on top, scroll wheel, same shape and all) but doesn't move? (at least not significantly, using very short throws) This would allow one to move and use buttons/scroll wheel simultaneously.
A joystick's main limitation is the long throw distances. That's one of the cool things about 3DMice; the very short throw distances. The shorter the throw the better, allowing you to go between full input and 0 input on a dime, just like the common velocity sensor mouse. A sub-millimeter throw might be best.
-tiny movements would be better with no sudden transitions between static and dynamic friction values.
-nearing the edge, causing you to lift/reset, would be a thing of the past, and with no pad you save alot of space on your desk.
-no need to clean the optical sensor, the sensor is encased, protected.
Average users might just make use of the forward and sideway axis, while more advanced users could take advantage of the other 4 axis.
The common velocity mouse we use today uses force as well to move (to counter inertia/friction), but your fingers have to keep moving to follow it. Why chase a mouse if you don't have to!
A joystick's main limitation is the long throw distances. That's one of the cool things about 3DMice; the very short throw distances. The shorter the throw the better, allowing you to go between full input and 0 input on a dime, just like the common velocity sensor mouse. A sub-millimeter throw might be best.
-tiny movements would be better with no sudden transitions between static and dynamic friction values.
-nearing the edge, causing you to lift/reset, would be a thing of the past, and with no pad you save alot of space on your desk.
-no need to clean the optical sensor, the sensor is encased, protected.
Average users might just make use of the forward and sideway axis, while more advanced users could take advantage of the other 4 axis.
The common velocity mouse we use today uses force as well to move (to counter inertia/friction), but your fingers have to keep moving to follow it. Why chase a mouse if you don't have to!
Re: Spacemouse wireless as a normal mouse
Greetings all.
First of all, I understand that what I am about to ask is far outside of the intended use of this product. But I, like so many others, see the potential of this device for space simulators along with other applications. With that said, I appreciate the lengths jwick and others have gone to to provide answers to people like me on these forums.
I am wondering with the code jwick provided, how many axis does this allow control of in 2d mouse mode? For example I would like the 3d mouse to replace my mouse (mouse = X, Y axis) in the space sim Elite Dangerous, and still use the other 4 axis rX, rY and Z. I am ok with being able to do this by way of assigning them in the controller mapping if they are not natively recognized as additional HID device inputs. Would that be possible while using the desktop_2d.cfg or will I have to use 3rd party software that will treat it like a game controller?
I ask because I only use the mouse in certain scenarios like when the character is on foot. I have HOTAS (Joystick and throttle) for normal spaceship navigation.
First of all, I understand that what I am about to ask is far outside of the intended use of this product. But I, like so many others, see the potential of this device for space simulators along with other applications. With that said, I appreciate the lengths jwick and others have gone to to provide answers to people like me on these forums.
I am wondering with the code jwick provided, how many axis does this allow control of in 2d mouse mode? For example I would like the 3d mouse to replace my mouse (mouse = X, Y axis) in the space sim Elite Dangerous, and still use the other 4 axis rX, rY and Z. I am ok with being able to do this by way of assigning them in the controller mapping if they are not natively recognized as additional HID device inputs. Would that be possible while using the desktop_2d.cfg or will I have to use 3rd party software that will treat it like a game controller?
I ask because I only use the mouse in certain scenarios like when the character is on foot. I have HOTAS (Joystick and throttle) for normal spaceship navigation.
"If at first you don't succeed... just lower your standards!"
Re: Spacemouse wireless as a normal mouse
Those are all good questions. IMO also, the device has extensive applicability.
Fundamentally there are few limitations to what you can do. But there is a steep learning curve.
The devices have some limitations.
They have a limited range of motion and reported values.
Most importantly the axes are somewhat linked together. Not so much by the hardware (which is a very general sensor), but more by the ability of the hand to produce pure Cartesian motions. That is, it is very difficult for the hand to isolate one DOF over the others. This usually limits the usage when assigning axes to separate tasks. There are software ways to assist here, such as filtering, masking, switching assignments, etc.
The first decision you need to make is how you are going to get the data into the application. E.g., do you need to send system 2D mouse events, joystick events, keyboard events, HID events, custom events (API). You have to search the game doc for that. The driver has built in capability to do all those, and allows you to define your own code for custom events.
While the driver has some capability to do emulation (kb, joystick, etc), it isn't nearly as sophisticated as some of the third party emulation products out there. Some of those are very impressive. And some of the games have extensive built-in customization for input devices. I can't tell you which will work better for your application. In general, the least processing the better. Experienced users, such as Hypersonic (above), have a better idea which approach works best.
Once you know that, you can configure each device axis separately to feed the input the application requires. Generally this is done one axis at a time, but that's not an actual limitation.
Finally you need to tell the driver what you want. You do this with a cfg file (XML file). Preferably for the specific game executable, but if that is not available, then you can take over the device globally.
I can help you create that XML file once you have decided what you need.
Fundamentally there are few limitations to what you can do. But there is a steep learning curve.
The devices have some limitations.
They have a limited range of motion and reported values.
Most importantly the axes are somewhat linked together. Not so much by the hardware (which is a very general sensor), but more by the ability of the hand to produce pure Cartesian motions. That is, it is very difficult for the hand to isolate one DOF over the others. This usually limits the usage when assigning axes to separate tasks. There are software ways to assist here, such as filtering, masking, switching assignments, etc.
The first decision you need to make is how you are going to get the data into the application. E.g., do you need to send system 2D mouse events, joystick events, keyboard events, HID events, custom events (API). You have to search the game doc for that. The driver has built in capability to do all those, and allows you to define your own code for custom events.
While the driver has some capability to do emulation (kb, joystick, etc), it isn't nearly as sophisticated as some of the third party emulation products out there. Some of those are very impressive. And some of the games have extensive built-in customization for input devices. I can't tell you which will work better for your application. In general, the least processing the better. Experienced users, such as Hypersonic (above), have a better idea which approach works best.
Once you know that, you can configure each device axis separately to feed the input the application requires. Generally this is done one axis at a time, but that's not an actual limitation.
Finally you need to tell the driver what you want. You do this with a cfg file (XML file). Preferably for the specific game executable, but if that is not available, then you can take over the device globally.
I can help you create that XML file once you have decided what you need.
Re: Spacemouse wireless as a normal mouse
Understood, and thanks for the reply.
Essentially I am wishing the mouse responded like the oldschool original SpaceOrb from yesteryear. I really only play Elite Dangerous and I also have Mrs Pac-man for some dumb fun during downtime.
So here is the control that I need (I no longer work in CAD so this could be permanent configs maybe):
1. Push /pull or left/right would move the on-foot character or in-ship forward/back and strafe left and right.
2. Tilt forward/tilt back looks up/down on-foot, in-ship would be pitch in-ship.
3. Tilt left/tilt right would do nothing for on-foot character but would control yaw in-ship.
4. Rotate cap would control look left on-foot and control rotate (rudder) in-ship.
I believe I should be able to map the buttons on the device. (I picked up the SpaceExplorer for a song and updated to 10.6.4).
The thing is I only mainly need these functions on-foot as the game just added a 1st-person-shooter type of gameplay mode
But I would also like to use the space mouse during docking and undocking the ship though not nearly as pressing as I have plenty of HOTAS inputs to do this with the main controls. It is just that the return to zero functionality of the cap would be perfect for the game's Newtonian flight system when not in sub-light or hyperspace flight. Momentary throttle inputs that are not constant like on the main throttle axis (that doesn't have a center detent) are the ideal means of input since in space there is no resistance. (As featured on the show The Expanse).
The third thing to note is there are also menus and interfaces that would benefit if the Spacemouse's 2d axis could be recognized as a mouse.
Bear with me as I flesh this out real-time. I'm not sure if I need to run the config file, except I would like to replace my mouse with the Spacemouse as I don't mind the Thinkpad style of input. I'll have to see if V2Joy is the answer. I believe the controller mapping might allow all the functionality I need. Perhaps I would need a app specific config to turn it into a joy-controller during Elite Dangerous play and back to a mouse when not playing. I've been trying to follow your responses to others regarding which configs to edit and where to put them, but I think I lost the thread where you actually provided this info. Neither can I remember where these files are located. Is it in the AppData folder?
Essentially I am wishing the mouse responded like the oldschool original SpaceOrb from yesteryear. I really only play Elite Dangerous and I also have Mrs Pac-man for some dumb fun during downtime.
So here is the control that I need (I no longer work in CAD so this could be permanent configs maybe):
1. Push /pull or left/right would move the on-foot character or in-ship forward/back and strafe left and right.
2. Tilt forward/tilt back looks up/down on-foot, in-ship would be pitch in-ship.
3. Tilt left/tilt right would do nothing for on-foot character but would control yaw in-ship.
4. Rotate cap would control look left on-foot and control rotate (rudder) in-ship.
I believe I should be able to map the buttons on the device. (I picked up the SpaceExplorer for a song and updated to 10.6.4).
The thing is I only mainly need these functions on-foot as the game just added a 1st-person-shooter type of gameplay mode
But I would also like to use the space mouse during docking and undocking the ship though not nearly as pressing as I have plenty of HOTAS inputs to do this with the main controls. It is just that the return to zero functionality of the cap would be perfect for the game's Newtonian flight system when not in sub-light or hyperspace flight. Momentary throttle inputs that are not constant like on the main throttle axis (that doesn't have a center detent) are the ideal means of input since in space there is no resistance. (As featured on the show The Expanse).
The third thing to note is there are also menus and interfaces that would benefit if the Spacemouse's 2d axis could be recognized as a mouse.
Bear with me as I flesh this out real-time. I'm not sure if I need to run the config file, except I would like to replace my mouse with the Spacemouse as I don't mind the Thinkpad style of input. I'll have to see if V2Joy is the answer. I believe the controller mapping might allow all the functionality I need. Perhaps I would need a app specific config to turn it into a joy-controller during Elite Dangerous play and back to a mouse when not playing. I've been trying to follow your responses to others regarding which configs to edit and where to put them, but I think I lost the thread where you actually provided this info. Neither can I remember where these files are located. Is it in the AppData folder?
"If at first you don't succeed... just lower your standards!"
Re: Spacemouse wireless as a normal mouse
Could you explain this a little further? Say I want 2d mouse on my desktop and a joystick in a specific game (Elite Dangerous, or say, Steam games in general)? What file would I need to put where?jwick wrote: ↑Tue Jul 30, 2019 4:44 am If you want this for an individual program, add these definitions to the cfg file for that program.
If you want to switch back and forth, add these to the Desktop.xml cfg.
Then there is a ButtonAction you can assign to one of your device buttons to toggle back and forth between the Desktop cfg and your current app (Driver_Desktop_ToggleGrab).
I know where to find my Elite Dangerous controller files, but I don't know where to put the Desktop.XML file
"If at first you don't succeed... just lower your standards!"
Re: Spacemouse wireless as a normal mouse
Forgot to add in controls,
5. Up/down would control jump/crouch on-foot and straight up/down (no rotation) in-ship.
5. Up/down would control jump/crouch on-foot and straight up/down (no rotation) in-ship.
"If at first you don't succeed... just lower your standards!"
Re: Spacemouse wireless as a normal mouse
Hypersonic is the best person to help you configure the games & device combo. Let's see if he chimes in. He helped us with all the Steam cfgs.
10.6 is quite old, but you don't have much choice with a SpaceExplorer. I think the things you want to do have been working all along.
Start out with simple tasks.
E.g., create a cfg file for your game and make sure the driver switches to it when your game is running. It's easiest to let our GUI do that for you. Open our GUI while your game is running and change something like a button assignment. It will create the start of a cfg file for you in %appdata%/3dconnexion/3dxware/cfg.
Once you have an app-specific cfg file, you can work on getting your axes and buttons configured for the game(s).
After that I can help you with switching to an alternate cfg file (Desktop.xml) if necessary.
10.6 is quite old, but you don't have much choice with a SpaceExplorer. I think the things you want to do have been working all along.
Start out with simple tasks.
E.g., create a cfg file for your game and make sure the driver switches to it when your game is running. It's easiest to let our GUI do that for you. Open our GUI while your game is running and change something like a button assignment. It will create the start of a cfg file for you in %appdata%/3dconnexion/3dxware/cfg.
Once you have an app-specific cfg file, you can work on getting your axes and buttons configured for the game(s).
After that I can help you with switching to an alternate cfg file (Desktop.xml) if necessary.
Re: Spacemouse wireless as a normal mouse
hello, can you repost the file to download in order to use as a 2d mouse. i appreciate your time thanks