Keath Milligan

On software development, quality, security and broken racecars

Vintage C64 computing, OpenCBM and Raspberry Pi

Get your C64 online with the help of the Raspberry Pi, OpenCBM and the ZoomFloppy.

Getting your C64 online and the OpenCBM working with Raspberry Pi is fairly straightforward, but there is a lot outdated info out there that might make it a bit confusing. This guide rolls up the basics in one place.

Setting up the Raspberry Pi

This guide assumes a Raspberry Pi 3 running the standard Raspbian image.

Unplug the ZoomFloppy USB cable if it is plugged in

Required Software

You will need the following packages:

  • libusb-dev
  • libncurses5-dev
  • tcpser

Install these using sudo apt-get install <package>.

Build OpenCBM

Unfortunately, there is no pre-built Raspbian package for OpenCBM, so you will need to build it.

Download the OpenCBM sources and extract into a work directory.

Build with:

This will build only the parts you will actually use with the Raspberry Pi.

Now install with:


Now plug in the ZoomFloppy USB cable and turn on your 1541 (or other Commodore floppy drive). Run the following command:

If all is working, you should see your drive detected. For example:

See for more info.

Getting Online

Using tcpser, you can connect your C64 to a variety of BBSes still up and running on the internet and accessible via telnet.

Required Hardware

You will need to build or buy a Commodore user-port to USB interface. There are several options for this. One simple option is the “Strike-Link” cable using the CH430G device. Another simple (but slow) option is the Sparkfun RS-232 level shifter in conjunction with an RS-232 to USB adapter.

Either way you go, you will need a user port edge connector. You can get these on EBay. The wiring for the Sparkfun level shifter is pretty simple:

  • Connect user port pin 2 to VCC
  • Connect user port pins A and N to GND
  • Connect user port pins B and C to TX
  • Connect user port pin M to RX

Required Software

You will need a terminal program on the C64. Striketerm (which is a modified version of Novaterm) works well and supports Commodore color graphics. You can download it here.

Depending on what cable you have, you may need to tweak tcpser’s settings. For the Sparkfun cable above, the following settings work well for me:

In the terminal, you can “dial” an internet-connected BBS by entering its address:port in place of the phone number. Striketerm’s phonebook supports telnet BBSes natively.



  1. I highly frown on the idea of connecting VCC to pin 2, if and when any unit of this type is already USB powered. This could cause damage to the C64.

    You can now use CCGMS 2017 V5 to call BBS Systems with this setup as well.

    There are also now a Strikelink WiFi unit, which uses and NodeMCU ESP8266 to generate speeds up to 9600 Baud on the C64 User Port

    • Yes, that is definitely true for a device that is USB-powered. The Sparkfun level shifter does not connect directly USB, it connects to RS-232 with a simple 3-wire interface, so it does need power from the C64.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© 2019 Keath Milligan

Theme by Anders NorenUp ↑