Build your own 9600 Baud C64 WiFi Modem For $10

To start, I’d like to say a huge thanks to Eightbitswide, xxValiumxx, and Paul Rickards for their extremely helpful contributions to this cause!

The esp8266 WiFi Modem design has been really popular with C64 enthusiasts. I’ve been able to get my hands on one, and hack around with some of the available firmware to get 9600 baud working flawlessly. Maybe I should call this unit the “StrikeWiFi”? Anyway, Here’s how to build it:

Parts needed:

  • NodeMCU Esp8266 IoT board (though any board with GPIO breakouts including 4 and 5 should work). Here’s a link to one.
  • C64 Userport Plug

Skills/Tools Needed: Wire and soldering iron. A project board wouldn’t hurt, but not necessary.

Download and install the latest drivers for the NodeMCU Esp8266:

Download the firmware and Windows flasher tool:

To flash with windows, open the flasher tool, use the device manager to find your com port, add that to the com port box, and then add the juno12.bin file from the rar archive to the bin selector. Hold the flash button on the esp8266mod while simultaneously hitting the download button in the program. I keep holding the flash button down during the whole write process, though I don’t know if that’s necessary.

If you’re not using Windows, or have some other Arduino style flashing tool, you can use the .ino file I’ve included in the modded firmware .rar file.

Now that the esp8266 has been flashed, let’s wire this up:

Note: You can use the C64’s 5volt power or external power from the esp8266 usb plug. Either works, though there are theories that the esp8266’s current draw might tax the C64’s 100ma 5v supply. I haven’t noticed any problems with this, but do what you feel is best.

Make the following connections using the following pinouts as a reference.

ESP8266Mod Pinout

C64 User Port Pinout

Esp8266 GND -> C64 User Port Pin N (Gnd)

Esp8266 TxD (GPIO1/TXD0) -> C64 User Port B and C (RxD. Yes, Short B and C together)

Esp8266 RxD (GPIO3/RXD0) -> C64 User Port M (TxD)

Esp8266 GPIO4 -> C64 User Port K (CTS)

Esp8266 GPIO5 -> C64 User Port D (RTS)


Add a wire from M to 5 on user port plug
Add a wire from B,C to 7 on user port plug
Add a wire from L to 6 on the user port plug

Optional power from C64: Connect C64 pin 2 (+5v) to Esp8266 Vin

First Boot! Follow these steps in order:

  • Load CCGMS 2017, select User Port, and select 300 baud
  • Go back to terminal mode
  • Power on the device if using external power and hit enter
  • A menu should show up from the modem letting you know it’s alive!
  • Hit F8 to go to Ascii mode (Anscii mode) and enter your ssid and password with the following terminal commands: at$ssid=ssid and at$pass=password
  • F8 to go back to the Graphics terminal and type atc1 to connect. This may take a few attempts to connect.
  • Use the commands at&p0 and at&k1 . Without doing these 9600 baud will lock up your c64
  • Change the baud rate by using the command at$sb=9600
  • Go back to the Terminal F7 Menu and select Up9600 Baud / 9600 Baud
  • Go back to the terminal, and you should be able to see at and ok reponses.
  • Use at&w to write these settings to the esp8266.
  • All done. Now your settings should be set every time you boot CCGMS 2017!

If you would like to manufacture your own Strikelink WiFi boards, use the gerber files here to order for Elecrow or your favorite supplier. If you sell these, I just ask that you keep the prices reasonable. It would be great to see a number of worldwide retro stores offering these.


18 thoughts on “Build your own 9600 Baud C64 WiFi Modem For $10

  1. Pingback: Commodore 64 Wifi Modem | /dev/blog

  2. Cool project! I see you’re not using level shifters for 5v and 3.3v sides. There was a lot of discussion on this last year if this would damage the ESP but it seems like verdict is it will work. I personally use level shifters to make sure I’m matching voltages.

    I’ve successfully powered my ESP01 from the C64 5v user port with no issues (but then again I am using a 1764 power supply).

    For those interested in building the virtual modem firmware from source, the original code lives at


    • These accept voltages from 3.3-5v, so no worries. These nodemcu esp8266s have regulators built in and can actually accept 9v!! So at 5v we’re pretty safe. Thank you again Paul for your work on the firmware.

      • Firstly, I’m not Paul 🙂 Secondly, the instructions I’ve listed show how to hook up the rts/cts lines and which type of ESP8266 module to use.

  3. Pingback: Commodore 64 - Un modem Wifi pour 10€ - Amiga France

  4. Thank you for the resources! I built the modem using a WemosD1 mini pro (it provides an external antenna connector, if needed) and the SparkFun level shifters and it’s working great. Also put it into a small box adding a reset switch for the ESP and another one that shorts pins 1 and 3 for the C64 reset.
    Powering the ESP from 5V user port is not enough in my case (it’s more like 4.7V than 5..) so I used the 5V user port pin only as the high voltage reference for level shifters (ground is common).
    My only concern is that the ESP does’t power on with external power until the C64 is powered too, is it normal?
    Is it safe to start the C64 and then connecting power supply to the esp?

    Bonus question: why nobody developed a commodore Telegram client? how cool would it be?


    • Hi Marco, I’m not sure if it’s normal for the external power not to power the esp8266 without the c64 on. That doesn’t sound normal to me. Are you sure pin 2 of the user port is not connected in some way? I would connect external power to the esp8266 first in most cases, and power the c64 last. I’m not sure what a telegram client is, so i can’t answer that. 😦

      • I’m using pin 2 only as voltage reference for the “high” side of the level shifter (esp8266 3.3V pin on the “low” side).
        If I connect the modem to an external power supply I have to switch on the C64 and to reset the esp before getting its led turned on..
        Does the led indicate power or serial communication?

        Thank you again!

      • The LED indicates power to the esp8266 and no connection to a host. So, it’s basically saying “READY” when it’s blue. It turns off when connected to a BBS. I havent used a level shifter in my design so i cant say how it should behave. Sorry.

      • I think I found the issue, I had to change the led pin definition in the code since it was supposed to be pin 12. In my case (wemos) the bulit-in is on pin 2 instead.
        For nodeMCU it should be pin 16.
        Now it blinks while connecting and works correctly.
        Did you modify your code too?
        Anyways it seems to be dead until I power on the C64 and reset the modem..

  5. Pingback: The Modular WifiModem64 |

  6. Pingback: Fixing WifiModem64 Version 1.0 |

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s