Turn a Commodore 64 Into an IOS Bluetooth Keyboard

6,051

40

21

This instructable describes how to turn a Commodore 64 computer into a bluetooth keyboard. It involves programming a micro controller with the Arduino IDE and constructing a circuit board.

Supplies you'll need (some are optional):

  • Commodore 64 with keyboard (remove mother board, it is not used)
  • (2) 74HC595 shift registers
  • (8) 1N4148 diodes
  • (3) 220 ohm resistors
  • (1) RGB Led (common cathode)
  • (1) Adafruit Feather M0 Bluefruit (other adafruit bluefruit nRF51 boards may work as well without modification to the instructions presented here)
  • (1) 18x24 hole protoboard (larger sizes will work)
  • (1) large breadboard
  • (~50) male-male breadboard jumper cables
  • (4) female-female jumper cables
  • (1) 3.7V lipoly battery back with JST connector (I used 2000mAh)
  • (1) slide switch (doesn't necessarily have to be a slide switch, any switch could work)
  • solder
  • solder flux
  • 30 guage wire
  • (3-4) 2mm x 8mm screws
  • (1) short male micro USB to female USB-A cable
  • (1) USB-A male-male cable (3-6ft long, for charging)
  • (1) 20 pin male pin header
  • (1) 4 pin male pin header
  • (1) JST PH 2.0 Plug Connector 100mm 2pin male connector wire (optional)
  • (1) JST PH 2.0 Plug connector 100mm 2pin female connector wire (optional)

Tools you'll need:

  • soldering iron with fine tip
  • helping hands or device to hold protoboard steady
  • wire cutters
  • philips screwdriver
  • tweezers
  • multimeter
  • 30 guage wire strippers
  • hot glue gun (optional)
  • 3D printer (optional)
  • computer with Arduino IDE installed

Step 1: Prepare Adafruit Feather M0 Bluefruit LE

First solder the header pins to the board if it didn't come pre assembled.

Here is a good reference for the Adafruit Feather M0 Bluefruit LE:

https://learn.adafruit.com/adafruit-feather-m0-blu...

Update the board to the latest firmware. My arduino sketch will not work unless the board is updated to at least 0.7.6. If you are running older firmware the sketch won't work correctly or there will be performance issues. I confirmed my sketch runs flawlessly with versions 0.7.7 and 0.8.0. You can update the boards firmware over the air with your phone using the app Bluefruit LE Connect for (iOS or Android). I used the iOS app and you are given the option to upgrade or downgrade to many versions. Choose 0.7.7 or 0.8.0. I cannot guarantee that everything will work correctly for newer versions.

Next install the boards and libraries in the Arduino IDE needed for the sketch. Instructions can be found here:

https://learn.adafruit.com/adafruit-feather-m0-blu...

Make sure you install both the Adafruit SAMD boards and the Arduino SAMD boards using the board manager.

Also, install the Adafruit BluefruitLE nRF51 v1.9.5 using the library manager

Confirm that your board is working correctly by uploading some of the example sketches that you should see under example->Adafruit Bluefruit nRF51 if you installed the library correctly.

Finally, after confirming that the board is working properly, upload my sketch using the files provided in this step.

Step 2: Clean and Prepare Commodore 64 (as Needed)

Remove the Commodore 64 motherboard if you have one in there, it won't be used.

Clean the Commodore 64 keyboard contacts. Before cleaning mine the space bar and the F1 keys didn't always register when pressed. After the below process everything worked great.

  • first desolder the wires connected to the shift lock
  • remove the 23 tiny screws holding the bottom of the keyboard in place
  • flip over the board
  • then clean the contacts
    • I used QD Contact Cleaner
    • I sprayed some into a small cup and used q-tips to gently clean every contact until there was no more or very little black getting on to the q-tips

I tried the same cleaning process with rubbing alcohol at first and it wasn't nearly as effective as the contact cleaner.

All the keys worked great after the cleaning.

Follow the reverse steps to reassemble the keyboard. Don't forget to re-solder the wires to the shift lock key.

Step 3: Construct the Circuit on a Breadboard

Now wire the circuit on the breadboard as shown in the Fritzing diagram. I used two breadboards in the picture, one large white breadboard and one small blue breadboard, just to spread it out a little. There is room to fit everything on one large white breadboard.

The picture of the ribbon coming from the Commodore 64 keyboard shows how to identify the pin numbers. Pin 1 is on the side where there is a missing hole (which would be pin 2).

It matters which direction the diodes in the circuit are placed. Make sure the dark bands on the diode are on the side indicated in the picture. The diodes I used are 1N4148.

All of the resistors are 220 ohm.

The RGB Led needs to be of the common cathode variety or it will not work correctly as wired in this circuit.

If everything has gone right, you should be able to connect the Commodore 64 to a device via bluetooth and have it work correctly as a bluetooth keyboard!

(note: comments in my arduino sketch also indicate what pins get connected to what)

(also note: pin 1 on the 74HC595 chip is where the dot is on the chip)

Step 4: Make a More Permanent Circuit.

Now that you've confirmed everything works properly its time to wire up a more permanent circuit. I did it using a technique taught in this instructable:

https://www.instructables.com/id/How-to-Prototype-...

Shown in the photos is how I laid out my components.

I used a 20 pin male pin header and removed the second pin with pliers to make a place to attach the ribbon from the Commodore 64 keyboard. I also used a 4 pin male pin header to make a connector for the RGB LED.

I took a picture of that and then flipped it over and took a picture of it upside down.

I labeled all the pins on the diagram and drew in all the connections that needed to be made.

Be very careful and double check everything.

Once you're sure everything is correct start soldering the connections using 30 gauge wire using the picture as a guide. I used a multimeter to make sure that there was an electrical connection between each thing I soldered and that there wasn’t between nearby pins that shouldn’t be connected.

I used female-female jumper cables and some crazy glue to make a cable for the RGB LED.

(note: on the horizontal 74HC595 I drew the connection for pins 9-16 underneath the numbers when the pins were really in the holes above the numbers)

Step 5: Add a Switch, USB Connector, and Mount to Finish It Off.

For the finishing stage:

  • First I chose a location to affix the board and battery pack and hot glued them in place
    • for the board I chose one of the screws that was for the motherboard and hot glued a screw there
    • I hot glued two screws in other corners as well to hold it tightly in place and raise the circuit off the bottom a little
  • I also hot glued the RGB LED in place of the old LED. You may not need to use hot glue, but my C64 case was damaged when I acquired it.
  • then I extended the battery cable with a male and female 100mm JST connector and soldered a slider switch to be able to turn the bluetooth keyboard on and off
  • next I acquired a short male micro-usb cable to female usb_a cable to use for charging
  • I 3D printed a mount for the switch and USB cable (the stl file is attached)
    • I needed to file the holes slightly to fit the switch and the USB cable
  • I crazy glued the USB cable in place, the switch was good with friction alone
  • Finally I hot glued the mounting plate in place

Step 6: Final Notes on Functionality

The LED is set to be:

  • blue when the battery is good and it is connected to bluetooth
  • green when the battery is good and it is not connected to bluetooth
  • red when the battery needs to be charged

Note: in order to charge the battery the switch needs to be in the on position when connected to power via a USB cable.

Keyboard functionality:

I have only tested it on iOS devices and it can do everything I have thought to try. It should largely work on other systems, but I have not tested it.

The restore key is equivalent to the option key on a mac.

The Commodore key is equivalent to the command key on a mac.

The ctrl key is equivalent to the control key on a mac.

In order to use option shift commands press restore and the right shift key.

The right shift and left shift keys are different. In some cases they will not have the same results and are used to be able to type keys that are not shown on the Commodore keyboard.

right shift 7 is `

right shift = is |

right shift / is \

right shift : is {

right shift ; is }

tab is the left arrow in the top left corner of the keyboard

the clear/home button moves the cursor to the beginning of the line

right shift and clear/home moves the cursor to the end of the line

left shift clear/home highlights everything in the line behind the cursor

left shift and the cursor keys can be used to highlight text

Unmodified Function keys:

F1 = Play/Pause

F3 = Volume Up

F5 = Volume Down

F7 = Mute

Function keys when left shift key is pressed:

F1 = Media Next

F3 = Media Previous

F5 = Search

F7 = Home

Function keys when right shift is pressed:

F1 = Brightness +

F3 = Brightness -

F5 = Search

F7 = Toggle Virtual Keyboard

Arduino Contest 2019

Runner Up in the
Arduino Contest 2019

Share

    Recommendations

    • Classroom Science Contest

      Classroom Science Contest
    • Backyard Contest

      Backyard Contest
    • Frozen Treats Challenge

      Frozen Treats Challenge

    21 Discussions

    2
    None
    abomin

    Question 6 weeks ago

    Hello! Could you sale me the Commodore 64 motherboard if you don`t need it?

    2 answers
    0
    None
    JoroGabomin

    Answer 21 days ago

    Разоплагам с 2 компютъра Commodore 64 , и 1 Правец 8д

    0
    None
    EricHOlsenabomin

    Answer 6 weeks ago

    Hi, unfortunately I don’t have the motherboard, I got this as a shell without one.

    8
    None
    HelgeF

    6 weeks ago

    Very bad and amoral idea!
    There is far from an infinite supply of good looking, working C64s out there and those that are not working should be brought back to life in one way or another, or stored securely for someone to do it in the future.
    Not, be raped like this.
    The keyboard on the 64 is not even that good and not very suited for anything other than C64 stuff.
    If you want good usable vintage looking keyboards, get an IBM buckling spring keyboard in good condition and use that with a converter.
    This is just barbarism.

    5 replies
    1
    None
    HelgeFArbormakes

    Reply 6 weeks ago

    You are depriving the world and future generations of a working or potentially working C64.

    Even if you save the PCB and PSU, chances are high that it’s going to get lost or damaged mechanically or electrically when separated from the cabinet.

    Just for you having a bit of “fun” for a few days until you quickly realize how useless it is, how much space it occupies on your desk for noting really gained, because you’ll still need a normal keyboard there for real work.

    The author should take this down, not to give stupid people, with more money than sense ideas, that make them scour eBay.

    0
    None
    ArbormakesHelgeF

    Reply 6 weeks ago

    I agree with everything you have said, except the first 6 words of the last sentence.
    If the author did not do this, the commodore may have ended up in the trash, or on ebay where:
    "stupid people, with more money than sense ideas" will buy it and kill it.

    At least that is not happening, and anyway in one the replies to someones comment, THE AUTHOR SAYS HE BOUGHT IT WITHOUT THE MOTHERBOARD.

    Let this end our debate.
    0
    None
    HelgeFArbormakes

    Reply 6 weeks ago

    Even without a PCB this is still very valuable to the C64 enthusiast. You can easily find naked boards with a few defective chips. With this and the chips, you have a functional good looking machine.
    Or you could get one of the two new boards that are manufactured currently. Have a look at Lemon64.com for more on that.

    The point is not to encourage this kind of ahistorical barbarism. Of course it would be worse if it was thrown out, but that is not the point.
    These things are not made anymore. Never will be again either, at least not exactly like this. And a surprisingly large number of them have been lost. They are not yet very scarce but they could be soon, especially with inconsiderate behavior like this.

    0
    None
    ArbormakesHelgeF

    Reply 6 weeks ago

    I guess you're right.
    We should save C64s.

    0
    None
    TNT_69

    6 weeks ago

    This is really a crime! Are you out of your mind? How can you destroy a C64?

    0
    None
    theguido

    6 weeks ago

    We are moving this week and I was ready to throw my old C64's in the trash, but this may be a cool use for them.

    4 replies
    0
    None
    LaurentP33theguido

    Reply 6 weeks ago

    Can I BUY it from you so it doesn't get trashed?
    C64, real ones, can carry a lot of memories from good teenagehood time for many peoples, and working C64 are getting rare now.

    0
    None
    theguidoLaurentP33

    Reply 6 weeks ago

    Neither of them work. One was damaged by water several years ago. The other had a massive corrosion from something I couldn't figure out. I had both of them since I was about 5, along with the disk drive and a cassette deck, but those items were sold a long time ago.

    2
    None
    TheRealAnubistheguido

    Reply 6 weeks ago

    Broken is ok too! There are always parts to be scavenged!

    2
    None
    TheRealAnubis

    6 weeks ago

    Cool project!
    I do a lot of c64 repairs, so I'm always looking for parts. No matter how corroded or trashed the mobo is, I can usually use something!!

    4
    None
    COREi64

    6 weeks ago

    I have to say this is a clever project, however, it needs to be tempered with some responsibility as caretaker of this old tech. As mentioned in a previous comment, there are a finite number of these computers in the world, and it decreases every day. I think it's great when people come up with clever ways to use old tech, but it should be done such that the process can be seamlessly reversed. 3D printing can be utilized to mount connections, and pins can be used to interface with the keyboard cable so the original housing/components aren't permanently altered. The goal should always be to keep the hardware in tact so it can be easily returned to its original condition. It appears that you did this and I applaud you for that.

    1 reply
    0
    None
    EricHOlsenCOREi64

    Reply 6 weeks ago

    Thanks, and yes it could easily be restored to a regular Commodore 64 with a little alcohol and a Phillips screwdriver.

    2
    None
    KrisF23

    6 weeks ago on Introduction

    This is the coolest project ever. I almost never comment here but I had to. Learned how to program my first language on one of those a 1541 and a TV adapter. 16 glorious colors baby. Too busy at the moment, but I will definitely be hitting up e-bay at some point and looking this tutorial up. Thanks. (P.S. to Alex in NZ, IBM had the best keyboard of the time. It was tactile as the C64 is not but you are right, it was still a really reliable board).