Parent


ps2pico


Introduction

Via an OTG adapter, you can plug a USB keyboard into the ps2pico, then attach the ps2pico to the keyboard DIN connector on your IBM 5150/5160/5162/5170 motherboard.

The ps2pico is powered from the +5V pin in the keyboard DIN connector of the IBM 5150/5160/5162/5170 motherboard.

You need to build the ps2pico yourself because, at DEC24, I could not find anyone advertising as selling built units.  Basically, you contruct the circuit, then put the 'ps2pico-XT' firmware into it.

The github web page for the ps2pico is at here.


Successor

FYI.  The successor to the ps2pico is the ps2x2pico.  It has better level conversion circuitry.  See here.


Wiring to DIN plug

Diagram at here.


Firmware

Firmware needs to be installed into the ps2pico.  Which firmware depends on the target class of computer.

Firmware Target  Comment
ps2pico-XT.uf2 PC and XT  Examples:  IBM 5150 (IBM PC),  IBM 5160 (IBM XT).
ps2pico.uf2 AT  Examples:  IBM 5162, IBM 5170  (IBM AT).

To install the firmware

Using Windows on modern computer:

1.  IMPORTANT: Ensure that the ps2pico is not connected to the vintage motherboard.  See note 1 below.
2.  Obtain the applicable UF2 file from the ps2pico web page.  (ps2pico-XT.uf2 file is for PC and XT, ps2pico.uf2 file is for AT.)
3.  Hold down the BOOTSEL button on the ps2pico, not releasing it at this time.
4.  With the BOOTSEL button still held down, attach the ps2pico's USB port to a USB port on the modern computer.  A new drive will appear in Windows Exporer on the modern computer.
5.  Release the BOOTSEL button.
6.  Copy the applicable UF2 file onto that new drive. Very shortly after that, the new drive will disappear.


Problem

I built a ps2pico per the aforementioned web page.  I even used the same 2022 dated Pi Pico.  Because I was going to be attaching the ps2pico to an IBM 5160 (IBM XT) motherboard, I used the ps2pico-XT firmware (ps2pico-XT.uf2 file is for PC and XT, ps2pico.uf2 file is for AT).

I connected the ps2pico to a known-good IBM 5160 (IBM XT) motherboard, and then powered on the motherboard.  The motherboard's POST displayed a 301 error (keyboard related error).  The ps2pico (with ps2pico-XT firmware in it) emulates an XT-class keyboard, and so I knew that my ps2pico was not working as expected.

I tried the ps2pico with a known-good IBM 5150 (IBM PC) motherboard, and saw the same symptom.

At power-on of the motherboard, the ps2pico's LED turned on momentarily.  I took that as a sign that the firmware in the ps2pico was running.

To cut a long story short, I substituted a 33k ohm resistor in place of each 3.6V zener diode.  That got the ps2pico working with my IBM 5150/5160 motherboards.

And so if your recently contructed ps2pico shows the same symptom, and you are positive that you built/wired the ps2pico per the instructions, then consider trying the aforementioned substitution.


Observations

With fully functional hardware (motherboard and ps2pico):

• As soon as the IBM 5150/5160/5162/5170 is powered on, the ps2pico's LED turns on for a very short time.  The firmware in the ps2pico is what does that.

• The ps2pico emulates a keyboard, even if there is no USB keyboard plugged into the ps2pico.  So, with no USB keyboard plugged into my ps2pico, the POST in my IBM 5160 does not display a 301 error (keyboard related error), because the POST is 'seeing' an XT-class keyboard attached.

• Whenever I press a key on the USB keyboard, the ps2pico's LED turns on for a very short time.


Limitation

You cannot simply move the ps2pico between an IBM 5150/5160 and an IBM 5170 (IBM AT), and vice versa.  To move between those two types of systems, you need to put different firmware into the ps2pico:
• For IBM 5150 and IBM 5160, use firmware 'ps2pico-XT'.
• For IBM 5162 and IBM 5170, use firmware 'ps2pico'.





Note 1 If the ps2pico is accidentally connected to both the vintage and modern computers at the same time, then there will be two lots of +5V entering the ps2pico, one from the vintage computer, and the other from the modern computer.  That may damage the ps2pico.