Introduction: VicPi - Revitalize Your VIC20 for the Modern Computing Age

Re-purpose a broken but classic Vic20 into a USB keyboard and a general purpose Linux machine!

This instructable will show you how I transformed an off the shelf Vic20 (preferably not working) into two useful, eye catching devices.

  • A generic USB keyboard, usable on any modern computer
  • A fully functional standalone Linux computer.

Step 1: Help Me Obi-wan Vic20... You're My Only Hope...

Nothing impresses friends, co-workers and your significant other more then a vintage Vic20... unless it's a vintage Vic20 combined with a Raspberry Pi and Keyrah HID translator!

The sleek design of the VIC breadbox case along with the nostalgia (not to mention glamour and prestige) of being able to continue to use a computer from 1980 for useful modern purposes is just too much fun!

This instructable will show you how I transformed an off the shelf but broken Vic20 into two separate (yet combined) useful devices.

  • A generic USB keyboard, usable on any modern computer
  • A fully functional standalone Linux computer.

Step 2: Acquire Brock, Acquire!

The hardest part of this project is finding a way to convert the original VIC20 keyboard's language into modern USB speak.
There are a few solutions out there, ranging from DIY Arduino translators, to off the shelf converter boards (Keyrah). I opted to go with the Keyrah, mostly due to having two kids under 5 and having virtually no free time. I may revisit this project someday and replace the Keyrah with an Arduino so I can remap some of the VIC's keys to modern equivalents, depending on how the Keyrah makes out.


The first real step is acquiring the components for this project, the most important being the VIC itself.

I managed to find a non-working, but aesthetically good looking VIC20 on Kijiji (Canadian buy & sell site) for about $40Canadian.

I picked up the Keyrah v2 board directly from the manufacturer in Germany.

The Raspberry Pi I bought locally and the various cables, switches etc.. I sourced on good ol' eBay.

I removed the original VIC motherboard as it won't be needed, but was careful to keep the keyboard's connector and rats nest of wires safe.

Here's a complete list of materials

- VIC20 computer
- Raspberry Pi (SD card, RTC, etc..)
- Keyrah 2 (translates the original VIC keyboard signals to USB)
- Metal LED SPST latching switch (to provide a basic mechanical on/off switch for the Pi and have a cool orange LED power icon)
- 1N4001 diodes (x2) (to go in series with the +5v USB cables to prevent the possibility of back fed power)
- 4PDT switch (to toggle between USB keyboard mode and Raspberry Pi mode)
- 2 colour 5mm LED and holder (to replace the original power LED and act as an indicator as to what position the 4PDT switch is in)
- Ethernet keystone jack and cable (to allow the Pi's Ethernet jack to extend to the outside body of the VIC's case)
- Short HDMI male to female panel cable (to allow the Pi's HDMI port to be extended to the outside of the VIC's case)
- Short USB A female panel cable (x2) (to extend two of the Pi's USB ports to the outside of the VIC's case)
- Short USB B female panel cable (to allow a USB type B cable to connect the VIC to a computer and see the VIC's keyboard as a HID device)
- Short micro USB female panel cable (to extend the Pi's micro USB power to the outside of the VIC's case)
- Three 1/4w resistors, one for each color of the 2 color LED to limit brightness and one for the power switch LED.

Step 3: Retr0brite to the Rescue!

As with most vintage electronics, the plastic case was a delightful smokers yellow instead of the original whitish.

A healthy bath in Hydrogen Peroxide and whole host of other chemical slurry ingredients restored my VIC's appearance to it's former glory.

You can read the details about the whole retr0brite process in my instructable on converting a vintage MAC Plus case here:
ApplePi howto

Step 4: Keyboard Typo's

The VIC I purchased on Kijiji looked great (other then the yellowing mentioned in the last step, which I was able to fix), however it did have several non-working keys.

Since the whole purpose of this project is to reuse the original keyboard, this was not a good thing.

I took the keyboard apart and gently cleaned each of the copper contact pads on the circuit board, then cleaned each contact on the underside of the suction cup key contacts.

Apparently nearly 3 decades of grunge buildup was to blame because this fixed the non-working key issues.

Step 5: Jockeying for Position

Before drilling or gluing any components in place, I laid out everything inside the VIC's case and made sure the cables would reach and how I needed to route them so everything would fit, then double checked that the top keyboard section would sit back down properly with all the new components inside.

You may ask why I'm not placing the Keyrah against the right side of the VIC's case and using the exciting metal plate.

The Keyrah 2 has two joystick connectors, the VIC only has one existing joystick port hole on it's metal right side plate.
The commodore 64 has space to accommodate the two connectors as is, but I have a personal attachment to the VIC, as it's the first computer I started learning to program on. So relocation it is. :)

Step 6: Heavy Metal

It's the little things...

I managed to keep the original right side metal plate and reused it for the HDMI, Ethernet and the Pi's power button.

For the back side of the VIC I had to fabricate a metal plate to fasten the various cables to and also to cover the gaping cartridge and datasette slots left by removing the original motherboard.

I used a piece of scrap aluminum, cut to fit the VIC's case and drilled out/filed down openings for the various switches and ports.

All of the USB port cables I purchased for this project are "panel" type, meaning they have one end that's meant to be attached with two screws to a flat surface. No need to glue ends in place.

I wish I had knows about panel mounts for some of my previous projects! A real time saver and look nice.

After drilling the various screw mount and switch holes, I painted it black using a rubberized spray paint I've used in other projects.

Step 7: Connections and Wire-dealies - the Actual Details

The wiring of the VicPi was fairly straight forward.

I used two female USB type A panel cables that ran straight from the Pi's USB ports to the rear of the VIC (for any additional USB device you might want to connect to the Pi).

I ran another female USB type B panel cable to the rear metal plate to allow for a connection to a computer so the VicPi can be used as a straight USB HID keyboard. No external power supply required for USB keyboard mode. The +5v is provided by the computer you've plugged into via the USB bus.

I opted to use the type B female style instead of a third female type A differentiate it from the other two USB port at go directly to the Pi.
Plus, everyone has a drawer full of USB printer cables somewhere. Easy and cheap way to connect the VicPi as a keyboard.

Due to the higher amperage requirements the Pi itself is powered by a micro USB power supply that can be plugged into the rear female micro USB port that is wired in series into the SPST power switch on the right side of the VIC.

A two position, 4 pole toggle switch on the rear selects between Pi mode and USB keyboard mode.
Depending on which mode the toggle switch is flipped to, either a red or green LED is illuminated on the top of the VIC as a mode indicator.

The 4PDT switch is wired as such:
See the diagram for rough details.

The Keyrah's USB input cable is connected to the middle poles (common output) of the switch.

The female USB B port (for general HID USB keyboard use) is wired to one side of the switch's poles.
The +5v, D- and D+ lines are connected and match the poles the Keyrah is connected to (+5v goes to +5v, D- goes to D-, etc..).

All of the grounds for the Keyrah, the USB keyboard line and the Pi USB port are connected together.
No need to have the USB cable grounds switched.

The female Micro USB that powers the Pi is wired to a SPST switch located on the right side of the VIC's case and simply provides +5v power to the Pi. The Pi in turn connects through one of it's USB ports to the toggle switch, and then (if toggled) to the Keyrah, giving the Pi access to the VIC's keyboard.

Two leads come from one of the Pi's +3.3v/GND GPIO pins (along with a resistor in series) and power the optional LED inside the SPST power switch.
This is only for show, but looks pretty slick I think. :)

For an overkill factor, I included two diodes (1N4001). One on the +5v line of the Pi's USB port connection and the other on the USB type B keyboard connection to make sure there was zero chance of voltage being back fed by some freak method.

The 4th pole on the switch is used for selecting the colour of the top side LED.
The LED I used has 3 leads, one for +Vcc, and the other two for GND.

Voltage is constantly applied to the middle +Vcc lead and the switch changes which ground lead is connected, thus changing the LED from red to green depending on toggle position.

I placed a resistor for the mode indicator LED onto each of two switched leads since I wanted a similar brightness value for the bulb in both red and green modes. Different colour LED's have different current draws, thus needing different resistor values for each colour to get a similar brightness. In this case, 75KΩ for green and 2KΩ for red.

The Ethernet and HDMI ports on the right side go directly into the Pi's HDMI and Ethernet port and just extend the on-board ports to the side of the VIC's case.

Step 8: Final Retro Fun!

That's it, screw the VIC's case back together and prepare to wow the world with your ultimate vintage VicPi powers!

I can almost hear my wife's eyes rolling... :)


About This Instructable




More by Jagged_path:VicPi - Revitalize your VIC20 for the modern computing agePLANToys Parking Garage BRIO ConversionBRIO Bridge Underpass Modification
Add instructable to: