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:

http://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers

Download the firmware and Windows flasher tool:

http://www.mediafire.com/file/tm71a1oa1a3macc/alwyz_modded_firmware.rar

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)

Then:

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.

CCGMS 2017 v4 Released

ccgms

Proudly announcing

CCGMS 2017 Final

Modz by Alwyz

VERSION 4 NOW RELEASED!

Version 4 is a Bugfixed Version

– Improved Carrier Detect routine in Autodialer. Now works with all BBSes.
– Fixed UP9600 “Line Noise” Bug
– Fixed Crashes on F2 Send File Command
– All Baud rates under UP9600 Modem now work
– ccgms/phone config file is now ccgms-phone
– Changed back arrow to non-destructive. Fixes problems with mci commands on image bbs systems.

CRT version for Easyflash now has additional tools and some old school phreaking tools included for fun.

Features:

– User Port / UP9600 / Swiftlink / Turbo232 / Comet64 support
– 300-38400 Baud
– 17xx REU Autodetect (makes the buffer 64k in size)
– Improved Phone Book with ip/port/user id/password support
– Ansi Colors
– Themes (based on previous hacks of ccgms)
– Drive #8-15 support
– sd2iec/uIEC support
– Bug Fixes from previous CCGMS versions patched (xmodem bugs/user port 2400 baud)

Features not added:

Due to time constraints and burnout, I’m not going to pursue SuperCPU, RRNet, and ide64 Compatibility at this time. My (messy) sourcecode is pasted below. I encourage anyone who wants to, to add those (or other) features and submit them. I’ll do a v2 or start betas for a CCGMS 2018… or something like that.

Notes from Alwyz:

Bugs should be mostly gone, though there might be a few lurking here and there. Mostly, it works, and works really well. It was a lot of fun to mod CCGMS, as it was the first terminal program I ever used when I was a kid. It held a lot of fond memories for me, and I’m sure most of you. Thanks to Craig Smith for releasing his source to the public. And thanks to all of you for your support and encouragement in the making of this version. Sorry I couldn’t honor every request, but I hopefully made most of you guys happy. Again, if you guys wanna add anything, please do and submit it to me. Or release your own versions. I don’t claim any rights to this. I just wanted to see it exist. So it’s all good.

Download:

http://csdb.dk/release/?id=154515

Source Code: (Compile in 64tass)

http://pastebin.com/raw/37rwnm6j

Easyflash 3 Source Code

http://pastebin.com/raw/u5kN9Umr

Call Afterlife BBS

afterlife.dynu.com:6400

CCGMS 2017 Beta

ccgms

Proudly announcing

CCGMS 2017 Beta

Modz by Alwyz

Features:

– User Port / UP9600 / Swiftlink / Turbo232 / Comet64 support
– 300-38400 Baud
– 17xx REU Autodetect (makes the buffer 64k in size)
– Improved Phone Book with ip/port/user id/password support
– Ansi Colors
– Themes (based on previous hacks of ccgms)
– Drive #8-15 support
– sd2iec/uIEC support
– Bug Fixes from previous CCGMS versions patched (xmodem bugs/user port 2400 baud)

Current known issues in this beta:

– Comet64 dialer not implemented (next version of Comet will have new command set)
– Ansi Escape Codes not finished. Ansi Colors are working.
– Hang up routine needs to be improved. Fixed in Beta 3.
– Carrier Detect routine needs to be improved. Fixed in Beta 3.
– Swiftlink has some hang issues with multi-punter transfers.
– – Fixed in Beta 2. Swiftlink flow control was messing with grabbing the headers.
– up9600 multi-punter upload not working. fixed in beta 4
– up9600 phonebook carrier detect not right. fixed in beta 4
– up9600 not initializing when loading on startup if saved in phonebook config. fixed in beta 4.
– bbs systems with 5 digit port numbers were dialing incorrectly. fixed in beta 5.
– bbs systems that answer but then give a busy message now detect as busy in phonebook. added in beta 5. might still be buggy. please test!
– swiftlink not playing well with bbs server as modem emulator. tcpser seems to work ok. to be fixed in the future.
– up9600 uploads would sometimes crash/hang indefinitely during transfer. fixed in beta 6.
– the f2 send seq file command had bugs on both swiftlink and up9600 modems. fixed in beta 6.
– f4 buffer load and transfer crashed in up9600 randomly. fixed in beta 6.
– users with CMD SuperCPU couldn’t use upload/download. SuperCPU support will be working in beta 7.
– Making a macros too long botches the macros next to it. Need to put limits on macros length. To be fixed in beta 7.

Send bug reports and feature requests to alwyz@sceneworld.org. I would like to get as many bugs patched and features added as possible before the final version is released.

Note to Wi-Fi Modem users: Make sure flow control at-command is issued before using 9600 baud.

EasyFlash 3 edition coming soon!

Download:

http://csdb.dk/release/index.php?id=150993

Latest Beta Versions can be downloaded from Afterlife BBS

afterlife.dynu.com:6400

Raspberry PI c64 emulator image

I made a Raspberry PI c64 image a few years back, but never released it on this site. To install it, you’ll need an 8gb compatible SD card, a disk imaging program such as win32diskimager, and a Raspberry PI 2.0 (though all newer pi’s should work as long you do a sudo apt-get update / sudo apt-get upgrade).

This includes a port of vice64, 2400 baud modem emulator with tcpser (needs to be implemented but it’s there. See below.), and a joystick emulator to play games built in. GPIO pinouts for the joystick ports are included in the dox to hook up your old 9 pin style C64 joysticks to the Raspberry PI.

Image file: http://www.mediafire.com/download/3a9jh3stnfq3k34/pi64.zip

Instructions: https://dl.dropboxusercontent.com/u/98204530/pi64%20instructions.pdf

To get the modem emulator running, exit out of vice emulator after it boots (F12 -> quit), follow these instructions:

type:

tcpser -v 25232 -p 6400 -s 2400 &x64

vice will reboot, load up striketerm, the defaults will be for the user port at 2400 baud, and you should be able to get an at/ok response in the terminal.

Strikelink Ultra + Raspberry PI = Complete Modem Solution

Another useful hack. We have macs at my house. All my roommates have macs. Not one pc in the bunch. The only way I’ve been able to BBS at home is using the Comet, hooked to the mac, using the mac’s wifi, and using the Ethernet cable to chain to the Comet. But I’m stuck at 2400 baud with that solution.

Getting TCPSer4j working on the mac was a 12 hour exercise in futility. If anyone can figure that out, be my guest. No luck there. (Using 10.5 Leopard btw)

So, I figured, instead of the comet, let’s get a simple Raspberry PI Solution going. TCPSER can do ANY Baud Rate I want, and pl2303 devices (such as the Strikelink or any other Serial<>USB Device) do not need additional drivers for the PI – they’re already included in the raspbian distro. It’s Built into the system. so let’s give it a shot.

Installing TCPSER is easy on the PI. If you haven’t done it yet.

sudo apt-get install tcpser

That should be it, then from commad line, just run:

tcpser -d /dev/ttyUSB0 -p 6400 -s 9600 -l 4

-d is the device. Yours should be at ttyUSB0, but in case it doesnt work, try USB1, 2, etc. -p is the port. -s is the speed. Strikelink Ultra does 9600 so use that option. -s 38400 for swiftlink/turbo232 etc. -l 4 is the logging level, i always use this.

Plug her in and you’ve got a cheap solution based out of a pi. That took 15 minutes to get running, way better than trying to get the mac rolling. Enjoy!