Skip to the content
PCBKitNew board
2 layers40 × 55 mmPs2usb, the printed circuit board in 3D

Adapting USB devices to work on old computers

Size
40 × 55 mm
Copper layers
2
Thickness
1.6 mm
Parts
26
Nets
50
Pads
174
Tracks, vias
413, 49
Pours
2
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
14 Aug 2022
Updated
13 Sep 2026

Overview

Ps2usb is an open-source printed circuit board by rasteri, from the rasteri/HIDman repository on GitHub. It is a 2-layer board of 40 × 55 mm with 26 parts on 50 nets, routed with 413 tracks and 49 vias.

It is built around the MAX232N and B3173BGR-20C0001Q3U1930. Its parts include 12 capacitors, 5 connectors, 2 ICs, 1 diode and 1 switch. It belongs with the keyboards and input boards and the 8051 (CH55x, STC, AT89) boards of this library.

Main components

2

README

README.md

HIDman

USB HID to XT / AT / PS/2 / Serial converter

HIDman is an open source device to allow the use of modern USB keyboards and mice on legacy PCs.

Peripherals that support legacy PCs are becoming hard to find, especially for the very first PCs. This project aims to provide a simple cheap solution that will cover everything from the original IBM 5150 PC all the way up to modern computers that have PS/2 ports.

<img src=/images/hidmanfront.jpg width=50%/> <img src=/images/hidmanrear.jpg width=50%/>

Features

  • (should) Support the majority of standard USB keyboards and mice, including ones that use wireless dongles.
  • Also supports (some) USB Game controllers - buttons/axes are mapped to keypresses or mouse actions
  • Can emulate the following keyboards :
    • Original IBM PC, XT and clones
    • AT / PS/2
    • Amstrad PC (PC1512, PC1640, PC2xxx, PC3xxx, PC4xxx)
  • And the following mice :
    • Serial Mouse (with optional Logitech-style 3rd button)
    • PS/2 Mouse (with optional Intellipoint-style scroll wheel and up to 5 buttons)
  • Driverless configuration menu - change settings just by opening a text editor

How to get one

Purchase :

DIY :

Quickstart Guide

USB Connection

You can connect many different combinations of USB devices to HIDman.

The most obvious being to connect a keyboard to one USB port, and a mouse to the other one :

<img src=/images/usbsetup1.svg width=300/>

Or, you could perhaps connect a wireless keyboard+mouse dongle to one port, and a game controller to the other :

<img src=/images/usbsetup2.svg width=500/>

Hub support can be hit-and-miss. This is (mostly) not HIDman's fault - many modern hubs don't support low-speed USB devices properly.

Newer PCs (PS/2)

  • Connect male-to-male Mini-DIN cables from HIDman’s keyboard and mouse ports to your PC’s PS/2 ports.
  • Turn on your PC.
  • If necessary, press HIDman's ⏻ power button to select PS/2 mode (light blue).

<img src=/images/newerpcs.svg width=400/>

Older PCs (AT/XT and Serial)

  • Connect a male-to-male Mini-DIN Cable from HIDman's keyboard port into a Mini-DIN to DIN adapter.
  • Connect that adapter to your PC's keyboard port.
  • Connect a straight-through male-to-female DE-9 cable from HIDman's serial port to your PC's serial port.
  • Turn on your PC.
  • Press HIDman's ⏻ power button to select AT mode (light blue), or XT mode (orange) for early 80's IBM PCs and clones.

<img src=/images/olderpcs.svg width=500/>

Configuration

Configuration is provided through a built-in menu system. No software install is required - all interaction is through the keyboard.

Simply open a text editor on your target PC (eg notepad, edit, vi), then hold HIDman's power button for a few seconds. The menu will be typed out into your text editor.

<img src=/images/menu1.png width=394/>

"Adv.Keyboard" and "Adv.Mouse" switch the keyboard and mouse respectively into "Native Mode". This may be required to access certain functions such as scroll wheels and extra buttons on mice.

Note : Some USB devices with both keyboard and mouse interfaces (e.g. mice with configurable buttons) require both Adv.Keyboard and Adv.Mouse to be enabled otherwise they behave unpredictably.

"Intellimouse" enables scroll wheel and 5-button support for PS/2 mice.

"Debug" enables the debug menu. The most useful debugging option is "Dump HID Data". Enabling this dumps information about all USB devices connected after that point.

<img src=/images/menu2.png width=450/>

If you are having trouble getting a USB device to work, enable HID Dumping then connect the troublesome USB device. Wait for it to finish dumping, then press ESC and save the resulting data to a text file. Then send it to me for analysis.

Firmware Update

Firmware development is continuing, so if you have problems it's always worth updating to the latest version.

If you're on windows, first install WCH's ISP tool - https://www.wch.cn/downloads/WCHISPTool_Setup_exe.html If on Mac or Linux, install ch55xtool : https://github.com/MarsTechHAN/ch552tool

The next step is to put the HIDman in firmware update mode.

  1. Disconnect everything from HIDman, including all USB devices and PCs. (failure to do this may result in damage to HIDman, your PC, or both).
  2. Hold down HIDman's ⏻ power button.
  3. Use a USB A-to-A cable to connect HIDman's LOWER USB port to a USB port on your modern PC.

If HIDman doesn't appear in your computers' device list, follow the instructions in the "Debricking" section below.

After that, update instructions will depend on your operating system.

Windows

Follow the instructions in this diagram :

<img src=/images/firmware2.svg width=800/>

Linux or Mac

Pass the -f parameter to ch55xtool specify the firmware file to load. For example :

text
python3 ch55xtool.py -f hidman_axp_v1.1.bin

Debricking

If this is your first time programming HIDman, or you accidentally program a corrupted firmware, you can force it into firmware update mode another way. It can be a bit fiddly though.

<img src=/images/C5.png width=500/>

  1. Disassemble HIDman.
  2. Connect the two pads of component C5 (shown above) together using a pair of tweezers or similar.
  3. While keeping the pads connected, use a USB A-to-A cable to connect HIDman's LOWER USB port to a USB port on your modern PC.

Advanced Setups

Combined PS/2 port

HIDman actually outputs keyboard and mouse signals on BOTH PS/2 connectors. If you have a PC that can take advantage of this (typically Mini PCs or Laptops), you can keep the cabling neater by using only one cable. NOTE : You will need to enable "PS2 AUX Output" in the advanced menu.

<img src=/images/combined1.svg width=500/>

Note that there are two different types of Combined PS/2 ports, and HIDman provides for both types. Generally, laptops will need plugged into the Mouse port on HIDman, and Mini PCs want the Keyboard port. If it doesn't work with one port, try the other one.

Splitter

Another way to take advantage of the Combined PS/2 port functionality is to use a widely-available PS/2 splitter :

<img src=/images/splitter.svg width=500/>

This also allows neater cabling, as you could connect both keyboard and mouse ports to the rear, and not have to connect to the front mouse port.

Technical description

The HIDman is based around the CH559 from WCH, a remarkably flexible chip with two USB HOST ports. This makes it ideal for our purposes.

The code is forked from atc1441's excellent repository - https://github.com/atc1441/CH559sdccUSBHost

PCB and enclosure was designed in KiCad - source files are in the hardware directory.

Development is very active but it is usable in its current state.

Parts

26
QtyValueFootprintReferences
103.3uCapacitor_SMD:C_0603_1608MetricC1, C2, C3, C4, C6, C7, C8, C9, C10, C12
210pFCapacitor_SMD:C_0603_1608MetricC5, C11
21KResistor_SMD:R_Array_Convex_4x0603RN1, RN2
2DIN8ps2usb:DIN8J1, J3
112MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1150Resistor_SMD:R_Array_Convex_4x0603RN3
1500mAFuse:Fuse_1206_3216MetricF1
1B3173BGR-20C0001Q3U1930ps2usb:B3173BGR-20C0001Q3U1930D1
1CH559L-lessps2usb:QFP-12x12_14x14_Pitch0.5mmU1
1Conn_01x03_PinConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ5
1DE9Connector_Dsub:DSUB-9_Female_Horizontal_P2.77x2.84mm_EdgePinOffset7.70mm_Housed_MountingHolesOffset9.12mmJ4
1MAX232Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU2
1RATACSWITCHps2usb:TS11S1
1USB1035ps2usb:USB1035J2

Questions

How big is the Ps2usb PCB?

It measures 40 × 55 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Ps2usb use?

26 parts, built around the MAX232N and B3173BGR-20C0001Q3U1930. 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 Ps2usb KiCad files?

From the rasteri/HIDman repository on GitHub, at the commit this page was made from: the board is hardware/axp/ps2usb.kicad_pcb and its schematic hardware/axp/enclosure/frontcase/frontcase.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Ps2usb design in my own project?

Its repository states no licence, so its author keeps all rights: ask rasteri before reusing the design.

More from rasteri/HIDman

1
  • 2 layers60 × 39 mmPs2usb, the printed circuit board in 3D

    Ps2usb

    rasteri/HIDman

    Adapting USB devices to work on old computers

    19 parts432

Similar boards

  • 2 layers132.1 × 45.7 mmIPoS, the printed circuit board in 3D

    IPoS

    peterheinrich/InternetOverSpaghetti

    Transmitting IP packages over a pair of spaghetti thus demonstrating how media independent IP really is.

    42 parts342
  • 2 layers60.5 × 31.5 mmPs2-serial mouse adapter, the printed circuit board in 3D

    Ps2-serial mouse adapter

    necroware/ps2-serial-mouse-adapter

    PS/2 to serial port mouse adapter

    13 parts89GPL-3.0
  • 2 layers79.7 × 35.1 mmUSB-2-232, the printed circuit board in 3D

    USB-2-232

    LimeProgramming/USB-serial-mouse-adapter

    Convert USB mouse to Serial mouse using Pi Pico

    29 parts50MPL-2.0
  • 2 layers148.3 × 116.6 mmKiCAD RetroArduInput, the printed circuit board in 3D

    KiCAD RetroArduInput

    RetroFuturisticEngineer/RetroARDUInput

    Use USB Keyboards, Mice and Joysticks on PC/XT, PC/AT, Tandy 1000, Atari, Amiga, C64 and Apple

    48 parts25LGPL-2.1
  • 2 layers99.1 × 99.1 mm6809v2, the printed circuit board in 3D

    6809v2

    jbevren/6809v2

    Code and design repository for the 6809v2 SBC: To be released at VCFMW 13

    60 parts22
  • 2 layers100 × 45 mmTranscribe, the printed circuit board in 3D

    Transcribe

    cyberboy666/_transcribe_

    midi to rs232 bridge - for performance control of old video mixers and switchers

    28 parts20
  • 2 layers40 × 67.3 mmNMEA0183-WiFi Multiplexer, the printed circuit board in 3D

    NMEA0183-WiFi Multiplexer

    AK-Homberger/NMEA0183-WiFi-Multiplexer

    Reads NMEA0183 messages from two serial lines and forwards multiplexed messages to USB-Serial and WLAN as UDP broadcast.

    10 parts15GPL-3.0
  • 2 layers279.4 × 203.2 mmZ180GDC, the printed circuit board in 3D

    Z180GDC

    lynchaj/rhyophyre

    Single Board Computer featuring Zilog Z180 processor and NEC µPD7220 Graphics Display Controller

    249 parts12