Page 1 of 1

sermouse. Mice & adaptors

Posted: Thu Feb 13, 2020 6:40 pm
by ajb
I've been having an interesting time setting up the Pointer
Environment with, mostly, success. My QL configuration includes Hermes
copro and SGC clones, no QIMI or other equivalent hardware mods. I have
a couple of Microsoft 2 button serial mice that work with
sermouse. However, I also have a Genius EasyMouse+ serial mouse that
doesn't. The EasyMouse+ mainly, when moved, results in full-stops
being printed along with the occasional CRLF causing "Bad name" errors
to appear (due to the dots being put in the input buffer).

The Easymouse+ is a 3 button mouse that uses the Microsoft protocol
but also has the Logitech extension for the middle button (0x20 & 0x00
bytes). As, I believe, sermouse doesn't support that extension I was
mainly interested in using it, for now, as a 2 button one. Given the
extension the designers didn't consider it necessary to implement the
Mouse Systems protocol.

Attaching both mouse types (individually) to a terminal emulator (1200
baud, 7N2, no flow control) the Microsoft mice throw out what you'd
expect - an 'M' (0x4d) character followed by 3-byte packets. The
Easymouse+ does the same except that, between the 'M' and the first
3-byte packet, the following set of consistent bytes are sent out.

33 08 01 24 2b 39 25 10 10 10 11 3c 3c 2d 2f 35 33 25 3c 30 2e 30 10
26 10 16 3c 27 25 2e 29 35 33 00 30 2e 30 00 2d 2f 35 33 25 14 15 09

I assume that it is these bytes that are confusing sermouse. A
SERMRESET doesn't help, which leads me to suspect that the sermouse
driver might be doing frequent opening and closing of the port rather
than leaving it open. Has anyone ever managed to get a mouse, giving
such extra output, working with sermouse short of building a hardware

Which links nicely to my second, related, question. Looking around for
serial mouse alternatives I can find one or two that use PIC/ATMEL
microcontrollers to convert (e.g.) PS/2 serial, or sometimes even true
PS/2, to a suitable output format. I couldn't find one which provided
any Gerber files for PCBs. I saw some C source code but no assembler
(my preferred microcontroller language). In short, none of the
projects seemed to make it easy for adapters to be replicated and/or
extended. It occurred to me that it'd be a nice project to do
(starting with a true PS/2 optical to SER1/2).

[I might even do a small adaptor for the EasyMouse+ to get that fully working with
sermouse - assuming that the sermouse source code isn't around to modify. It
might be applicable to other serial mice people have just gathering dust.]

However, before I commit time to it, have I missed any easily
available/implementable method, commercial or otherwise, of
interfacing a modern opto mouse to the pointer environment
via sermouse? That's the question which made me post this to the
newbie section (and, of course, I am a newbie here).


Re: sermouse. Mice & adaptors

Posted: Thu Feb 13, 2020 7:51 pm
by Andrew
Hi Alan

I have one of these and it works:
The schematics and the source code is on Github (see link at bottom of the page)

Also on Github there is another project:

Re: sermouse. Mice & adaptors

Posted: Thu Feb 13, 2020 8:14 pm
by ajb
Thanks Andrew. That looks just the job for that side of things.
Much appreciated.


Re: sermouse. Mice & adaptors

Posted: Thu Feb 20, 2020 6:23 pm
by ajb
Having ordered a PS/2 to serial card, while I wait for it to arrive I've started on a hardware adaptor for the EasyMouse+. As mentioned above, that mouse doesn't work with sermouse - in addition it implements the Logitech middle button extension. My adaptor is a fairly minimal 2 chip circuit, namely a MAX232 and a PIC. It's operating quite nicely so far i.e. Rxing packets and Txing them. Before I finish writing the code I'd be grateful if someone could clarify the following:

1) Does the PE do anything with the middle mouse button? If not is there an approved action for it e.g. to ignore it or duplicate the LB or RB?
2) Is either the 2 button sermouse driver or the 3 button one supposed to implement the Logitech extension (for the middle button) already? I've been
assuming that they only deal with the pure Microsoft and Mouse Systems protocols respectively.

If there's no advantage to using a 3 button sermouse setup over a 2 button one within the PE then it would be easiest to implement my (Logitech extension) adaptor to serve the 2 button driver, otherwise I'll just code up a Mouse Systems output conversion.