Friday, December 3, 2004 |
13:33 - Mouse balls are not usually static sensitive. However, excessive handling can result in sudden discharge
|
(top) |
Lately I've been having a resurgence of interest in one of my most long-running bugaboos: the Optical Mouse Freaky Tracking Problem. Have I talked about it here before? I don't remember. I'm too lazy to search my own site, and the tale is nicely bookended now anyway, so I guess I may as well start from the beginning.
Ever since 2000 when I bought my old G4/450 (the one that's currently sitting in our garage acting as the house server running Panther Server, which rocks—it's so nice to be able to do GUI-driven Software Updates remotely), I've been using optical mice. That's about the time when Apple released its first optical mouse; but I was to have nothing to do with it: I wanted a nice multi-button mouse for my home machine, preferably with a scrollwheel. So I've been using the Macally iceMouse and its predecessor the iOptiNet. They're absolutely the perfect shape for my hand—they very closely approximate the shape of the factory Apple mouse, and Apple has always had an unerring sense for the perfect shape a mouse should (hey, shut up) —should be. Low in profile, symmetrical, the right length to run from just beyond the fingertips to about the middle of the hand so you don't even have to bend your wrist to rest your hand on it comfortably. We once had an ergonomics expert come in to our company to examine everyone's typing environment and scold us all for not having our monitors at the proper heights or holding our hands in the wrong position or not having at least $8000 worth of highly customized lumpy ergonomic keyboards and swivel-every-direction keyboard trays and monitors on stands that tilt in unnatural ways which they can conveniently recommend to us if we buy certain brands so they get a nice commission. She came to my cubicle and looked at me with my hands laying flat on my keyboard, my arm resting on my mouse with fingers coaxial to my forearm, and my adjustable-neck iMac defying any attempt by her to explain to me that I needed a form of monitor-adjustment equipment that cost me more than the energy it takes to reach out and turn the screen a little bit. She had a distinctly disappointed look on her face when she moved on to the next cubicle. I was clearly a hopeless case.
But anyway—the Macally mouse has the perfect shape, and I like the action of the buttons and the scroll wheel. They're just the way I like them. The mouse is, for all intents and purposes (or, at least, mine), perfect. Except... except... for one teensy-tiny little problem that I noticed nearly three years ago.
You see, under Mac OS 9, this optical mouse had no problems at all. You could swoosh the pointer back and forth across your 22-inch landscape-orientation Cinema Display to your heart's content and the pointer would faithfully track your every movement, no matter how quickly your hand moved. And Mac OS X, in its original form, was no different. True, like OS 9 (I believe), OS 10.0—"Cheetah"—had no native support for stuff like multiple buttons and scroll wheels, but those things were easily added by installing the manufacturer's mouse drivers. Easy as pie.
But then Apple released Mac OS X 10.1, "Puma". As I ran the installer program from the CD, I noticed something was a little different about how my mouse behaved. The sensitivity was a little bit different, I could tell from how much the pointer's movements magnified those of my hand; so to test this, I clicked on the installation window, the file-writing process still underway within it, and started dragging it back and forth (dragging the window made it easier to see how the pointer was moving). I moved it rapidly left and right, holding to as horizontal a line as possible, getting to about 5-8 oscillations per second. And sure enough, my suspicions were correct: the pointer was freakishly losing tracking coherence with my hand movements. The faster I moved the mouse, the more erratic the pointer's motions became. It seemed that beyond a certain velocity along a certain axis (x or y), the pointer's movement would freeze along that axis, making the window jump crazily across the screen, hanging back when I expected it to move along with me, then rushing backwards as soon as I slowed it down or reversed direction. The window I was dragging flickered all over the screen as I kept up the test. (This isn't a very evocative way of describing what happens, I know; for a better one, picture that "obbidy-obbidy-obbidy" sound effect that Warner Brothers characters make when they're trying to shake off dizziness.) And later, as I ran the fully installed Puma, my illusions fell away: this was the way it was in the OS now. The native mouse drivers had been completely rewritten. Now they supported right-clicking and middle-clicking and scroll-wheeling, without the need for additional software, true... but now, every time I would move my mouse rapidly across the screen—like, for example, to zip up to the Apple menu to open the System Preferences—the pointer would flutter off into the weeds instead of unerringly leaping to my intended destination. I had to force my hand to move slowly if I wanted to cover large distances. Unacceptable.
I took a video of this happening. I sent the URL to the handy-dandy Mac OS X Feedback Page that they used for collecting user reports for the first couple of years; true, nobody ever got a response from anything submitted there, but I know a lot of the things I reported using it were eventually fixed, so at least it's probably not just a honeypot for keeping malcontents busy and feeling useful.
But this mouse issue was never fixed. I started buying new mice, trying one after another, like some kind of obsessive-compulsive fetish, filling a closet with a shelf full of mice, like Imelda Marcos' shoes. Many mice exhibited this same problem. Many did not. The factory Apple optical mouse didn't have the problem—no matter how fast I jiggled the mouse back and forth, the pointer would dutifully track my movements, never losing sync; it would get a little flickery as a matter of pure screen-refresh-rate limitations, but its motion never faltered, regardless of the mousing surface. Even a smooth white desk like the one I have at work didn't affect it. I thought for a time that my iMac at work was immune to the problem, and it was only my G4—but then I found that it happened with my iBook as well, and with my new G5. So I was wondering for a while whether it was just me: a piece of code somewhere in the mouse driver that said If owner is Brian, then drive him batty! But eventually I realized that the problem was showing up on my iMac too—it's just that the screen is too small for it really to manifest. If I do the drag-window-back-and-forth-really-fast test, it still fails. But I'm still using the factory one-button mouse at work, because I don't use any apps at work that really require a scrollwheel. I do at home: some apps still have that atrocious behavior where if you drag the scrollbar thumb, it simply "ghosts" to the new position in the scrollbar, and the display doesn't update until you let go of the button. ICQ is like that, and AppleWorks, and (I think) Office. A scrollwheel is required in such a case. But I don't use those apps at work, so I'm fine with the factory mouse.
So lately I've been busying myself with passing eternal moral judgment upon the souls of various mice, elevating some to a plane of anointed glory and sentencing others to burn in mousey damnation. I'd determined that among the mice that exhibited the problem were the Kensington PocketMouse (with the retractable cord), various Logitech mice (even the newer ones), and, lamentably, my favorites: the Macally iOptiNet and iceMouse. Mice that did not exhibit the problem included the factory one-button mouse, Kensington's full-size models, and the cheapo entry-level $10 Logitech optical mouse. Unfortunately, it seemed that every mouse I found that worked okay had some fatal flaw that kept me from using it. The factory mouse has that one-button thing going on. The Kensington Studio Mouse has a track-pad instead of a scrollwheel, and one that's so unsensitive that you have to grind your finger along it to make it scroll; so that's out. The Kensington Pilot Mouse I tried had an infuriating little feature: the button surface wasn't connected to the lever underneath it, and was in fact separated from it by about a millimeter; you'd press down until it contacted the lever with a tap, then press down further until the button clicked. Tap-click. Tap-click. Drove me nuts, and I gave it away before the day was out. Most new mice that advertise "advanced optical sensors" have bizarre features I don't need or want, like dozens of buttons for me to accidentally press or congealed-looking asymmetrical bulbosities, or are inexplicably huge, with tall rounded middles that make my hand have to dome itself uncomfortably to reach the buttons. The new much-vaunted Logitech mouse with the laser sensor, like so many other mice these days that tout themselves as top-end, is wireless, which is an instant deal-killer: I'll be damned if I have to recharge my mouse, or worry about RF interference or Bluetooth connectivity, or have to sit it in a weirdo ID4-looking dock thingy when I'm not using it. And the cheapo Logitech mouse, like all mice designed for PC use as well as the Mac market, has a nine-hundred-foot cord that's designed to snake over the back of your desk, down the wall, around the corner, and into the inaccessible back of your PC. Mac mice have tiny little 18-inch cables intended to plug into your USB keyboard (in the good old ADB tradition), or your monitor. When I had a Windows PC in college, the biggest thing that bugged me about it was not Windows, believe it or not; it was the fact that the mouse cord hung over the back of my desk, and was weighty enough to constantly tug against the mouse and drag it upward and away from me. I'd wake up in the morning and find the mouse had travelled all the way up to the edge and was about to leap sullenly off into the chasm beyond. I had to tape the cord to the back of the desk or the adjacent windowsill to stop it from doing this, and over the course of the year the sun baked the tape onto the windowsill and ruined the paint job when I tried to remove it to go home for the summer. So now the Logitech mouse that I've been using for the past couple of days has this enormous cable coiled up behind my keyboard in the keyboard tray like a viper waiting to strike, and if I push the keyboard back on it so I can eat dinner or something, the coil falls off into my lap and drags the mouse with it onto the floor, and I have to crawl under the desk to fish it out and thread the mouse back up through the slot between the tray and they bottom of the desk, and I bang my head on the underside of the desk trying to get out, knocking over my glass of Diet Coke so it spills all over my chair and into my keyboard. One would think Logitech's designers might one day have some mercy on their hapless victim-customers, but I guess the Chespirito feature is just in too much demand these days.
All I want is a nice, sane, restrained, entry-level two-button mouse with a scrollwheel and a short, Mac-style cord, like they knew how to make back in 1998. And if they would deign to give it an optical sensor that wouldn't completely go insane when I moved it rapidly, so much the better. In the meantime, I've been still doggedly using the trusty tragic iceMouse, willing myself to move it slowly to avoid provoking the Input Demon with its evil red LED eye. But when Kris was over playing Halo, he immediately noticed the shortcomings of such a mouse: rapid movements made his character jerk its aim around the screen, leading to imminent video death. This is why I occasionally still go back to my old heavy gunk-accumulating ball mouse, just to ease the pain for a brief evening or so.
On Wednesday I eliminated the mousepad as the culprit, by buying a new mousepad identical to the ones in the Apple campus store, which exhibited mice happily working with no trace of the problem. It was a long and illogical shot, but it was all I had left. Not having had any indication to believe that Apple had seen fit to address the sudden software behavior change I'd noticed in 10.1, I was starting to despair. My working theory, by the way, is as follows: in the new generic mouse driver in OS X, there are vector counters for both the X and Y axes, which keep track of instantaneous velocity. However, for certain mice, when they're moving at the maximum velocity that the buffers can register, the driver is setting that value to zero instead of the max value; this causes the pointer to freeze in the axis of movement, even though you're moving it as quickly as you can in a straight line. This results in the pointer jumping all over the screen, or more accurately, staying behind your movements and failing to follow you during the fastest motions. Yet this worked fine in 10.0, and it works fine for some mice. Why? Do some mice have internal buffers that feed data more smoothly to the driver and prevent it from reaching that top value? Do some mice just not report a velocity value high enough to rail the driver's register and trigger the problem? Like, do newer mice only report the value on a 0-254 scale, where 255 is what gets slapped down to 0 in the driver? Either way, it's solvable in the operating system, and yesterday morning I stopped off at the Genius Bar at the Oakridge Apple Store to demonstrate it with a mouse that worked and one that didn't. The Genius in question had never seen the problem before and took some time to convince himself that it was legitimate, as previous Geniuses I'd shown the problem to in past months and years have done, with their investigations never leading anywhere beyond me buying yet another mouse to add to my dust-gathering collection. This guy, though, was convinced; he offered, quite gallantly, to escalate the issue to the engineers higher up the food chain, and to get back to me later in the week with the status once there was some to report. He had me write up the problem using one of the display Macs and print it for him to use as evidence; he'd seen it with his own eyes, so I had me a champion. I don't know where this will go, but we'll see.
Meanwhile, I was still curious about a few further variables. Not expecting anything, I plugged the two test-case mice into a Windows machine. And lo and behold, Windows exhibits the same problem. I verified this on a Windows 2000 machine and an XP machine: the two mice with the two different behaviors on the Mac showed exactly the same behaviors under Windows. Which means that whatever bug Apple introduced into their mouse driver in Puma, the very same bug has been present in Windows for at least that long. What does that mean? I have no idea. But I passed it on to the Genius as another data point, just the same. I still think this is something Apple can and should fix, and all the more so now that it means they can do something else better than Windows does, if they choose to address it.
On the way home I bought a Kensington Mouse-In-A-Box Optical, the $14.99 model with the austere retro-looking metallic finish; I opted out of the $19.99 Mouse-In-A-Box Optical Elite, the one with the grippy rubberized coating and the extra Forward/Back buttons on the sides that I knew I'd be spending all my time trying to avoid pressing. And I knew that the newer a mouse I bought, the greater the chance that it would sport one of those boat-anchor PC-length cords. (At least they're not D-connectors anymore—better known as "grappling connectors". Just dip 'em behind your desk, fish around, and come up with shoes, tires, old sandwiches...) And this mouse is actually doing the job pretty nicely. A little oversensitive and lacking in acceleration variance (precision movements don't slow the cursor down much), and it has a long cable (not as long as the Logitech one, but long enough to be annoying—I just left the twist-tie on it to take up the slack), but its buttons are nice, the shape is nice, and—most importantly—it doesn't have The Problem. I think this one'll do me for a while.
Of course, if they fix the problem, it's back to the Macally mouse for me. Unless, of course, this intriguing animal sees the light of day... I could get used to that. Imagine a scrollwheel you could scroll with continuously, round-and-round-and-round, without having to repeatedly roll and reposition and roll and reposition your finger.
At any rate: now that I know this problem is not even limited to the Mac, I'm both relieved and bewildered: relieved because it's not a "weakness" per se, but bewildered that nobody seems to have noticed this problem before, let alone complained about it. Friends I've demonstrated it to, using their own mice on their own computers, simply say, "Huh"—never having noticed anything bothersome before. Does nobody ever move their mouse rapidly, or something? Surely there are millions of Windows users with some of these Mice of the Damned, which are never identified by any telltale numbers in the published specs, or even distinguished by a particular brand's internal consistency. Mouse manufacturers themselves seem unclear on the concepts I've tried to explain to them over the phone over the last three years. How can this be possible? It would be awfully weird if this tracking problem were to simply slip away silently into computing history as newer generations of optical sensors come onto the market and gradually displace whatever's wrong with the old ones, without anyone ever identifying this behavior as what it is: a bug, and a particularly egregious one at that, profoundly debilitating to the satisfactory use of a computer.
Or maybe this is already a long-running and massive underground scandal that's been masterfully covered-up by the mouse makers.
See, if I'm going to participate in a conspiracy theory, it's going to be a petty one, dammit.
(Oh, and this is where the title comes from, if you're wondering.)
UPDATE: Thanks to those who have suggested USB Overdrive... while it does provide nice speed/acceleration control, unfortunately it does nothing to solve the Freaky Tracking Problem™, which suggests that all mouse drivers except the 10.0 and 9.x drivers have this same problem—or else I'm completely insane and it didn't work back then either. Also, USB Overdrive has some pretty irritating interface choices, like making you pick an acceleration percentage by number from a list, instead of using a slider with well-marked directions; and it doesn't have the one fine-tuning control I do need, which is per-application control of scrollwheel response speed.
I installed Kensington MouseWorks, though, and it's actually much nicer than what I was expecting. Very smooth interface, with an interactive visual speed/acceleration graph that updates as you twiddle the sliders. Unfortunately it interferes badly with Exposé—I can no longer map modifier keys plus the middle mouse button to the various Exposé modes, and if I set one of the modes to the middle button, I have to do it as a "keystroke", which for some reason is a lot slower than having the mouse button directly trigger Exposé, with noticeable lag between click and response—but other than that it's a nice consolation prize.
|
|