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?

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!

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.

Post navigation

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

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.

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!

Michael

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?

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.

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.

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!

paulrickards

Rob

November 18, 2018 at 2:23am

I had this same idea to use a cheap TTL-RS232 module to adapt the user port to RS232 on my C64, so I was happy to see this page as a sanity check. So I put one together with stuff from my junk bin toady and it looked like everything was cool–had Novaterm running and I could see that everything on the C64/adapter side was working on an oscilloscope (I could see characters being sent when I typed them). I was working pretty methodically using the scope to make sure everything was safe. However, when I then attached the TTL converter to a USB-Serial adapter on my PC, the C64’s CIA at U2 died. Since everything initially looked good on the scope I don’t know what happened, but maybe there is a lesson in that not all of these RS232/TTL adapters are the same. Being super cheap I used a $0.99 TTL converter and an RS232-USB adapter that was maybe $3.00 (both from China on eBay). It could be that different revs of the C64 have different risks–this was a 250407 board lacking the protection diodes CR100-105 that are present in other designs. Might also be that there was some funny ground loop that killed it since I also had a Raspi hat for a Pi1541 emulator connected at the same time, and the IEC serial is driven by the same chip. Oh well, now I’m waiting for a replacement CIA…

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.

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)

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!

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!

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.

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).

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…

Blake

Dan Price

May 18, 2018 at 4:08am

I’m thinking of making one of these in a little case (actually the shroud of a parallel port connector). Since I’m hanging stuff off the user port, I was thinking of putting a reset switch into the case as well – just a push button wired across pins 1 & 3 (GND & /RESET). Would this be a bad idea without adding diodes etc. since the TTL converter is also connected to ground in the user port?

Barry Chambers

James

October 8, 2018 at 4:47pm

Hi I’m confused what the null modem adapter is for? If it just connects rx to tx and makes it the opposite why not just connect rx to tx and vice versa instead thus cutting out the need for the null modem adapter?