• Please review our updated Terms and Rules here

Commodore 64 Keyboard to Serial/RC2014

skate323k137

Experienced Member
Joined
Jul 19, 2022
Messages
261
Location
Michigan
Hello all,

I wanted to share my latest project. My project is based on the 'Appledore' adapter from P-LAB, which uses an Arduino nano to convert a C64 keyboard to Apple1/Apple II/TTL ASCII. The code also outputs to the serial pins of the Nano, which led me to wonder: Can this keyboard be used for an RC2014 system if connected to a serial port? In short, the answer is: yes.

It's a pretty simple circuit, I will perhaps at some point make a PCB specifically for this purpose. But since this PCB already has the proper input for the keyboard, as well as a RESET line, I really didn't have a need. I just had to tap into 5 pins on the keyboard adapter:
GND
TTL ASCII RST (Not the RST pin of the NANO)
5V
RX
TX

I affixed a small row of 5 female pin headers to the bottom of the PCB and wired that up. Photos of the finished wiring and mod etc can be found here:
NOTE: Reset isn't a normal pin on a serial cable! There were 2 unused pins on the Pi Serial module, so I attached one of the previously NC pins to pin 20/reset on the backplane. The result is that the 'restore' key of the C64 keyboard will pull reset low and reboot the system, due to the way the keyboard matrix is wired on the adapter PCB.

Full project info with firmware is on github: https://github.com/Alex-Kw/c64-rc2014-Keyboard

I would like to thank @bsd64 for his generosity in providing me the C64 keyboard/case. No C64 systems were harmed in the making of this project :)
 
It's been a busy couple days, having fun with this code. I've added a couple keys to clear the screen in CP/M and MBASIC, as well as a "soft capslock" mode for alpha characters (since shift lock latches and affects the number row). The ability to toggle soft capslock is probably my favorite feature so far.

A few other RC2014 time savers have been mapped to the F# keys, which are easily changed by the user, i.e. typing out CPM or MBASIC and a carriage return to save time after reboots.
 
I recently secured my Commodore keyboard, adapter, and RC2014 Pro down to a board, along with a PSU for the unit and a PSU for the outboard isolated relay module. It's not a single board computer, but it's on one board :biggrin:

I am going to add a fused 3 prong inlet with switch to the back left corner so it turns on/off like an Apple II. I also eventually want to KiCAD out a board for the back right corner, to wire things like the composite video and YM2149 sound card to, and offer fixed output jacks on the back for them without touching the backplane or expansion cards. Also a DSUB input for the digital IO card that drives the relays would be nice, I have made a POC that takes neo geo joystick type controllers.

But for now it's an incredibly satisfying BBS system; ZiModem works pretty dang well, and soldering the castellated ESP8266 module for the wifi card really was not bad at all. I also upgraded it to RomWBW and migrated over all the BASIC programs I had written while building this thing over the last 6 months. It was a lot more than I thought, thankfully CPMtools along with user provided "diskdefs" allowed me to get and restore my files between the two systems (default RC2014 CP/M and RomWBW formatting differ).20230112_121122.jpeg
 
Back
Top