Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
PS2
 
 
USB
 
 
 
 
 
 
 
 
 
 
 
 
 
 

C64 PS2/USB Keyboard

This project is designed to allow a PS2/USB keyboard to be used with a Commodore 64 in place of the original Commodore keyboard.

Dependencies

  • PS2KeyAdvanced Arduino library for use with PS2 keyboard. Install through the IDE library manager

  • A slightly modified USBHOST Arduino library is included for use with USB keyboard. This will need to be placed in the Arduino library directory.

  • The SEEED will need its board driver installed into the Arduino IDE. See manufacturers instructions.

Hardware

  • Arduino Uno, Nano, or SEEED XIAO. SEEED required for USB keyboard

  • MT8808, MT8812 or MT8816 Analog Switch Array

  • 20 pin female header or male header with cable (PATA cable will work)

  • Arduino shield PCB.

    • Any universal PCB that will line up correctly
  • PS2 keyboard

    • matching socket or cut/strip and directly wire
  • USB keyboard

    • Requires SEEED and in most cases, USB Type C to USB A or Micro Type B cable/adapter
    • Keyboards that connect through internal USB hubs are not supported.This is a limitation of the USBHost library
    • Restore (NMI) key requires a NPN transistor (2n3904 suggested) and resistor (10K)

DUE - DEPRECIATED

  • **DUE is included for archive only and will not be updated. The SEEED XIAO is recommended for USB **

Documents

  • MT88XX.xml

    • Basic wiring charts. Separate tabs for MT8808 and MT8812/MT8816. Wiring charts are also on the schematics
  • MT8808.pdf and MT8812-16.pdf MT8808 is separate due to a different IC pinout to MT8812-16

    • PDF versions for the wiring charts
  • KEYBIN.xml

    • MT88XX AY/AX. These are the hard wired Commodore keyboard header position values used in keyboard mapping.
    • The position values are placed on the keymap where the PS2/USB keyboard value matches the Commodore key desired.
    • The AX2-1-0 AY2-1-0 and logic hole hole columns are for reference and not needed to make keymaps.
  • DEFAULTKEY

    • Included key map document
  • Schematic_MT8812-16.pdf and Schematic_MT8808.PDF.These are located in the PS2/doc and USB/doc folders. -Schematic diagrams. MT8808 is separate due to a different IC pinout to MT8812-16

Usage

  • PS2 keyboards use the PS2KeyAdvanced library. -Use Manage Library to search for and install PS2KeyAdvanced.

  • USB Keyboards use the included modified USBHOST.

  • Using the Arduino IDE upload the sketch: C64_keyboard.ino into your Arduino.

  • SYSTEM OPTIONS ARE LOCATED IN THE C64KEYBOARD.H HEADER FILE. THE MT8808 DEFINITION IS VERY IMPORTANT. SET TO TRUE IF USING A MT8808 OR FLASE IF USING MT8812-16.

!!!POWER REQUIREMENTS!!!!

  • The Arduino UNO, Nano, and SEEED can be powered from the C64 keyboard header Pin 4

  • The Arduino DUE CANNOT BE POWERED FROM PIN 4!! Use the + side of C10 (+10V) connected to the DUE barrel power connector instead.

TODO

  • Create schematic diagrams for SEEED build. Wiring diagrams are included with 0.920

  • Create spreadsheet/program to automatically create key maps

  • Publish pre-compiled binary files

Version 0.920

  • Add SEEED XIAO board for USB keyboards

  • Document DUE is for archive only

Version 0.911

  • USB IDE library requirement removed

Version 0.91

  • USB module published

Version 0.9

  • Code rewrite using PS2KeyAdvanced library

  • Several bugs have been fixed

  • Speed and reliability have been greatly improved

  • Up to 2 key maps can be stored and hot swapped with assigned keys (Default F9-F10)

About

Allow a PS2/USB keyboard to be used with a Commodore 64 in place of the original Commodore keyboard.

Resources

License

Releases

No releases published

Packages

No packages published