My computer mouse has a problem. Whenever the sun shines on it through a window, its movement becomes screwy. The cursor will move up and down fine, but it refuses to move along the screen’s x-axis.
I find this rather odd, especially considering that it is not an optical mouse, just a plain trackball one. Does anyone know why this happens? It is a “KeyTronic” mouse, if that matters, and I have no problems with it other than when the sun (or presumably any other strong light) shines on it.
Mouse movement is sensed by an IR LED shining through a grill, which is attached to that black plastic rod you can see if you open the ball compartement. The shell of your mouse is so thin that light is coming through it (or potentially through a crack, whatever) and causing spurious sensing.
If you don’t want to mess up the outside, take your mouse apart (it’s super easy, really), and make the inside more opaque. I’d try sharpie marker or electrical tape, just off the top of my head.
Nanoda basically has it right. To give a bit more detail, the way most “mechanical” mice work is that they have a wheel in the up/down direction and a wheel in the left/right direction. When you move the mouse (or trackball, which is just an upside down mouse) the movement of the ball is going to have an up/down component and a left/right component. If you look carefully at the wheels, they have tiny slits in them. The trick here is that there are two detectors which are slightly offset from each other (or two detectors together with 2 sets of slots in the wheel that are slightly offset from each other).
The way the mouse works is that infra-red light from an IR-LED shines through the slits onto two detectors. Often this will be one little component with a slit in it, but sometimes the emitter and detectors will be individual components. The microcontroller only needs to detect the presence or absense of the light for each detector. Every time the microcontroller detects the beam, it knows that the wheel moved far enough that one of the slots went by the detector. The microcontroller knows which direction the wheel is moving by which detector sees the slot first.
The smallest unit a mouse can detect is one slot in the wheel, which is a pretty small unit of distance. This unit is called a “Mickey” (after Mickey Mouse of course). The mouse totals up all the mickeys in each direction and sends them back to the computer periodically, along with the state of the switch contacts for the mouse buttons.
You might try changing mouse pads. If the sunlight is reflecting off of the mouse pad and up into the guts of the mouse, then all you have to do is find one that isn’t reflective to infra-red light, which is not necessarily a black one. If the light is coming in through the case of the mouse then probably the easiest thing to do is try a different brand mouse.
Wow…thanks a lot guys. I had no idea a trackball mouse worked that way.
At first I thought it might be one of those “bodily emanations extinguishing street lights” things…you know, a tenuous connection like that. But the light is clearly causing it; my skylight casts a thin strip of sunlight onto the computer table, and I can literally move the mouse into and out of the light and watch the horizontal movement of the cursor stop.
Heh. My electronics knowledge is pretty good, but this was just experience. I had a cheapo mouse that wouldn’t move properly if the desk lamp was too close to it.
Hmm. And… um… today is… bilingualism day, so I didn’t mis-spell compartment.