Converting A Microsoft Serial Mouse To Work On The Amiga Introduction From reading the occasional complaints on Comp.Sys.Amiga, it appears that many people are interested in replacing their stock Amiga mouse with another type of input device. Witness the Atari Trackball modifications and also the Boing Optical Mouse. This article will explain the basics of the Amiga mouse, and in particular, how to modify the Microsoft Serial Mouse (the newer white dove bar one) to work on the Amiga. The principles outlined in this article can be applied to modifying other mice. Matter of fact, other mice may be simpler to modify (i.e. the Microsoft Bus Mouse). The reason I chose the Serial mouse was that it was laying around already. Disclaimer This modification requires opening up your Microsoft serial mouse and removing a chip and adding two resistors, one of which is a surface mount resistor. If you feel uncomfortable with this then either find someone that isn't or don't try this modification yourself. I make no claims that this modification will work for you. It worked for me, your mileage may vary... Amiga Mouse The Amiga supplied mouse is rather simple as mice go. It provides the basic XY quadrature signals and lets the Amiga figure it out from there. This is actually a good thing, as it lets us use other devices by simply removing any back end processing or signal massaging circuits to get back to the raw XY signals. Basically, the Amiga mouse has two rollers that touch the mouse ball in the X and Y direction. As the ball rotates in the X (right <-> left) direction, X roller shaft spins. If the ball rotates in the Y (up down) direction, the Y roller shaft spins. Any combination of XY direction, and the roller shafts spin a proportionate amount in the X and Y directions. Each shaft is connected at the end to a slotted disk. Each disk has a LED emitter/ detector pair that "reads" the slots as they spin by, creating a logic pulse for each slot seen. Notice that there are two detectors for the X disk and two for the Y disk. Each pair are mounted physically 180 degrees apart on the slotted disk. The odd number of slots appear to be cut into each disk, so that it is impossible for the pair of logic pulses to occur exactly at the same time. This is how the mouse can signal the direction that the mouse is moving. For example, lets look at just the X slotted disk/detector pair. Lets call the two output signals Xa and Xb. If the mouse is moving to the right, the signals would look like this; ____ _______ _______ Xa | | | | | |_______| |________| |________ ____ _______ _______ Xb | | | | | |_______| |________| |________ The graphics are terrible, but you get the picture. If the mouse is moving in the opposite direction, then Xb would go low first, followed by Xa. The same thing happens for the Ya and Yb pair. In fact, you can treat the Y pair as up down equivalent to the X pair. Each of the four detector signals (x pair, y pair) is conditioned by a LM339 Quad Voltage Comparator IC. The LM339 basically shapes up the signals before being sent to the Amiga. Each of the four comparators is used, one for each of the detector signals. An example of the comparator circuit looks like this; o Vcc 100 K o Vcc | | | ____/\/\/\/\____ \ / | | / | | |\ | \ 3.3K | detector | | \ | / \_________________|____|+ \ | | | | \____|_________|____ Pin x on DB9 \ o Vcc | / 2.2K / / ____|- / \ 10K \ | | / / / | |/ | |_______| --- | - \ 2.7K / \ | ----- --- - The 10K, 2.7K resistor divider sets a trip voltage of around 1.0 volts for the comparator. This is important since the detector puts out around .5V for a low pulse. The resistor divider is also shared by all four comparators in the LM339. The two mouse buttons are simply switches to ground. When you press one of the buttons, it grounds a DB9 pin. The corresponding pull-up resistors must be inside the Amiga. The mouse cord terminates inside the mouse in a connector marked CN-1. Below is the pinouts for the mouse cord. DB9 CN-1 Function ------------------------------------- 6 1 Left Button 9 6 Right Button 8 9 Signal Ground 7 8 Vcc (+5 Volts) 3 5 Ya 1 2 Yb 2 3 Xa 4 4 Xb 5 7 No Connect Shield Drain Wire Ground The DB9 pinout is per the convention for DB9 connectors. The CN-1 pinout is per the numbers molded into the top of the connector. Microsoft Serial Mouse The Microsoft serial mouse starts out the same as the Amiga mouse, with an almost identical roller shaft/slotted wheel/LM339 arrangement. The similarities stop there. Since this is a device that is hooked to an IBMPC serial port, the mouse must send signals that look a lot like serial data for the UART inside the PC to understand it. Also, the mouse must derive its power from a serial pin which the mouse driver sets to +12 volts. These two differences is where the modifications come in. First lets look at the Microsoft mouse's circuits then we'll get into the modification. The Microsoft mouse uses a similar roller shaft/slotted wheel arrangement as the Amiga mouse does. The one difference to note is that the Microsoft mouse uses one LED emitter per X and Y axis and has a dual detector that is all in one package. This is apparently a cost reduction measure but the net effective output is the same as the Amiga mouse. The dual quadrature signals for X and Y direction are identical to the Amiga mouse. Each of the XY pairs goes to a LM339 comparator just like the Amiga mouse. The resistor values are different and there is also a diode to ground on each detector output (presumably for protection). The four outputs of the LM339 as well as the two switch inputs are fed into the microprocessor marked "Mitsumi MS02". This uP apparently reads all the input events and sends a serial data stream to the UART in the PC. There is a zener diode circuit to limit the +12v down to +5 volts for the LM339 and uP. Unfortunately, the emitter LED's and the resistor divider circuit are powered directly from the +12V. Modifications for the Microsoft Serial Mouse To perform this modification, you will need the following items; Soldering Iron Solder Solder Wick (or a desoldering station) 1) 470 1/4 Watt resistor 1) 10K surface mount resistor (clever people may be able to use a 1/4W or 1/8W regular resistor). 9 conductor w/shield cable. If your Amiga mouse is dead, this is the best cord to use. The cable must be small enough to fit thru the slot at top of the mouse Phillips screwdriver First disassemble the Microsoft mouse. Turn the mouse over, peel off the serial number label. Under it you will find two recessed screws. Remove the screws. Turn the mouse right side up. pull up gently on the bottom end (away from the buttons) of the top of the mouse case. lightly pull back on the top to disengage the latch that is inside the mouse near the front. It might help to use a small screwdriver to push gently on the tab just above the mouse cord at the same time. The cover should come off. Remove the mouse cord by disconnecting the cable at CN1. Remove the two screws, one on each side of the ball assembly. The circuit board should now come out of the lower housing. Remove the IC nearest the CN1 connector. It should be marked "Mitsumi MS02" Do this carefully, as we will use the holes to solder in the new mouse cable. Notice the thick trace running thru the center of the IC just removed. It has 6 surface mount resistors connecting it to various pads of the IC. It also connects directly to Pin 8 of the IC. This is VCC (+5V). Now find the surface mount resistor directly to the left of the CN1 connector pads. It should be marked "182". Now take the 470 ohm resistor and fashion the leads to fit between the VCC trace and the top side of the 182 resistor (side nearest the IC just removed). Cut the leads to length as necessary. Form the leads so that they don't short on anything else. I formed mine like this; o o o o o o o o | | where | is a surf. mnt. resistor ________________ <--- | | | | 470 \ o o o o o o o o <-- IC removed Resistor/ \ o o o / |_______ | o o o o o <-- CN1 "182" surface mount resistor This just fixed the first problem. The current limiting resistor for the LED emitters was tied to +12 volts thru a 1.8K ("182") resistor. Since we don't have 12 volts, the 470 ohm resistor to +5 volts replaces it. Next, find the empty surface mount resistor pads just below pins 3 and 4 of the LM339 IC. Solder the 10K surface mount resistor to these pads, like this; | o o o o o o o | | _ _ where | is a surf. mnt. resistor Pads <--- | o o o o o o o <-- LM339 IC This fixes the second problem. The resistor divider was tied to +12 volts as well. Adding this 10K resistor resets the divider to 1.0 volts when dividing from +5 volts. Next, solder your new mouse cord to the pads of the removed IC according to the following chart; DB9 IC pad Function -------------------------------------- 1 12 Yb 2 10 Xa 3 11 Ya 4 9 Xb 5 No Connect Not used 6 13 Left button 7 16 Vcc (+5V) 8 8 Signal Ground 9 14 Right Button Shield wire to CN1, pin 5 The shield wire is required, since the LED emitters are grounded to it. Recheck your work. Screw the circuit board back into the lower housing. Route the mouse cord around the left of the ball assembly and out thru the cutout. Snap on the top cover. Screw the top back on. Your new mouse should be operational. If it doesn't work, check the following; Pointer moves left when mouse is moved right. The Xa and Xb lines are swapped. Reverse them. Pointer moves up when mouse is moved down. The Ya and Yb lines are swapped. Reverse them. One or both buttons don't work. Recheck your connections. Is the cable interfering with the switches near the top of the mouse? Can you hear the switches clicking? Is the top cover snapped on correctly? Neither direction moves the pointer. Make sure the shield wire is connected to CN1, pin 5. With the Mouse connected and the Amiga on, check for +5 volts on the LM339; Pin 3 is Vcc, pin 12 is ground. Check for around 1.0 volts on pins 4,6,8,10. If its not close, recheck your 10K mod. Check to see if there is a voltage drop across the LED's. If not, check your 470 ohm mod. Conclusions With the information here and some circuit tracing on your part, you should be able to modify other mice in a similar manner. Enjoy your new mouse! Jeff Easton easton@andrews.edu