190 lines
8.0 KiB
HTML
190 lines
8.0 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
|
|
<TITLE>The 3 Button Serial Mouse mini-HOWTO: Switching a Mouse to 3-Button Mode </TITLE>
|
|
<LINK HREF="3-Button-Mouse-7.html" REL=next>
|
|
<LINK HREF="3-Button-Mouse-5.html" REL=previous>
|
|
<LINK HREF="3-Button-Mouse.html#toc6" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="3-Button-Mouse-7.html">Next</A>
|
|
<A HREF="3-Button-Mouse-5.html">Previous</A>
|
|
<A HREF="3-Button-Mouse.html#toc6">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s6">6. Switching a Mouse to 3-Button Mode </A></H2>
|
|
|
|
<P>Even cheap mice can also work under the Mouse Systems protocol, with all
|
|
three buttons working. The trick is to get the mouse to think it's a
|
|
Mouse Systems one, something you rarely see in your instructions.
|
|
<P>
|
|
<UL>
|
|
<LI>Before you power up your computer, hold down the left mouse button
|
|
(and keep it held down until it has booted to be on the safe side).</LI>
|
|
</UL>
|
|
<P>When the mouse first gets power, if the left button is held down it switches into
|
|
Mouse Systems mode. A simple fact, but not always publicised. Note that a soft
|
|
reboot of your computer may not cut the mouse power and therefore may not
|
|
work. There are a
|
|
number of other ways of switching the mode, which may or may not work with
|
|
your particular mouse. Some of these are less drastic than rebooting your
|
|
computer, two are more so!
|
|
<P>
|
|
<UL>
|
|
<LI>If your computer is get-at-able you can unplug the mouse
|
|
and plug it back in with the button held down (although you shouldn't
|
|
normally plug things in to a live computer, the RS232 spec says it is OK).</LI>
|
|
<LI>You may be able to reset the mouse by typing
|
|
<CODE>echo "*n" > /dev/mouse</CODE>, which should have the same effect
|
|
as unplugging it. Hold the left button down for Mouse Systems mode, not for
|
|
Microsoft. You could put this in whatever script you use to start X up.</LI>
|
|
<LI>Bob Nichols (rnichols@interaccess.com) has written a small c
|
|
program to do the same thing, which may work if <CODE>echo "*n"</CODE> does
|
|
not (and vice versa). You can find a copy of his source code at
|
|
<A HREF="http://kipper.york.ac.uk/src/fix-mouse.c">http://kipper.york.ac.uk/src/fix-mouse.c</A></LI>
|
|
<LI>Someone has reported that the `ClearDTR' line in the Xconfig is enough
|
|
to switch their mouse into Mouse Systems mode.</LI>
|
|
<LI>If you are brave enough, open the mouse up (remember that this will
|
|
invalidate your warranty) and have a look inside. In some cases, the mouse
|
|
may have a switch inside,
|
|
for some strange reason known only to the manufacturer. More likely on
|
|
the cheap mice is a jumper which you can move. The switch or jumper may have
|
|
the same effect as a `MS/PC' switch described in the
|
|
<A HREF="3-Button-Mouse-4.html#switch">Switched Mice section</A> above.
|
|
You may find that the circuit board is designed for a switch
|
|
between 2 & 3 buttons, but it hasn't been fitted. It will look something
|
|
like:
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
-----------
|
|
| o | o | o | SW1
|
|
-----------
|
|
1 2 3
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
Try linking pins 1-2 or 2-3, and see if it changes the behaviour of the mouse.
|
|
If it does, you can either fit a
|
|
small switch, or solder across the contacts for a quick and permanent
|
|
solution.
|
|
</LI>
|
|
<LI>Another soldering solution which might be a last-resort for mice which
|
|
don't understand MouseSystems at all, from Peter Benie
|
|
(
|
|
<A HREF="mailto:pjb1008@chiark.chu.cam.ac.uk">pjb1008@chiark.chu.cam.ac.uk</A>). If the middle button's switch is
|
|
double-pole, connect one side of the
|
|
switch to the left button's switch, and the other side to right
|
|
button's switch. If it's not a double pole switch then use diodes rather
|
|
than wire. Now, the middle
|
|
button pushes the left and right buttons down together. Select
|
|
<CODE>ChordMiddle</CODE> in the XF86Config and you have a working middle button.
|
|
</LI>
|
|
<LI>The ultimate recourse with the soldering iron was first described to me by
|
|
Brian Craft (
|
|
<A HREF="mailto:bcboy@pyramid.bio.brandeis.edu">bcboy@pyramid.bio.brandeis.edu</A>). Two common
|
|
generic mouse chips are the 16 pin <B>Z8350</B>, and the 18
|
|
pin <B>HM8350A</B>. On each of these chips, one pin controls the mode of the chip,
|
|
as follows.
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
Pin 3 Mode
|
|
----- ----
|
|
Open Default Microsoft. Mouse Systems if a button is held on power-up.
|
|
GND Always Mouse Systems.
|
|
Vdd Always Microsoft.
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
(Pins are numbered as follows:)
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
____
|
|
pin1 -| \/ |-
|
|
pin2 -| |-
|
|
pin3 -| |-
|
|
-| |-
|
|
-| |-
|
|
-| |-
|
|
-| |-
|
|
pin8 -|____|-
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
(This info comes courtesy of Hans-Christoph Wirth, and Juergen Exner, who
|
|
posted it to de.comp.os.linux.hardware) You can solder a link between
|
|
pin 3 and gnd, which will fix the mouse into MouseSystems mode.<P>
|
|
<P>
|
|
<UL>
|
|
<LI>Peter Fredriksson (
|
|
<A HREF="mailto:peterf@lysator.liu.se">peterf@lysator.liu.se</A>)
|
|
has tried the SYSGRATION <B>SYS2005</B> chip, and found that linking Pin 3 to Gnd
|
|
forced Mouse System mode.</LI>
|
|
<LI>Uli Drescher (
|
|
<A HREF="mailto:ud@digi.ruhr.de">ud@digi.ruhr.de</A>) confirms it works on an <B>HN8348A</B> chip;
|
|
Ben Ketcham (
|
|
<A HREF="bketcham@anvilite.murkworks.net">bketcham@anvilite.murkworks.net</A>)
|
|
confirms the <B>HM8348A</B> (Pin 9 is Gnd). </LI>
|
|
<LI>Urban Widmark (
|
|
<A HREF="mailto:ubbe@ts.umu.se">ubbe@ts.umu.se</A>)
|
|
says the same applies to the <B>EC3567A1</B> chip, where Pin 8
|
|
is ground. I've tried it as well and it works fine.</LI>
|
|
<LI>Timo T Metsala (
|
|
<A HREF="mailto:metsala@cc.helsinki.fi">metsala@cc.helsinki.fi</A>)
|
|
has found that on the <B>HT6510A</B> chip pin 3 is mode select, pin 9 is Gnd. The
|
|
same works for the <B>HT6513A</B> chip. Holtek also make <B>HT6513B</B> and <B>HT6513F</B>
|
|
chips - on these, pin 8 is Gnd.</LI>
|
|
<LI>Robert Romanowski (
|
|
<A HREF="mailto:robin@cs.tu-berlin.de">robin@cs.tu-berlin.de</A>)
|
|
says pin 3 - pin 8 (Gnd) works on an <B>EM83701BP</B> chip too.</LI>
|
|
<LI>Robert Kaiser (
|
|
<A HREF="mailto:rkaiser@sysgo.de">rkaiser@sysgo.de</A>)
|
|
confirms that pin 3 - Gnd works on a <B>EC3576A1</B> chip too.</LI>
|
|
<LI>Sean Cross (
|
|
<A HREF="mailto:secross@whidbey.com">secross@whidbey.com</A>)
|
|
found it was pin 2 - pin 7 (Gnd) on a <B>HM8370GP</B> chip.</LI>
|
|
<LI>Peter Fox (
|
|
<A HREF="fox@roestock.demon.co.uk">fox@roestock.demon.co.uk</A>)
|
|
used pin 3 - pin 8 on a <B>HM8348A</B> chip.</LI>
|
|
<LI>Jon Klein (
|
|
<A HREF="jbklein@mindspring.com">jbklein@mindspring.com</A>)
|
|
found pin 3 - pin 9 did the trick for a <B>UA5212S</B> chip.</LI>
|
|
</UL>
|
|
</LI>
|
|
<LI>As an alternative to the above soldering methods, you can get the mouse to
|
|
hold it's own button down when booting: this circuit from
|
|
<A HREF="mailto:mkatzer@TechFak.Uni-Bielefeld.DE">Mathias Katzer</A>.
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
-----
|
|
--- R ---------O------ + Supply
|
|
| ----- | | C = 100nF capacitor
|
|
| | E | R = 100kOhm
|
|
| __ / | T = BC557 transistor
|
|
| / \ O
|
|
| B | #V | T /
|
|
|-----|-# | / Left button switch of the mouse
|
|
| | #\ | O
|
|
| \__/ |
|
|
--- \ C |
|
|
--- C ------O----------> (to somewhere deep inside the mouse)
|
|
|
|
|
### Ground
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
The test mouse was a no-name model MUS2S - whether this works in other mice
|
|
depends on the circuit of the mouse; if the
|
|
switch is connected to ground and not to +Supply, an npn-transistor like the
|
|
BC547 should work; R and C have to be swapped then, too.</LI>
|
|
</UL>
|
|
<P>So there you have it, the choice is yours. Stick with the default
|
|
Microsoft two buttons, or work out how to switch the mode and set X
|
|
up to take advantage of this.
|
|
<P>
|
|
<HR>
|
|
<A HREF="3-Button-Mouse-7.html">Next</A>
|
|
<A HREF="3-Button-Mouse-5.html">Previous</A>
|
|
<A HREF="3-Button-Mouse.html#toc6">Contents</A>
|
|
</BODY>
|
|
</HTML>
|