Postby vputz » March 01 2009, 13:15 PM
Okay, last two boards are assembled (I put the DIP switch backwards on one, so pins 1 and 2 are labeled wrong, but it still works fine). Probably keeping that one and sending the last good one out to Squid; that leaves 5 more boards at Seeed, plus we can always make another batch with minor revisions (I never got Jay's address, but we'll get him one eventually).
[quote]What program do you use to open and edit files? I am willing to try anything that makes files easier to read![/quote]
Well, not to begin the "free software holy war" between Vi and Emacs, but I'm an Emacs man for editing. I will warn you that it's the Programmer's Editor from Hell! For just reading stuff, typically the text-mode pager "less". I'm not sure either of these will help you much! But Emacs is truly a beast of an editor; I love it (when doing the Arduino work, I use Emacs as my external editor and only use the Arduino environment for uploading files, even though it can do some editing itself).
[quote]Using precision mode (A&B pressed) only 2 axis (X axis & X Rotation) and the remaining buttons C, D, E and F worked.[/quote]
I think that actually they were working, but there are some issues caused by the gain being so "grainy". Remember this picture:
[img]http://www.tacc.utexas.edu/~kelly/NEW_DOCS/public_html/TACC_stuff/hardware/VR_devices/hidsporb/documentation/images/orb_sensitivities.jpg[/url]
What "gain" does is take a small slice around the middle and make that the full range. But with a gain of "-2", you are cutting the possible "x range" in half--which means that, using the sensitivity curve, your possible Y range has taken a massive hit, from 512 down to 50. That's a 10x reduction in effective range with the lowest possible gain change!
What makes this worse is that it magnifies the null zone fairly considerably, which means that effectively the orb is less precise in the center when using "precision mode"! Obviously this isn't desired. When you combine this with the null zone in the half-life config, it gets even worse.
So I did two things with this release:
[list]
[*] Gain is now more fine-grained by a factor of 10. What this means is that where a gain of "-2" would divide things by two, now a gain of "-20" divides things by two.
[*] Gain is now applied AFTER the sensitivity curve. That means it does something a little more intuitive; if your normal range is -512 to 512 (actually it's 0 to 1023, but nevermind that) then applying a gain of -20 for sensitivity now makes your range -256 to 256. This seems to "feel" better.[/list]
In my halflife config, I also changed the lines for pitch and yaw threshold
[code]
joy_pitchthreshold 0.00
joy_yawthreshold 0.0
[/code]
This means that according to HL2 there is no null zone for turning (there is still a null zone for moving). This combined with the new gain changes seems to feel a lot better.
Note: there appears to be some granularity in the control panel applet where rotation is concerned (it looks like it "jumps"). It feels pretty smooth in HL2. See what you think.
Extra bonus on this release: No longer is our orb referred to as "UsbJoystick"! It now properly says "Spaceorb/Spaceball". I also changed the USB vendor ID and device ID to reflect the usbavr generic HID device id. I think we'll be a bit more "legal" with regard to that, although they do say we shouldn't make keyboards and mice using that ID. Since the orbshield is a joystick which also emits keyboard and mouse reports, I think we're OK. It won't really matter as a hobbyist device, but we really should play nice when we can.
Unfortunately I broke mouse axis binding with the gain changes, and don't have time to fix it just yet (I'll work on it soon). Download the new version via the [url=http://orbduino.sourceforge.net]Orbduino Site[/url]! I updated the docs to include some programming info as well as links to donations and download areas of the Sourceforge site.