DIY RS-232 Interface for Commodore C64 for under $15

If you have a Commodore 64, chances are you’ll eventually need to connect a modem or other serial device to it. You’ll find that’s not quite that easy since the C64 doesn’t have a standard RS-232 serial port. What it does have is called the “user port” and it can do serial over this port but it needs to be changed from TTL levels (0 to +5v) to RS-232 levels (-15v to +15v).

If you’ve ever attempted to purchase a VIC-1011a terminal type, SwiftLink or Turbo232 from eBay you’ll quickly find out that the price gets out of hand. Expect to pay upwards of $100 or more for these adapters.

Luckily, there’s an inexpensive way to get a RS-232 port on your C64 and it’ll cost you less than $15. Ready?

You’ll need these parts for the project.

Connect the RS232-TTL module directly to the C64 user port edge connector using the table below.

RS232-TTL Module C64 User Port
GND A & N
TXD M
RXD B & C
VCC 2

Update! Alwyz from 1200baud suggested that connecting VCC isn’t necessary and potentially dangerous. I’ve had zero problems with mine as listed here. I’m providing this warning so you can make your own decision!

C64 RS-232 Adapter

Observe which side of the user port connector is the top (it’s the one with numbers– letters are on the bottom). It’s helpful to write on it with marker. For wire I used female jumper wire that I cut one end off. For GND and RXD you’ll need to jumper two of the pins together on the user port connector. I used a small bit of CAT5 solid core wire.

Once you’ve got it connected, add the null modem adapter and connect your modem. You may need to also use a gender changer and/or a 9 pin to 25 pin adapter depending on your modem.

Fire up CCGMS, Novaterm or Striketerm, set the baud rate to 2400, set the port to the user port and give it a few “AT” commands. You should see “OK” being returned. If it doesn’t, make sure you have a null modem adapter (test it on another machine to confirm) and double check your connections.

As with any tutorial you find online, be responsible and double check my work and your work before proceeding.

20 thoughts on “DIY RS-232 Interface for Commodore C64 for under $15

  1. Permalink  ⋅ Reply

    dasistdaniel

    March 12, 2014 at 4:48pm

    I don’t have a C64 now to test it myself but there is a serial bluetooth module i use on an Arduino. It’s called HC-06 (Datasheet) and maybee you could use it to get a wireless Bluetooth Connection to the C64.

    • Permalink  ⋅ Reply

      paulrickards

      March 16, 2014 at 1:48pm

      @dasistdaniel Very interesting, that would be a great project to try. I think it would be a great project to create a cartridge that accepted a Lantronix XPort (Ethernet) or Matchport (WiFi) for a C64. Cheers!

  2. Permalink  ⋅ Reply

    Michael

    April 25, 2014 at 9:11pm

    I tried it out, now both of my C64 is dead because of this.. I did exactly like you wrote it.

    • Permalink  ⋅ Reply

      paulrickards

      April 29, 2014 at 10:59pm

      Hi Michael, Sorry to hear that. A couple of folks on Twitter were able to successfully build the interface. I’m not sure how it could “kill” a C64 unless the RFRobot adapter is faulty (even that is a stretch). Have you had luck in troubleshooting them?

    • Permalink  ⋅ Reply

      Nick

      December 17, 2016 at 8:53am

      I did the same thing. It’s easy to put the user port connector upside down. All you need to do is open up your C64 and replace the fuse. Replace with a 1 1/2A, 1/4″x 1 1/4″ fuse. Hardware stores sell these for only a few bucks.

  3. Permalink  ⋅ Reply

    Nick

    June 28, 2014 at 2:15pm

    Hey this is Alwyz from 1200baud . I just wanted to point out the VCC to pin 2 is unnecessary and a bad idea. Added voltage that doesn’t need to be present shouldn’t be there. 5v is already running on the TxD line as it is. Damage could occur as a result of VCC being connected.

    • Permalink  ⋅ Reply

      paulrickards

      June 28, 2014 at 3:42pm

      Hello! I’m not sure I understand 100% as TxD would be a signal line and not a constant source of power? I’ve made a couple of these and tested them as have a couple of folks on Twitter with no ill effects. In any case, more information the better! Thanks for the info!

      • Permalink  ⋅ Reply

        garion

        July 26, 2014 at 10:03pm

        I tried it without the VCC, and I was able to receive data on the c64, but not send it. Once I hooked up the VCC, I was able to send. So in my case, VCC was needed.

        • Permalink  ⋅ Reply

          paulrickards

          July 26, 2014 at 11:12pm

          Hi Garion, Thanks for the report! Glad it’s working for you.

  4. Permalink  ⋅ Reply

    Todd

    January 11, 2016 at 10:28pm

    Hi there, thanks for this article. Worked like a champ for me. Vcc is required, that’s what powers the converter chip (MAX3232 in my case). Otherwise, the chip is only powered intermittently when data is transmitted. I had similar results to Garion above where one direction worked but the other didn’t. The one direction that worked had random data corruption. All of this was cured by connecting the Vcc line thus properly powering the RS232 converter chip.

  5. Permalink  ⋅ Reply

    MMS

    December 25, 2016 at 10:58am

    Hi,
    I started to work on a similar project 2 years ago with a friend on Commodore plus/4, and seems after the max232 IC based self made prototypes we arrived to the same” ready from the shelves” solution.
    I have a comment, though i can be wrong, as the plus/4 has different user port layout, but for an other project I tried to make a pin conversion table.
    I think, that maybe the TXD (transmit) line of the converter module linkage to the M pin could be connected to the B that is expecting an input to set CIA2 flag. So i think the input and output lines are swapped. Sorry if I was wrong. (Even this cannot kill the machine as described. But the user port TOP should be clearly marked)

  6. Permalink  ⋅ Reply

    Eric

    January 8, 2017 at 4:12am

    Wulfden P3 adapter worked perfectly, no issues with VCC, (you need to power the adapter!). Look at the photo, mark the top of the connector! Had a ton of fun today on telnet bbs with my C64! Thanks much!

  7. Permalink  ⋅ Reply

    Thilo

    August 9, 2017 at 3:58am

    Paul,
    thank you for this post!
    This will be worth a try for me.

    One question for clarification: Did you bridge pins B and C?
    That’s not very clear from the picture.

    Thanks
    Thilo

    • Permalink  ⋅ Reply

      paulrickards

      August 9, 2017 at 8:50pm

      Yes, pins B and C are bridged on the C64 user port. Do make sure that you label the top of your user port plug with “TOP” to prevent from accidentally plugging it in upside-down! There’s 9VAC present on some of the other pins. Good luck!

      • Permalink  ⋅ Reply

        Thilo

        August 24, 2017 at 10:46am

        Thanks for the input, Paul!
        Yes, that’s pretty important. For the cassette port, I tend to write the functions on top. Shows me the top, of course, and also where to connect my clips to.
        I might try and glue in a proper key for the user port connector.

  8. Permalink  ⋅ Reply

    SpeedStar

    September 6, 2017 at 5:05pm

    I built this today, and managed NOT to fry my C64 (thank you all for the warning, the connector is marked ‘TOP’)

    However, I cannot seem to get anything out of it. if I type ‘AT’ in CCGMS i get nothing whatsoever. I DO have a nice light on my adapter, but thats it.

    I am totally stumped, any help would be great. Im certain all my connections are correct.

    • Permalink  ⋅ Reply

      paulrickards

      September 6, 2017 at 5:28pm

      You can try plugging in a jumper between pins 2 and 3 of the DB-9 connector on the RS-232 side. This is a quick “loopback” that will echo characters back to your screen as you type them on the C64 terminal.

      If that works, you may have to use a null modem connector at the RS-232 side (it swaps RX/TX pins).

      Good luck!

      • Permalink  ⋅ Reply

        Speedstar

        September 7, 2017 at 3:40pm

        That worked, thank you!

        I am trying to connect the c64 to my raspberry pi and use tcpser as a modem. I had one of those pretty useless usb to serial cables plugged in, and i think thats what the issue is. I can connect another ttl module to the pi but ill have to wait for delivery from ebay…

        I am really pleased that i can prove my construction skills were at least passable.

        Thank you for your help. Now my c64 has an rs232 port maybe ill scour ebay for a US Robotics…

        🙂

Leave a Reply to Nick Cancel reply

Your email will not be published. Name and Email fields are required.