I broke down and bought this
http://www.3dconnexion.com/products/spacemouse/spacemousewireless.html?_s=hplmlq2djrvcl9gfthgluhm3l6 right at the Hannover fair for €89.- (fairgrounds special), guessing it might make a neat jogging device - it does
turns out this product works right out of the box; to use the spacemouse with mk, do this:
cat /proc/bus/input/devices
...
I: Bus=0003 Vendor=256f Product=c62e Version=0111
N: Name="3Dconnexion SpaceMouse Wireless"
P: Phys=usb-0000:00:06.0-2/input0
S: Sysfs=/devices/pci0000:00/0000:00:06.0/usb2/2-2/2-2:1.0/input/input12
U: Uniq=
H: Handlers=event8 js1
-----------------^--------- note number
B: PROP=0
B: EV=2001b
B: KEY=3 0 0 0 0 0 0 0 0
B: ABS=100 3f
B: MSC=10
B: LED=100
now..
halcmd -f -k
halcmd: loadusr hal_input -KRAL 8
--------------------------------^ number from above
and simsalabim:
halcmd: show pin input.0.*
Component Pins:
Comp Inst Type Dir Value Name Epsilon Flags
161 s32 OUT 72 input.0.abs-misc-counts 0
161 s32 IN 0 input.0.abs-misc-flat 0
161 s32 IN 0 input.0.abs-misc-fuzz 0
161 bit OUT FALSE input.0.abs-misc-is-neg 0
161 bit OUT TRUE input.0.abs-misc-is-pos 0
161 float IN 50 input.0.abs-misc-offset 0.000010 0
161 float OUT 0.44 input.0.abs-misc-position 0.000010 0
161 float IN 50 input.0.abs-misc-scale 0.000010 0
161 s32 OUT 0 input.0.abs-rx-counts 0
161 s32 IN 0 input.0.abs-rx-flat 0
161 s32 IN 0 input.0.abs-rx-fuzz 0
161 bit OUT FALSE input.0.abs-rx-is-neg 0
161 bit OUT FALSE input.0.abs-rx-is-pos 0
161 float IN 0 input.0.abs-rx-offset 0.000010 0
161 float OUT 0 input.0.abs-rx-position 0.000010 0
161 float IN 350 input.0.abs-rx-scale 0.000010 0
161 s32 OUT 0 input.0.abs-ry-counts 0
161 s32 IN 0 input.0.abs-ry-flat 0
161 s32 IN 0 input.0.abs-ry-fuzz 0
161 bit OUT FALSE input.0.abs-ry-is-neg 0
161 bit OUT FALSE input.0.abs-ry-is-pos 0
161 float IN 0 input.0.abs-ry-offset 0.000010 0
161 float OUT 0 input.0.abs-ry-position 0.000010 0
161 float IN 350 input.0.abs-ry-scale 0.000010 0
161 s32 OUT 0 input.0.abs-rz-counts 0
161 s32 IN 0 input.0.abs-rz-flat 0
161 s32 IN 0 input.0.abs-rz-fuzz 0
161 bit OUT FALSE input.0.abs-rz-is-neg 0
161 bit OUT FALSE input.0.abs-rz-is-pos 0
161 float IN 0 input.0.abs-rz-offset 0.000010 0
161 float OUT 0 input.0.abs-rz-position 0.000010 0
161 float IN 350 input.0.abs-rz-scale 0.000010 0
161 s32 OUT 0 input.0.abs-x-counts 0
161 s32 IN 0 input.0.abs-x-flat 0
161 s32 IN 0 input.0.abs-x-fuzz 0
161 bit OUT FALSE input.0.abs-x-is-neg 0
161 bit OUT FALSE input.0.abs-x-is-pos 0
161 float IN 0 input.0.abs-x-offset 0.000010 0
161 float OUT 0 input.0.abs-x-position 0.000010 0
161 float IN 350 input.0.abs-x-scale 0.000010 0
161 s32 OUT 0 input.0.abs-y-counts 0
161 s32 IN 0 input.0.abs-y-flat 0
161 s32 IN 0 input.0.abs-y-fuzz 0
161 bit OUT FALSE input.0.abs-y-is-neg 0
161 bit OUT FALSE input.0.abs-y-is-pos 0
161 float IN 0 input.0.abs-y-offset 0.000010 0
161 float OUT 0 input.0.abs-y-position 0.000010 0
161 float IN 350 input.0.abs-y-scale 0.000010 0
161 s32 OUT 0 input.0.abs-z-counts 0
161 s32 IN 0 input.0.abs-z-flat 0
161 s32 IN 0 input.0.abs-z-fuzz 0
161 bit OUT FALSE input.0.abs-z-is-neg 0
161 bit OUT FALSE input.0.abs-z-is-pos 0
161 float IN 0 input.0.abs-z-offset 0.000010 0
161 float OUT 0 input.0.abs-z-position 0.000010 0
161 float IN 350 input.0.abs-z-scale 0.000010 0
161 bit OUT FALSE input.0.btn-0 0
161 bit OUT TRUE input.0.btn-0-not 0
161 bit OUT FALSE input.0.btn-1 0
161 bit OUT TRUE input.0.btn-1-not 0
161 bit IN FALSE input.0.led-misc 0
161 bit IN FALSE input.0.led-misc-invert 0
halcmd:
values change with moving the mouse as expected
you can even wiggle the led:
setp input.0.led-misc 1
setp input.0.led-misc 0