2008-06-10 02:24:51

Some thoughts on making SpaceNavigator work in Linux

Woolgathering:

  1. Device is sensed as a "Multi-Axis Controller". It is quite probable that a small driver module could attach itself as a handler and pass the SN off to the joydev module for seamless joystick usage.
  2. Would it need to be a module? Eventually... yes. For now, it could be a small program launched as a daemon to act as a proxy to and from the SN and the JSx device. I'd like to be able to sense all axis inputs, and ALSO toggle the base LED on and off. Of course, since few joysticks have das blinkenlights, that part could quite possibly be non-standard. blech. What if I researched how to send data to joystick as if it were a force-feedback capable device? that's a standard. pretty much. right?
  3. "Multi-Axis Controller"... Posted on the web was a short writeup that noted that the device ID blocks for a joystick and a multi-axis controller differed in only a byte or two, or even just a few bits. Tinkering with the SN and a Joystick (JS) show very similar output data too. But I'd have to catch the SN BEFORE the evdev and input modules did. Probably not happening. Besides, that's working too hard and digging too deep to make this work. Items 1 & 2 above should work well.

I'm leaning towards a small daemon that attaches to the event device, and proxies the data to and from a js device. This would be very unobtrusive and require little to no changing of other parts of the system. (talking 'bout you.. Mr. Module!) Would lend itself to being a nice RPM file, a tar.gz/tar.bz2 and a comfy 'configure/make/make install' type setup. Also allow easy tweaking of config items, since we'll likely need to scale the SN motions somehow too. It returns larger values the further it's twisted, pushed and lifted. (Controlling the blue LED is a 'gotta have' thing though. I really don't need another 'glowie LED' on my desk, I've taken to putting dark fingernail polish on the annoyingly bright ones lately)


Posted by lornix | Permanent link | File under: linux, spacenavigator