MeC64 is a mechanical replacement keyboard for the Commodore 64 (bread bin model).
- Compatible with the original Commodore 64 motherboard
- Diodes on all switches i.e. no ghosting. (The C64 does not seem to benefit)
- Light and sturdy mounting plate made of aluminum.
- MX Lock switch for caps lock.
- Can be easily used as a USB keyboard by adding a controller
- When in USB configuration, it supports two digital joysticks
- Can control the C64 power LED.
- All the flexibility of a programmable controller (e.g. remapping, layers)
- Use your great looking C64 double shot keycaps on a Cherry MX switch of your choice
In the beginning of 2012 a nostalgia for the look of the old bread bin Commodore 64 hit me. I wanted to have a computer that is built into the keyboard again, the Amiga 1200 being the latest one. So I bought a broken C64 with the intent of putting a Raspberry PI in it. The bread bin was as cool looking as I remembered it. I really like the brown double shot keycaps with all the strange symbols. I googled and found the Keyrah and both a avr and a pic based DIY project. But I thought it might be fun the make my own keyboard controller and got the idea of making a Arduino shield. I soldered the shield, made a basic firmware and happily started to use the keyboard with my pc.
The experience was horrible, I needed to really hammer the keys to get them to register, the project started to feel like a failure. The C64 looked great as a nostalgia thing but I could not use the keyboard . Then for some reason I decided that I was not going to give up, I was going to get my retro keyboard not matter what.
I found a cheap mechanical keyboard with Cherry MX red switches and thought that it would be a perfect fit. I like soft switches and they are linear like the switches in the C64. The red switches fitted my memories of the C64 keyboard better the the real thing . So I made a list of what was needed.
I started with the keycap converters as that seemed to be the hardest thing to make. I made a prototype by gluing a the top of the stem of the C64 keyboard together with a mount of a Cherry type keycap. I tried to make a silicon form and mold copies of the prototype in plastic but it was hard to get an even quality and I only managed to make 1 to 3 that was good enough each day.
When I got enough converters to try them I found out that my prototype was not completely straight so it did not look very nice.
When I was looking for ways to make a mounting plate I found out about Shapeways and got the idea of 3D printing them so I made a 3D model and it turned out pretty good.
The mounting plate is designed to be the only part needed to hold the keyboard in the case, this is achieved by having bends along the sides with holes for the screws. My first thought was to mill the mounting plate but that just show how much I know about milling and after some tips on Elektronikforumet I understood that water or laser cutting was the way to go if you only want to make a small number. It took a lot of asking around to find a laser cutting company that could also do bending and that was willing to take this job without charging a ridiculous sum for doing it but in the end I found one.
Then it was time for the PCB. I thought this would be the easy part but I had only done small PCBs in a paint program before and now I needed a real design tool. It took some time to become friends with KiCad but I managed to make what I wanted and ordered the PCBs. After a month or so I got the PCBs and there was no major design flaws .
I needed custom stabilizers and I found a video on Youtube on how to make them and bought the tool and piano wire.
The assembling was the most fun part as I got to solder which I really like and see the thing come together. When it was finished the C64 looked exactly as it did before I began (which was the intent) and it felt a little stupid to say “look, I built this!”
I’m not finished with the firmware but I got the basic functionality working and the keyboard feels great now! I have bought another working C64 with a much better keyboard that registers keys when you press them but I still really don’t like the feel of it.
The reason I did this project was mostly to learn new things and to prove to myself that I could realise an idea and not stop at thinking “I could do this”.
The great documentation of the C64 keyboard at Waitingforfriday.com was a big help during the project. I also want to give credit to Elektronikforumet.com, AVR Freaks and Deskthority for providing valuable information. The firmware uses LUFA which is a great framework.
I'm making kits and keyboards for this project. If you are interested in getting a keyboard like this for yourself look in the Group buy thread
Keycap adapters on ShapeWays (previously called converters)
This is the firmware files for the project
Use it at your own risk, under the MIT license (like the rest of LUFA).
Download a copy of LUFA (I used release 120730) and extract this files in the LUFA-120730/Demos/Device/ClassDriver/Keyboard directory.
All project files on GitHub