If your 3DConnexion device does not work with the driver you will likely need to do the following for now: https://github.com/prusa3d/PrusaSlicer/issues/7277#issuecomment-1006359238
(updated January 2022)
PrusaSlicer (from version 2.2.0) supports the following 3Dconnexion devices:
- Spacemouse plus XT
- Cadman
- Spacemouse classic
- Spaceball 5000
- Space traveller
- Space pilot
- Space navigator (TESTED)
- Space explorer
- Space navigator for notebooks
- Space pilot pro
- Space mouse pro
- Spacemouse wireless (USB cable) (TESTED)
- Spacemouse wireless receiver
- Spacemouse pro wireless (TESTED)
- Spacemouse pro wireless receiver
- Spacemouse enterprise
- Spacemouse compact (TESTED)
- Spacemouse module
- Nulooq
- 3Dconnexion universal receiver (TESTED)
On Linux, press Ctrl + M while in the platter view to open 3Dconnexion settings dialog.
If you're unable to configure your device, enable Configuration - Preferences - Enable support for legacy 3D connexion devices. You might have to do this even for relatively new devices, due to lack of support from 3Dconnexion. Then press CTRL+M (Shift+Command+M on Mac).
3Dconnexion SpaceMouse
Windows
It is enough to plug-in any of the listed devices to the pc to have it working.
The current implementation does not support flipping axes in the 3dconnexion driver on Windows.
Mac
It is enough to plug-in any of the wired listed devices to have it working.
3Dconnexion universal receiver is currently not working on Mac.
Linux
Linux users need to create a file named “90-3dconnexion.rules” with the following content:
# Logitech vendor devices
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c603", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c605", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c606", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c621", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c623", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c625", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c626", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c627", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c628", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c629", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c62b", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c62e", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c62f", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c631", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c632", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c633", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c635", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c636", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c640", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c652", MODE="0666"
# 3D Connexion vendor devices
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c603", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c605", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c606", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c621", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c623", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c625", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c626", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c627", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c628", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c629", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c62b", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c62e", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c62f", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c631", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c632", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c633", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c635", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c636", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c640", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c652", MODE="0666"
and save it into:
/etc/udev/rules.d
After this is done, it is enough to plug-in any of the listed devices to the pc to have it working.
The cited file is part of the PrusaSlicer distribution. You can find it in: resourcesudev90-3dconnexion.rules
16 comments
ubuntu 22.04, X11, prusaslicer 2.9.2 (which is flatpak only now). I didn't do anything in PS, although I did grant PS access to "all devices" through FlatSeal
similar to previous users, I also needed to change `KERNEL=="hidraw"` to `SUBSYSTEM=="hidraw*"` (note the asterik as well). Since I'm also using it with freecad & spacenavd, I have THREE sets of the udev rule (you can keep the file short by just observing the vendor/product id's in `dmesg` when you plug it in, btw)
1) the rules in the article, above; `KERNEL=="hidraw*` - I kept these for completeness I don't believe they are necessary.
2) a full duplicate of those rules with `KERNEL="event*" SUBSYSTEM=="input*"`, which appears necessary for programs that use the 6dof input directly, such as spacenavd. [I can't 100% attest this is true]
3) another full duplicate with `KERNEL=="hidraw*` replaced with `SUBSYSTEM=="hidraw*`, in order for prusaslicer to recognize them.
I don't believe it's relevant here, but in order to use with freecad, I also installed the latest spacenavd, libspnav and spnavcfg from git. Each of these is the normal `./configure && make && sudo make install`. Don't forget to remove any `apt` installed versions, first.
- https://github.com/FreeSpacenav/spnavcfg/releases
- https://github.com/FreeSpacenav/libspnav/releases
- https://github.com/FreeSpacenav/spacenavd/releases
hope that helps someone. Great to have it working ...
KERNEL=="hidraw*"
The asterisk after hidraw is a wildcard, so will make the rule apply to all hidraw devices - my spacemouse was /dev/hidraw1, and would not work until I changed the udev rules and rebooted.
1. Install the Open Source driver "spacenavd". There are many good reasons to use this instead of the proprietary Linux driver:
sudo apt install spacenavd
This will install a systemd unit which will be started automatically
2. Install the lib to access the daemon. I am not sure if PursaSlicer requires it, but mostly any other Linux application with support for 3DConnexion devices will require it anyways.
sudo apt install libspnav0
3. To set the access rights for the device nodes create the 90-3dconnexion.rules as described above. However I needed to change the rules from "KERNEL" to "SUBSYSTEM", e.g. for the Sacemouse Wirless the rule will be:
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="256f", ATTRS{idProduct}=="c652", MODE="0666"
(not sure why the KERNEL filter did not apply, maybe I will check this later or somebody can point me to the root cause)
And just a last info for anybody having trouble and digging into the details:
When starting the systemd service for spacenavd it will report the following in the logs:
systemd[1]: Started 3Dconnexion Input Devices Userspace Driver.spacenavd[1193]: Authorization required, but no authorization protocol specified
I believe you can just ignore it (and it is triggered by an xauthority issue which should not matter). For me any application is working perfectly with the spacenavd driver and the only issue I had was to set the access rights for PrusaSlicer with the udev rule as described above.
https://github.com/prusa3d/PrusaSlicer/issues/7549
in the comment about editing the prusa-slicer.xml file. This worked for me on Windows 10, Spacemouse Wireless Pro, Prusa Slicer ver 2.4.1-beta1.