Micro Project: PS2Encoder

PS2Encoder PCB
PS2Encoder PCB

A year or so ago, a retro systems enthusiast requested a hardware interface that would allow PS/2 keyboards to be utilized on older machines expecting RS232 or ASCII Parallel output.  I quickly mashed some existing PS/2 libraries with a keyscan to ASCII function and delivered the first version of PS2Encoder.

Even though there were issues with the PS/2 libraries, I quickly moved onto other project work.  Recently, I found myself thinking about the design and where I left off.  Since the original design and development were completed, I rewrote the PS/2 library to be more compact and address the issues exhibited by this project.  Thus, I decided to set about updating this project to include the new libraries and also create a small universal PCB design for the project.

Due to a common heritage of the PS/2 library, migrating to the new code did not take long.  As expected, operation of the new routines addressed the longstanding issues.  I also took some time to add a bit more functionality to the design.

Features include:

  • Unit outputs ASCII via 8-bit parallel port and RS232
  • Parallel output support configurable active high or active low strobe
  • Output supports variable intercharacter delay (0-2.5s in 10mS increments)
  • RS232 BPS rate can be set from 110-57600 bps
  • BS sends either BS or DEL
  • CR sends CR or CRLF
  • Crystal is optional
  • CAPSLock operation works, and LEDs are supported
  • Configuration can be performed from the keyboard.  When CONFIG jumper is installed, Ctrl/Alt/BS places the unit into configuration mode, where keypresses set various options.
  • Configuration mode also allows starting “debug”, where actual keyscan values are sent to the RS232 and parallel ports.

Of course, PS/2 is a dying interface, and thus utility is limited.  Thus, if I can find a low-cost uC offering that supports USB OTG (On the Go), I will update the design again with a USB KB option.

Finally, I created a universal PCB layout that includes the following features:

  • Supports 24 pin .6″ IC socket connection as well as 2×12 header connection.
  • Crystal footprint included on PCB
  • PS/2 connector footprint included on PCB
  • Through hole design makes DIY construction easy.