
Ps2 mouse to serial port adapter stand alone
knightfox75/PS2_Mouse_to_Serial_Port
An Arduino-based converter for connecting a PS/2 mouse to a serial port.

An Arduino-based converter for connecting a PS/2 mouse to a serial port.
Ps2 mouse to serial port adapter in a box is an open-source printed circuit board by knightfox75, from the knightfox75/PS2_Mouse_to_Serial_Port repository on GitHub, published under the MIT licence. It is a 2-layer board of 90 × 70 mm with 28 parts on 47 nets, routed with 112 tracks and 0 vias.
It is built around the 74LS00SC, L7805 and L78L05CZ, with the BC547 among its other parts. Its parts include 6 capacitors, 5 resistors, 4 diodes, 3 ICs and 3 connectors. It belongs with the interfaces and adapters boards of this library.
Un convertidor para conectar un ratón PS/2 a un puerto serie (RS-232).
Los ratones con conexión DB9 para puerto serie cada vez son más difíciles de encontrar (y más caros), lo que puede suponer un problema si necesitamos emplear uno en un ordenador clásico que solo disponga del puerto serie para su conexión. Después de investigar unas horas, encontré varias opciones comerciales y un par de proyectos open source que, usando placas Arduino, permitían la conexión de un ratón PS/2, o USB compatible con el protocolo PS/2 a un puerto serie.
https://github.com/Lameguy64/ps2serial
https://github.com/kristopher/PS2-Mouse-Arduino
Una vez documentado sobre estos proyectos y realizando un primer prototipo funcional de los mismos, decidí realizar mi propia versión del conversor.
Básicamente la placa Arduino se encarga de prácticamente todo el trabajo, necesitando solo un poco de electrónica externa para su funcionamiento. Una librería de interacción con el protocolo PS/2 no permite leer la señal codificada procedente del ratón con las entradas. Dicha información se codifica en un paquete de datos en el formato que esperan los drivers de ratón mas comunes y se envían al puerto serie. Además, se monitorea la señal RTS del puerto serie por si se solicita el reinicio del envío de datos.
Se han realizado dos prototipos de prueba, usando las placas Arduino UNO R3 y Arduino NANO, funcionando ambas placas perfectamente. El resto de electrónica sirve para la adaptación de las señales que circulan por el puerto serie, ofreciendo cierto nivel de aislamiento y protección entre este puerto y la placa Arduino. Además, se incorporan dos diodos LED indicadores de estado, para el monitoreo del comportamiento del prototipo.
En mi caso he usado un LED rojo para el indicador de alimentación y un LED amarillo para el indicador de estado. Dicho indicador nos proporciona cierta información en el momento del arranque del adaptador, así como de su funcionamiento. Al encender el adaptador, si no puede detectar un ratón compatible conectado, quedará encendido de manera permanente. Dicho LED de estado parpadeará de manera intermitente una vez por segundo si ha detectado un ratón, pero no es posible iniciar la comunicación siguiendo el protocolo PS/2. Si el proceso de inicio se realiza correctamente, este LED emitirá 3 parpadeos, uno largo seguido de 2 mas cortos. Una vez iniciado el adaptador, si movemos el ratón, observaremos que este LED parpadea regularmente, quedando encendido mientras mantengamos pulsado alguno de los 3 botones del ratón. Si movemos la rueda de scroll, tambien emitira un parpadeo. Si se recibe desde el puerto serie la señal RTS, este LED emitirá un parpadeo de aproximadamente medio segundo. Esto nos permite verificar que el driver ha detectado correctamente nuestro adaptador.
Dado que este proyecto (en especial la placa ISA) está destinado a ordenadores sin puerto PS/2 (normalmente 486 y anteriores), usando el sistema operativo MS-DOS o Windows 3.11 y anteriores, junto con el hecho de que actualmente casi todos los ratones PS/2 son ópticos y disponen de la rueda de scroll, sumándole que para estos ordenadores casi ningún programa hace uso de la rueda de scroll, he decidido usar dicha rueda para ajustar a tiempo real la velocidad de desplazamiento del cursor. Dado que, según la resolución de pantalla, programa o modelo de ratón esta puede ser diferente, creo que es una característica útil. La velocidad seleccionada se conservará hasta que apaguemos el adaptador (o el ordenador en el caso de la placa ISA), no viendose afectada por el reinicio del sistema. Si queremos guardar la velocidad actual de manera permanente, deberemos de mantener pulsados los botones izquierdo y derecho de manera simultanea durante 5 segundos, observando que el LED de estado se apaga transcurrido ese tiempo. Esto nos indica que la configuración de ha almacenado de manera correcta. Si en algún momento deseamos restaurar la configuración por defecto, deberemos de mantener presionados ambos botones durante 10 segundos, el LED de estado se apagará a los 5 segundos, volviéndose a encender transcurridos 10 segundos. Esto indicará que la configuración se ha restaurado y almacenado con éxito.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2, H3, H4 |
| 3 | 100nF | Capacitor_THT:C_Disc_D6.0mm_W2.5mm_P5.00mm | C3, C4, C6 |
| 2 | 10K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R2, R3 |
| 2 | 330R | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R4, R5 |
| 1 | 100uF | Capacitor_THT:CP_Radial_D8.0mm_P3.80mm | C1 |
| 1 | 1K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1 |
| 1 | 1N4148 | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | D1 |
| 1 | 1N5817 | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal | D2 |
| 1 | 220uF | Capacitor_THT:CP_Radial_D8.0mm_P3.80mm | C5 |
| 1 | 3mm RED | LED_THT:LED_D3.0mm | D4 |
| 1 | 3mm YELLOW | LED_THT:LED_D3.0mm | D3 |
| 1 | 470uF | Capacitor_THT:CP_Radial_D8.0mm_P3.80mm | C2 |
| 1 | 74LS00 | Package_DIP:DIP-14_W7.62mm_Socket | U1 |
| 1 | Arduino NANO v3 | Module:Arduino_Nano | A1 |
| 1 | BC547 | Package_TO_SOT_THT:TO-92_HandSolder | Q1 |
| 1 | DC IN | TerminalBlock_TE-Connectivity:TerminalBlock_TE_282834-2_1x02_P2.54mm_Horizontal | J1 |
| 1 | L7805 | Package_TO_SOT_THT:TO-220-3_Vertical | U3 |
| 1 | L78L05 | Package_TO_SOT_THT:TO-92_HandSolder | U2 |
| 1 | PS/2 & USB | Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_Vertical | J2 |
| 1 | Serial Port | TerminalBlock_TE-Connectivity:TerminalBlock_TE_282834-3_1x03_P2.54mm_Horizontal | J3 |
| 1 | Switch ON/OFF | TerminalBlock_TE-Connectivity:TerminalBlock_TE_282834-2_1x02_P2.54mm_Horizontal | SW1 |

knightfox75/PS2_Mouse_to_Serial_Port
An Arduino-based converter for connecting a PS/2 mouse to a serial port.

knightfox75/PS2_Mouse_to_Serial_Port
An Arduino-based converter for connecting a PS/2 mouse to a serial port.


call286/AmigaSID
Board Render Front | Board Render Back :-------------------------:|:-------------------------: |

laurent-fr/junior_computer_replica
A replica of the Junior Computer (a KIM-1 clone) published by Elektor in the 80's

rraider/Seminarkurs2021
Entwicklung eines turingvollständigen, primitiven Microcontroller in der Software Digital

msx-solis/msx-fdc-cdx2-clone
MSX compatible I/O Port Based Floppy Disk Controller interface.



It measures 90 × 70 mm and has 2 copper layers, 1.6 mm thick.
28 parts, built around the 74LS00SC, L7805, L78L05CZ and BC547. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the knightfox75/PS2_Mouse_to_Serial_Port repository on GitHub, at the commit this page was made from: the board is schematics/In_a_Box/KiCad_Project/ps2_mouse_to_serial_port_adapter_in_a_box.kicad_pcb and its schematic schematics/ISA_Card/KiCad_Project/ps2_mouse_to_serial_port_adapter_ISA_card.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).