• Please review our updated Terms and Rules here

Is Quadrature a universal standard for mice?

cwathen

Experienced Member
Joined
Feb 1, 2018
Messages
268
Location
Bristol, UK
Another RM Nimbus related post...

These have a port for a quadrature mouse which didn't come with my machine. The original was made by Logitech. I do have a mouse from an Olivetti Prodest PC/1, another Logitech quadrature mouse with a board looking very similar to the original RM supplied rodent.

Although the pinout is different, I thought I'd be able to rewire it to work with the RM so I bought some bits to replace the original cable. The buttons work but the mouse doesn't respond to movement.

I always thought quadrature worked by simply pulsing the direction lines on movement as if it was a switch opening and closing quickly and as such any quadrature mouse could be adapted to any quadrature interface. Is this not the case?

Always possible the mouse is faulty but it worked when last used (even if that was a long time ago) and there's not really much on the board to have gone wrong.
 
Quadrature mice were used on a wide range of computers, like Atari ST, Atari PC 1-3, Commodore Amiga, Schneider Euro PC, and even some of the so called Bus-Mouse for example from Microsoft were just that.

Also the Olivetti M24 keyboard mouse is a quadrature mouse, but interstingly different pinoit than at Prodest PC 1.

With adapters they should be able to work everywhere as lon they are running ob 5V power. Amiga and ST mouse are allmost the same, escept for two direction lines which must be swapped. Euro PC is the same pinout than Atari.
 
Quadrature isn't just on/off, else it wouldn't be quadrature.

On(A)-On(B)-Off(A)-Off(B)
Two switches, 90° apart, when 360° completes all four states.
A HHLL
B LHHL

This ensures that missing pulses can be detected as definite unknown rotation with encoder failure. Also, direction is always known.

If your switches don't close and open 90° apart, the computer can't detect mouse movement (correctly).
 
The problem I have is the computer's pinout has the direction pins marked up, down, left and right rather than XA/XB/YA/YB (the same port also supports a joystick so I guess this is to help wire that) so I have no definite reference to which pin is which,

I assumed the mouse worked by each sensor closing against ground as the wheel spun past to record the direction and movement on different directions of the same axis would be recorded correctly based on a different sensor being used.

So i assumed XA/XB controlled Left and Right with YA/YB controlling Up and Down and expected to just have to swap pins around if the mouse was moving the wrong way but instead it doesn't move at all (well you can get some minor nudging of the pointer with furious mouse movement but nothing beyond that).

Not sure how this is supposed to be wired now!
 
The problem I have is the computer's pinout has the direction pins marked up, down, left and right rather than XA/XB/YA/YB (the same port also supports a joystick so I guess this is to help wire that) so I have no definite reference to which pin is which,

I assumed the mouse worked by each sensor closing against ground as the wheel spun past to record the direction and movement on different directions of the same axis would be recorded correctly based on a different sensor being used.

So i assumed XA/XB controlled Left and Right with YA/YB controlling Up and Down and expected to just have to swap pins around if the mouse was moving the wrong way but instead it doesn't move at all (well you can get some minor nudging of the pointer with furious mouse movement but nothing beyond that).

Not sure how this is supposed to be wired now!

If it was working with a joystick port, it sends up/down left/right pulses and is NOT a quadrature input, so you need to convert the quadrature signals to direction pulses.
 
It's probably as simple as using LEFT+UP and RIGHT+DOWN.

The signals are electrically the same, they are just 5V high/low TTL signals. But the impulses are different. It's a question of the interpretation of these signals. You can see that on ATARI ST and Commodore Amiga. You had the choice, dependend from software/game, if you plug in a 9-pin digital joystick or a quadrature mouse. But a software which expects a mouse can not work with a joystick, and a software which expects a joystick can't work with the mouse. That's because the impulses on these signals are different.

With a joystick you have simply a low signal on the direction input. If you press the joystick down, you get a low signal on the "down" input of the joystick port. That's easy to interprete by software. And hardware inside of the joystick is just four switches.

Quadrature mouse is completely different. While on Joystick you have up, down, left, right, the mouse has signals which can be understand as horicontal move A, horicontal move B, vertical move A, vertical move B. It's not only counting the number of pulses, but also comparing which one of the two of a pair switches first to decide if the mouse has been moved left or right, up or down. For the optoelectronics of a mouse with ball inside see here: https://en.wikipedia.org/wiki/Computer_mouse#Mechanical_mice You can see there two wheels which are turned by the ball. On each wheel you have two optoelectronic detectors, which are observing the turns of these wheels. Here https://en.wikipedia.org/wiki/In-ph...mponents#Alternating_current_(AC)_circuitsyou can see the signals they produce when the wheel turns left and turns right. These two sinus signals are just converted to two square wave signals which can be read by the computer, these two signals are the pairs of horicontal or vertical inputs. And the rest is software to decide if the mouse is moved up, down, left, right, diagonal.

More modern mice, like serial, like PS/2, like USB mice, they have the software to understand these signals already inside and send just the relative moves as data.

By the way, the same technology as in these mice was also used by Olivetti in some electronic typewriters, printers, etc. They used DC motors with such "encoders" on their axis to replace step motors which other brands used to move printhead, linefeed, daisywheel, etc. The idea behind that was, that DC motor is cheaper and faster. The disadavantage is that such a motor control needs more processor power. But with that technology Olivetti used to have electronic typewriters with up to 30 cps, and daisywheel printers with 40, 60 and 80 cps, that's really fast.
 
Last edited:
Back
Top