XL1201 Mouse

The XL1201 mouse is a Logitech 3-button mouse, model number P7-3F-SZ. It has an 8-pin modular jack with a key on one side (in other words, it's very close to a standard RJ-45 jack but has more plastic sticking out the side so it won't fit in an N-base-T Ethernet port).

It's apparently about 360 DPI. It's a mechanical mouse with a ball. Disassembly reveals three button switches, plus two optical rotary encoders, each with an (infrared?) LED and phototransistor. There are two logic ICs, 74LS09 and 74LS05, a few passive components (two resistors and two capacitors) and what looks like a resistor array marked "L807-472G 2880" in a blue 8-pin SIP.

The cable is attached through a 2x5 pin 0.1" spacing male header, with 8 wires attached, colored in the standard rainbow colors.

According to this the pinout is:

1blackYB
2brownYA
3redXB
4yellowGND
5orangeXA
6green+5V
7blueRVL
8violetMVL

RVL and MVL seem to be the mouse buttons encoded in binary: both high when nothing is pushed, one low when left or right mouse button is pushed, and both low when center mouse button is pushed. It seems to be a way of saying "not (right or left)" and "not (middle or left)" if the V is interpreted as the mathematical or symbol (⋁).

XA, XB, YA, YB I don't know. I'm assuming they are the direct outputs of the optical encoders for both axes.

Looking at the Symbolics cable into the 2x5 female header, we have these wires:

greenblackredblueempty
brownyelloworangevioletempty
-----------------------------------------------------------------------------
+5VYBXBRVLempty
YAGNDXAMVLempty

In the mouse, the two empties are to the front of the mouse, so the top line above is on the top of the mouse.

Looking into the 2x5 pin male header in the mouse so the pins are in your face, they go like this:

??blueredblackgreen
??violetorangeyellowbrown
---------------------
??RVLXBYB+5V
??MVLXAGNDYA

Questions

How are the XA, XB, YA, XB lines interpreted.

Logitech P7-3F

I purchased a Logitech P7-3F with a male mini-DIN looking connector, 3 pins, 4 pins, 2 pins with that 3-pin row having a gap between two pins. [pic] Inside has the same 2x5 header as the Symbolics mouse, [pic] and I plugged the Symbolics mouse's cable in. The X & Y movement was perfect, but the buttons didn't work properly.

The internals are very different. There's also a SIP package (silk screened RN1), two capacitors, and various resistors, but the only logic are four TO-92 package transistors.

  • Left button was no-op.
  • Right button acted as middle button (I think).
  • Center button acted as right button.

Reverse engineering

Looking into the 2x5 pin male header in the mouse so the pins are in your face, they go like this:

1 L?2 M?XBYB+5V
3 CG?4 R?XAGNDYA
  • 1 - Normally 5V. Goes to about 2.8V when left button pushed
  • 2 - Normally 5V. Goes to 2.8V when middle button pushed
  • 3 - Button pushes have no effect. This pin seems to be a chassis ground as it runs a trace all around the perimeter of the bottom of the PCB.
  • 4 - Normally 5V. Goes to 2.8V when right button pushed

Note that there is no load on the oscilloscope so when the voltage drops to 2.8V this may go to 0V if there were a current sink.

These three outputs could be converted into the expected Symbolics input using the circuit here:

Just by simply swapping pins labeled 2 and 4 above, you can get a mouse that works with two buttons - middle and left.

Douglas Fields

Writing LISP and Haskell since 1990