Skip to the content
2 layers90 × 70 mmPs2 mouse to serial port adapter in a box, the printed circuit board in 3D

Ps2 mouse to serial port adapter in a box

knightfox75/PS2_Mouse_to_Serial_Port1

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

Size
90 × 70 mm
Copper layers
2
Thickness
1.6 mm
Parts
28
Nets
47
Pads
102
Tracks, vias
112, 0
Pours
1
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
26 Jul 2023
Updated
6 Sep 2023

Overview

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.

Main components

4

README

README.md

PS2_Mouse_to_Serial_Port

Un convertidor para conectar un ratón PS/2 a un puerto serie (RS-232).

  1. Introducción

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.

  1. Como funciona

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.

  1. Hardware usado en el prototipo

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.

  1. Que indican los LED’s de estado

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.

  1. Capacidades extendidas

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.

  1. Precauciones

  • Conectar y desconectar siempre el ratón al puerto PS/2 con el adaptador desconectado. La conexión o desconexión del ratón con el adaptador conectado a la alimentación podría causar daños al ratón y al propio adaptador. Esto también se aplica a la conexión del adaptador con el puerto serie del ordenador, siendo muy recomendable que todas las conexiones se realicen con los equipos apagados.
  • Cualquier dispositivo conectado al puerto RS-232 del ordenador puede causar daños a dicho puerto o al dispositivo si este tiene algún error de montaje, por lo que se recomienda que repaséis 3 veces las conexiones antes de conectarlo a vuestro ordenador.
  • Aplicable a la versión ISA, en ningún caso actualicéis el firmware del modulo Arduino con la tarjeta ISA insertada en la placa base. Retirar la tarjeta ISA o el módulo Arduino antes de conectarlo al puerto USB para su actualización. De no hacerlo, se corre el riesgo de dañar el módulo Arduino la propia placa base del ordenador.

Parts

28
QtyValueFootprintReferences
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
3100nFCapacitor_THT:C_Disc_D6.0mm_W2.5mm_P5.00mmC3, C4, C6
210KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2, R3
2330RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR4, R5
1100uFCapacitor_THT:CP_Radial_D8.0mm_P3.80mmC1
11KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1
11N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD1
11N5817Diode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD2
1220uFCapacitor_THT:CP_Radial_D8.0mm_P3.80mmC5
13mm REDLED_THT:LED_D3.0mmD4
13mm YELLOWLED_THT:LED_D3.0mmD3
1470uFCapacitor_THT:CP_Radial_D8.0mm_P3.80mmC2
174LS00Package_DIP:DIP-14_W7.62mm_SocketU1
1Arduino NANO v3Module:Arduino_NanoA1
1BC547Package_TO_SOT_THT:TO-92_HandSolderQ1
1DC INTerminalBlock_TE-Connectivity:TerminalBlock_TE_282834-2_1x02_P2.54mm_HorizontalJ1
1L7805Package_TO_SOT_THT:TO-220-3_VerticalU3
1L78L05Package_TO_SOT_THT:TO-92_HandSolderU2
1PS/2 & USBConnector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_VerticalJ2
1Serial PortTerminalBlock_TE-Connectivity:TerminalBlock_TE_282834-3_1x03_P2.54mm_HorizontalJ3
1Switch ON/OFFTerminalBlock_TE-Connectivity:TerminalBlock_TE_282834-2_1x02_P2.54mm_HorizontalSW1

More from knightfox75/PS2_Mouse_to_Serial_Port

2

Similar boards

  • 2 layers160 × 135.3 mmMotor Control, the printed circuit board in 3D

    Motor Control

    mttb-aarhustech/Motorcontrol_PCB

    Motorcontrol PCB AARHUS TECH

    123 parts
  • 2 layers130 × 67.5 mmAmigaSID, the printed circuit board in 3D

    AmigaSID

    call286/AmigaSID

    Board Render Front | Board Render Back :-------------------------:|:-------------------------: |

    49 parts14
  • 2 layers217.2 × 113 mmJunior interface, the printed circuit board in 3D

    Junior interface

    laurent-fr/junior_computer_replica

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

    120 parts14
  • 2 layers624.6 × 303.9 mmSPU2, the printed circuit board in 3D

    SPU2

    rraider/Seminarkurs2021

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

    736 parts7MIT
  • 2 layers101.6 × 65.3 mmMicrosol CDX2, the printed circuit board in 3D

    Microsol CDX2

    msx-solis/msx-fdc-cdx2-clone

    MSX compatible I/O Port Based Floppy Disk Controller interface.

    46 parts5GPL-3.0
  • 2 layers299.7 × 320 mmEinsteinTC01, the printed circuit board in 3D

    EinsteinTC01

    Board-Folk/Einstein-TC-01

    Tatung Einstein TC-01

    350 parts4
  • 2 layers206.2 × 138.1 mmOric, the printed circuit board in 3D

    Oric

    Board-Folk/Oric-Remix

    Oric Remix

    133 parts4
  • 2 layers116.8 × 99.7 mm6502-computer, the printed circuit board in 3D

    6502-computer

    mike42/6502-computer

    A 65C02-based homebrew computer

    39 parts70

Questions

How big is the Ps2 mouse to serial port adapter in a box PCB?

It measures 90 × 70 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Ps2 mouse to serial port adapter in a box use?

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.

Where can I download the Ps2 mouse to serial port adapter in a box KiCad files?

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.

Can I use the Ps2 mouse to serial port adapter in a box design in my own project?

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).