rasteri wrote on 2023-01-08, 13:36:
There is one other change I need to make to the AXP version, DTR needs to be routed to the MAX232 instead of TXD. This is required for reset detection.
I can fake it for existing boards (by spamming "M" for a few seconds after RTS goes high) but I'd prefer to do it the "proper" way.
@rasteri - Can you clarify why you think we need DTR (in addition to RTS) for reset detection? All the documentation I found so far seems to indicate that RTS (also) goes low along with DTR for at least 100 ms to signal a reset. When I attach an oscilloscope to both DTR and RTS they behave exactly the same. I see a 165 mS toggle on both of them at the exact same time. This is with the ctmouse.exe driver. Seems like DTR is redundant, unless you have seen different behavior with other drivers?
"A Mouse reset is generated by a falling edge of the host RTS line while the DTR line is low. This mode is used by most standard serial port mouse drivers to determine the
presence and type of pointing device connected to the host’s serial port."
- from 2.2.1.3 Serial Mouse Reset: https://web.stanford.edu/class/ee281/projects … 20Detection.pdf
If we want to stop spamming the "M", we could probably change the code to wait until RTS is brought back high (and wait an additional 10ms or so) before sending it out. I think that is closer to what the host is expecting to begin with.
TXD might still come in handy in the future. Some mice expect the host to send it commands to switch modes (i.e. to increase the baud rate) or return other information (like PnP strings). So, it feels wrong to loose it for a possibly redundant signal.