1
0
mirror of https://github.com/mcgurk/Arduino-USB-HID-RetroJoystickAdapter synced 2024-11-24 10:02:18 -05:00
Arduino-USB-HID-RetroJoysti.../C64_keyboard
2019-02-18 10:27:25 +02:00
..
C64_matrix.sc Update C64_matrix.sc 2019-02-12 20:35:08 +02:00
README.md Update README.md 2019-02-18 10:27:25 +02:00
Soarer_controller_for_C64.jpg Add files via upload 2019-02-13 09:30:55 +02:00

Poor man's "Keyrah" to connect C64 keyboard to USB (for BMC64 emulator)

Controller

Building

  • Solder all keyboard connector pins to Arduino Pro Micro.
  • You can solder Restore key (connector pin "I") paraller to some other pin. I soldered "I" and "G" to Arduino pin A8. (this is actually not needed, because there is one free pin left)
  • You can also connect LED of C64 to VCC/GND of Arduino. I used 220ohm resistor.

Firmware/flashing

  • Download Soarer controller firmware: https://geekhack.org/index.php?topic=50437.0
  • Install Arduino IDE
  • Connect RST to GND couple of times to get Arduino Pro Micro to programming mode (notice that com-port is different in programming mode in Windows)
  • Flash firmware
& "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude" -C"C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -p m32u4 -c avr109 -P COM5 -b 57600 -U flash:w:firmware\Soarer_Controller_v1.20_beta4_atmega32u4.hex:i

Setup

  • Download configfile. Check pin order to match your setup.
  • Compile and upload config file to Arduino Pro Micro
.\scas C64_matrix.sc C64_matrix.bin
.\scwr C64_matrix.bin

Testing

Pins I used

//   Pin    Label
//   20(A)  2(D2/PD1)
//   19(B)  3(D3/PD0)
//   18(C)  4(D4/PD4)
//   17(D)  5(D5/PC6)
//   16(E)  6(D6/PD7)
//   15(F)  7(D7/PE6)
//   14(G)  8(D8/PB4)
//   13(H)  9(D9/PB5)
//   12(0)  10(D10/PB6)
//   11(1)  16(D16/PB2)
//   10(2)  14(D14/PB3)
//   9(3)   15(D15/PB1)
//   8(4)   18(A0/PF7)
//   7(5)   19(A1/PF6)
//   6(6)   20(A2/PF5)
//   5(7)   21(A3/PF4)
//   4        N/C
//   3(8)   TX(D1/PD3)
//   2        N/C
//   1(I)   8(D8/PB4)

Issue

  • "+", "-", "£", "@" and "*" doesn't produce GFX-chars when shifted