old-www/HOWTO/3-Button-Mouse-6.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&commat;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 &amp; 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&commat;chiark.chu.cam.ac.uk">pjb1008&commat;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&commat;pyramid.bio.brandeis.edu">bcboy&commat;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&commat;lysator.liu.se">peterf&commat;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&commat;digi.ruhr.de">ud&commat;digi.ruhr.de</A>) confirms it works on an <B>HN8348A</B> chip;
Ben Ketcham (
<A HREF="bketcham&commat;anvilite.murkworks.net">bketcham&commat;anvilite.murkworks.net</A>)
confirms the <B>HM8348A</B> (Pin 9 is Gnd). </LI>
<LI>Urban Widmark (
<A HREF="mailto:ubbe&commat;ts.umu.se">ubbe&commat;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&commat;cc.helsinki.fi">metsala&commat;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&commat;cs.tu-berlin.de">robin&commat;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&commat;sysgo.de">rkaiser&commat;sysgo.de</A>)
confirms that pin 3 - Gnd works on a <B>EC3576A1</B> chip too.</LI>
<LI>Sean Cross (
<A HREF="mailto:secross&commat;whidbey.com">secross&commat;whidbey.com</A>)
found it was pin 2 - pin 7 (Gnd) on a <B>HM8370GP</B> chip.</LI>
<LI>Peter Fox (
<A HREF="fox&commat;roestock.demon.co.uk">fox&commat;roestock.demon.co.uk</A>)
used pin 3 - pin 8 on a <B>HM8348A</B> chip.</LI>
<LI>Jon Klein (
<A HREF="jbklein&commat;mindspring.com">jbklein&commat;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&commat;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>