<?xml version="1.0" encoding="utf-8"?>
        <?xml-stylesheet type="text/css" href="http://lornix.com/feeds/styles/feed.css"?>
<rss version="2.0"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:admin="http://webns.net/mvcb/"
 xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
<title>Filed under: spacenavigator | Lornix's Corner of the Big Round World</title>
<atom:link href="http://lornix.com/feeds/archives/spacenavigator/index-rss.xml" rel="self" type="application/rss+xml" />
<link>http://lornix.com/feeds</link>
<description>I wanted to be a worm farmer, but branding was killing my stock</description>
<dc:language>en-us</dc:language>
<dc:creator>lornix</dc:creator>
<dc:date>2008-10-20T10:32:25-05:00</dc:date>
<admin:generatorAgent rdf:resource="http://nanoblogger.sourceforge.net" />

<item>
<link>http://lornix.com/feeds/archives/2008/09/02/well_theyre_saying_its_fixed___i_dont_think_so/</link>
<guid isPermaLink="true">http://lornix.com/feeds/archives/2008/09/02/well_theyre_saying_its_fixed___i_dont_think_so/</guid>
<title>Well, &quot;they're&quot; saying it's fixed.  I don't think so.</title>
<dc:date>2008-09-02T03:40:34-05:00</dc:date>
<dc:creator>lornix</dc:creator>
<dc:subject> linux, spacenavigator</dc:subject>
<description><![CDATA[<p>The people over at SecondLife are saying that the SpaceNavigator issues are resolved and it's all done and wonderful.</p>
<p>I don't think so.</p>
<p>It still involves recompiling the source code to be able to turn on the joystick/spacenavigator code.  This isn't something most people are going to be able to do.</p>
<p>When I (or anyone) can go to the download section, download the SL Viewer for Linux, install it, log in and then enable the Joystick or SN controller from the Preferences menu...  THEN it'll be "fixed".</p>
<p>I played with the code myself some (referenced previously)...</p>
<p>What is up with all these big projects using weird and offshoot type programming extensions?   To be able to compile SL would involve me finding and installing 10 or 12 additional libraries (in addition to the 50-60 I already have), most of which I've *never* heard of...  And I write code myself, so I consider myself somewhat fluent in "what's out there".</p>
<p>Get it in the downloadable tarball... THEN we'll see if it's fixed.</p>
<p>Even if it were still partially broken, there would then be many more people testing and improving it.  This was my initial rant to begin with.. it's disabled on linux builds by default.  We didn't even GET A CHANCE to use a joystick, broken or not.</p>
<p>Loni</p>]]></description>

</item>
<item>
<link>http://lornix.com/feeds/archives/2008/06/13/a_handy_tool_for_decoding_the_hid_devices/</link>
<guid isPermaLink="true">http://lornix.com/feeds/archives/2008/06/13/a_handy_tool_for_decoding_the_hid_devices/</guid>
<title>A handy tool for decoding the HID devices</title>
<dc:date>2008-06-13T23:36:15-05:00</dc:date>
<dc:creator>lornix</dc:creator>
<dc:subject> linux, spacenavigator</dc:subject>
<description><![CDATA[<p>I've written a little decoder for the bitmapped information in /proc/bus/input/devices, works well for showing how the system sees each device:</p>
<p>decode-devices.pl -> <a href="http://www.lornix.com/files/decode-devices.pl" title="decode-devices.pl">src (Perl)</a> (right-click -> save-as)</p>
<p>The output is essentially a verbose parsing of the information.  My machine returns this information:</p>
<pre>
I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/class/input/input0
H: Handlers=kbd event0 
B: EV=40001 : 18-SND 0-SYN 
B: SND=6 : 2-TONE 1-BELL 

I: Bus=0003 Vendor=046a Product=0048 Version=0111
N: Name="Das Keyboard"
P: Phys=usb-0000:00:02.0-1/input0
S: Sysfs=/class/input/input1
H: Handlers=kbd event1 
B: EV=120003 : 20-REP 17-LED 1-KEY 0-SYN 
B: KEY=7 ff800000000007ff e0b2ffdf01cfffff fffffffffffffffe
   Supports 131 keys
B: LED=1f : 4-KANA 3-COMPOSE 2-SCROLLLK 1-CAPSLK 0-NUMLK 

I: Bus=0003 Vendor=046d Product=c521 Version=0111
N: Name="Logitech USB Receiver"
P: Phys=usb-0000:00:02.1-4.6/input0
S: Sysfs=/class/input/input3
H: Handlers=mouse0 event3 
B: EV=7 : 2-REL 1-KEY 0-SYN 
B: KEY=ffff0000 0 0 0 0
   Supports 16 keys
B: REL=143 : 8-WHEEL 6-HWHEEL 1-Y 0-X 

I: Bus=0003 Vendor=046d Product=c521 Version=0111
N: Name="Logitech USB Receiver"
P: Phys=usb-0000:00:02.1-4.6/input1
S: Sysfs=/class/input/input4
H: Handlers=kbd event4 
B: EV=f : 3-ABS 2-REL 1-KEY 0-SYN 
B: KEY=7fff002c3027 bf00444000000000 1 f808837c000 667bfad9415fed 8e000000000000 0
   Supports 88 keys
B: REL=40 : 6-HWHEEL 
B: ABS=100000000 : 32-VOLUME 

I: Bus=0019 Vendor=0000 Product=0002 Version=0000
N: Name="Power Button (FF)"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/class/input/input5
H: Handlers=kbd event5 
B: EV=3 : 1-KEY 0-SYN 
B: KEY=10000000000000 0
   Supports 1 key

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button (CM)"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/class/input/input6
H: Handlers=kbd event6 
B: EV=3 : 1-KEY 0-SYN 
B: KEY=10000000000000 0
   Supports 1 key

I: Bus=0003 Vendor=046d Product=c626 Version=0110
N: Name="3Dconnexion SpaceNavigator"
P: Phys=usb-0000:00:02.1-2.3.1/input0
S: Sysfs=/class/input/input12
H: Handlers=event2 
B: EV=20007 : 17-LED 2-REL 1-KEY 0-SYN 
B: KEY=3 0 0 0 0
   Supports 2 keys
B: REL=3f : 5-RZ 4-RY 3-RX 2-Z 1-Y 0-X 
B: LED=100 : 8-MISC 

I: Bus=0003 Vendor=0f30 Product=010b Version=0110
N: Name="Jess Tech GGE909 PC Recoil Pad"
P: Phys=usb-0000:00:02.1-2.3.4/input0
S: Sysfs=/class/input/input13
H: Handlers=event7 js0 
B: EV=b : 3-ABS 1-KEY 0-SYN 
B: KEY=fff00000000 0 0 0 0
   Supports 12 keys
B: ABS=30027 : 17-HAT_0Y 16-HAT_0X 5-RZ 2-Z 1-Y 0-X 
</pre>
<p>The last two entries are the SpaceNavigator, and the USB Gamepad I've got plugged in for, uh, testing.  yeah.. testing.</p>
<p>And for those of you about to squawk... yes, I DO have a "Das Keyboard", and I love it.  Keeps most people from bothering my computer too, and has improved my typing speed up further in the triple digits.</p>
<p>Interesting to note that my Logitech mouse somehow (!) has 88 keys on it.  Hey... 88 keys... a PIANO?!?</p>
<p>This is in addition to the 16 keys it reports in the previous entry.   Really weird!</p>
<p>Anyways...</p>
<p>If you look at the Keyboard entry, and the SpaceNavigator entry, you can see the LED's they support.</p>
<p>The SN supports the 'MISC' labelled LED, actually bit 8, and the keyboard supports KANA, COMPOSE, SCROLL, CAPS, NUM.  Bits 4-0.</p>
<p>The leading numbers for each breakdown indicate which bit they are represented by.</p>]]></description>

</item>
<item>
<link>http://lornix.com/feeds/archives/2008/06/10/some_thoughts_on_making_spacenavigator_work_in_linux/</link>
<guid isPermaLink="true">http://lornix.com/feeds/archives/2008/06/10/some_thoughts_on_making_spacenavigator_work_in_linux/</guid>
<title>Some thoughts on making SpaceNavigator work in Linux</title>
<dc:date>2008-06-10T02:24:51-05:00</dc:date>
<dc:creator>lornix</dc:creator>
<dc:subject> linux, spacenavigator</dc:subject>
<description><![CDATA[<p>Woolgathering:</p>
<ol>
<li>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.</li>
<li>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?</li>
<li>"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 <em>BEFORE</em> 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 &amp; 2 above should work well.</li>
</ol>
<hr width="50%">
<p>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)</p>]]></description>

</item>
<item>
<link>http://lornix.com/feeds/archives/2008/06/10/some_spacenavigator_errata/</link>
<guid isPermaLink="true">http://lornix.com/feeds/archives/2008/06/10/some_spacenavigator_errata/</guid>
<title>Some SpaceNavigator errata:</title>
<dc:date>2008-06-10T02:15:35-05:00</dc:date>
<dc:creator>lornix</dc:creator>
<dc:subject> spacenavigator</dc:subject>
<description><![CDATA[<p>Things I want to keep track of:</p>
<p>My SpaceNavigator (SN) is the Personal Edition (PE), USB ID: 046D:C626 (PE/SE are identical, just license that changes).</p>
<p>udev rule to automatically set up:</p>
<p>/dev/input/spacenavigator symlink to proper event[0-9]* device:</p>
<pre>
KERNEL=="event[0-9]*", SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c626", SYMLINK+="input/spacenavigator", MODE="0666"
</pre>
<p>Single line, placed in <b>/etc/udev/rules.d/99-SpaceNavigator.rules</b>
(for instance, the name can vary, as can the leading number, I just stuck it
at '99-' since it would get read after everything else, and hopefully
wouldn't mess anything up.  It hasn't)</p>
<p>The above line is tailored to the SN-PE...  note the 'c626' ProductID.
Replace that with the proper ProductID if you don't have the SN-PE model.
(y'know, like the super-whamma-dyne neato models with many buttons and LCD's
and stuff)</p>]]></description>

</item>
<item>
<link>http://lornix.com/feeds/archives/2008/05/19/secondlife_and_spacenavigator__joysticks_on_linux/</link>
<guid isPermaLink="true">http://lornix.com/feeds/archives/2008/05/19/secondlife_and_spacenavigator__joysticks_on_linux/</guid>
<title>SecondLife and SpaceNavigator / Joysticks on Linux</title>
<dc:date>2008-05-19T00:19:58-05:00</dc:date>
<dc:creator>lornix</dc:creator>
<dc:subject> linux, spacenavigator</dc:subject>
<description><![CDATA[<p>I read that SecondLife (SL) is "planning" on working on joystick support for Linux... Windows has it... Mac has it... why don't we?</p>
<p>I'm a long-time Linux user, off and on since the Kernel version started with a zero, and full-time user since around the Y2K fiasco (no, I didn't shift because of that!)</p>
<p>SL opened up their source code for the viewer recently (YAAY!), and I've recently purchased a shiny SpaceNavigator (SN) to play with.  Of course, the SN isn't well supported on Linux, but there are a few decent drivers out there, and I've built my own just for fun and learning too...</p>
<p>So then I tackle the issue of joysticks in general, and the SpaceNavigator specifically not working with the SL Viewer in Linux...</p>
<p>One Download of the aforementioned SL Viewer source code later...</p>
<p>I find this:</p>
<p>In the file: <b>.../linden/indra/newview/llviewerjoystick.h</b><br>
<p>Line 37:</p>
<pre>#define LIB_NDOF (LL_WINDOWS || LL_DARWIN)</pre>
<p>For those of you who aren't programmers... this essentially says "Define the flag LIB_NDOF if we're compiling for WINDOWS *OR* MAC (darwin)"</p> 
<p>The rest of the joystick code then bases its working (or not) on this
flag.</p>
<p>example on lines 39: (same file)</p>
<pre>#if LIB_NDOF</em></pre>
<p>and in the file:<br>
<b>.../linden/indra/newview/llviewerjoystick.cpp</b></p>
<p>Lines 168-236:</p>
<pre>void LLViewerJoystick::init(bool autoenable)
{
#if LIB_NDOF
... {snip} ...
#endif
}</pre>
</p>
<p>Which effectively cuts OUT the entire joystick initialization routine.
This is continued throughout the joystick support modules.</p> 
<p>So... since we're compiling for Linux, LL_WINDOWS and LL_DARWIN are FALSE,
while LL_LINUX is TRUE... thus LIB_NDOF is FALSE... and the Linux users
<em>[rant mode]</em> <b>HAVEN'T EVEN GOT A CHANCE TO TRY!</b>
<em>[/rant mode]</em>.</p>  
<p>From this, it is apparent that Linux users will <b>NEVER</b> get a joystick
working, unless we resort to mapping keystrokes to joystick positions.  That's
not a solution, it's a crude patch.</p>  
<p>Yes, I CAN (and will!) edit the code and enable joystick support for the
Linux SL Viewer.  This helps me.  But doesn't do much for the other 17 Linux
users out there.</p> 
<p>Please, at least ENABLE the joystick code for Linux users, so we can try to
make things work.  You're not even giving us a chance.</p> 
<p>[Edit] 2008-05-19 02:13</p>
<p>Ok, after reading several bazillion bug tracker entries on SL's bug tracker
system (!)... I find that a potential reason this is 'commented out' is
because somehow SDL (a Linux Graphics system) doesn't seem to be able to
obtain the motion data from the SN.</p>  
<p>Hmmm, I'll try writing some sample code tonight (this morning?!?) or
tomorrow and see if I can read the data from SDL calls.  I think what might be
creating havoc is the possibility that SL is wanting to use the 3Dconnexion
supplied drivers, or even the FOSS replacement drivers.  I've had *NO*
problems reading the data using 'evdev' and 'uinput' type code, and really
would like to not use those additional drivers.  The SN responds as a HID
(Human Interface Device) as per USB standards, just like my two USB gamepads,
my USB keyboard and USB mice.  So I don't think a special driver would be
necessary.</p> 
<p>I say this based on the fact that my joysticks/gamepads are sensed properly
(and without extra drivers) by some of the SDL games and examples I've found.
So following that logic... I believe it can be done, and quite simply. (Of
course, 'simply' saying that, I've now cursed myself and will suffer through
the many circles of Hell while researching this. {sigh})</p>
<p>[/Edit]</p>]]></description>

</item>
</channel>
</rss>
