Apple II, Classic, Development, DIY, Homebrew, Networking, Retro, Update, Vintage

Apple IIc and the D-I-WiModem232

September 20, 2018

Recently, I came upon an opportunity to pick up an Apple IIc. I have been thinking about acquiring one so that I could take it with me to hotels when I travel for work, allowing me to get my vintage fix while on the road. I contacted the seller, who assured me that everything was in good condition… except the internal drive did not read disks. He figured it may have a broken belt or something like that. He had the original power cord, and he threw in a ton of floppy disks, an original CH joystick and an external 5.25″ drive – A2m0107. We agreed on a price and I picked it up.

 

When I got it home, I opened it up to check out the floppy drive. No broken belt, no physical issues of any kind that I could see. So I did what I always do: I cleaned the heads. While I was in there, I cleaned the rest of the computer out, although it was already very clean. Once cleaned, I put everything back together and fired it up. The machine spun to life, accessed the drive and proceeded to boot into ProDos! With the drive working, it was time to test drive this cool little machine! On the advice I got from the Apple II Enthusiasts group on Facebook, I also removed the little rubber membrane underneath the keycaps and gave each keycap a good scrubbing in ISO 91%. This made the key presses much more tolerable.

 

I grabbed a stack of floppy disks and loaded up the first one – Locksmith. It loaded as well, and I verified the drive speed was tuned correctly. Something between -5 degrees and 0 is what you are looking for here. The key switches were sometimes still hard to depress, but they improved with every press I gave them. So far, things were working great with this machine. I booted several other disks, a few games like Pacman, Choplifter and Burgertime. All these worked as well, and I am very happy with this addition to my collection. This particular IIc has the ROM-0 upgrade installed. This gives it the ability to read from a 3.5″ unidisk drive, as well as boot from external drives. This is an important upgrade to me because I want to get a Floppy EMU from BMOW in the future so I can travel without taking a bunch of fragile floppy disks with me. Besides the Floppy EMU, I plan to adapt an original 1st generation iPad to a VGA monitor for this computer to travel with. I was also planning to build my own WiFi Modem Emulator, which I call the D-I-WiModem232, but my cousin Shane built one for himself and decided to build me one too! So I already had that device. I just needed to figure out how to use it. (Thanks Shane!)

The D-I-WiModem232 is a simple device that uses an ESP8266 micro-controller. This micro-controller is very popular with Arduino projects right now and is cheap and easy to find online, and simple to use. It consists of a Tenscilica L106 32-bit MCU and a WiFi Transceiver and 11 pins for connecting it to your project. The boards that Shane used have a micro-usb port for programming and powering them, and a flash rom for holding the firmware that you want them to run. He downloaded and installed a firmware called ZiModem from a Github project. This gives the ESP8266 the firmware that lets it emulate a standard Hayes-compatible modem. He then connected the ESP8266 to the TTL-RS232 board via the TTL pins on each board and that was it. He gave it to me and said to test it and let him know how it worked.

 

Here is the guide that he used – http://subethasoftware.com/2018/02/28/wire-up-your-own-rs-232-wifi-modem-for-under-10-using-esp8266-and-zimodem-firmware/

After reading all about how this device worked, I decided to fire up the modem and configure it. To do this, I used the DB-9 port and a USB->Serial adapter on my iMac. I followed the guide from subethasoftware.com for talking to the device in a modern Mac OS X environment. I used the Mac OS X app Serial to connect to the device.

Once connected, I typed “ATI” and I got the startup message, showing the ZiModem firmware revision and then proceeded to configure the device. To get to the configuration, type AT+CONFIG. From here, you can configure your WiFi connection, baud rate, etc. I choose my WiFi SSID, entered the password, and set the baud rate to 9600. There is something that you should know about the ZiModem firmware. It is written for a Commodore 64 serial connection, which behaves slightly differently than a standard serial port. Specifically, the High/Low signals are inverted. Damn Commodore users!!! (that was my first computer, so I am talking about myself here…)  To correct this bastard signal issue, you enter the following command:

ATS46=3S48=1S50=1S52=1S54=1S56=1

This will invert the High/Low signals back to normal and make sure that DCD is forced low, in order to show your software that there is a carrier present at all times. After this, enter AT&W to save your configuration. With the configuration all complete, it was time to connect the WiModem to the IIc.

The TTL-RS232 board had a male DB-9 plug on it. But I wanted to use it with my IIc. All I needed to do was adapt the RS232 DB-9 port to a DIN-5 plug for the IIc’s modem port. I “borrowed” a DIN-5 male plug from an old PC keyboard that was missing half a dozen keys (thanks to my local computer recycler!) and used my volt meter to pin out the wires. Here is what I came up with:

White – Pin 1
Yellow – Pin2
Black – Pin 3
Red – Pin 4
Orange – Pin 5

Once I had the pin-out, it was time to learn how to wire them to the RS232 board. The RS232 board that Shane used for this project is this one. It is nice because it has the male pins already on the board to connect it to the ESP8266, but it is especially nice for this application because just behind the DB-9 port on the board there is a through hole for soldering your own wires to it.

This board was made to be easily adapted to a different plug. I knew exactly where to go to figure out the pinout for converting DIN-5 to DB-9 – ADTPro. ADTPro’s website shows you how you want to wire the DIN-5 to the DB-9, however, I made a mistake here and had to come back and modify this. The connection shown at ADTPro is for a null-modem cable and I needed a modem cable. After a few hours of trying different settings in Proterm, I finally had to ask someone for help. I went to the BBS boards and asked around. Quickly the answer came back that pointed out my mistake. I swapped the two pins for Rx and Tx and my final working wiring diagram is as follows:

DIN-5 -> DB9
Pin 1 and Pin 5 tied together (does not get connected to the DB-9)
Pin 2 -> Pin 3 (Tx)
Pin 3 -> Pin 5 (Ground)
Pin 4 -> Pin 2 (Rx)

On the DB-9, you will need to tie pins 7 and 8 together and then tie pins 1, 4 and 6 together. This disabled hardware handshaking, which apparently is non-standard in the IIc modem port and is problematic to use. With all of the connections made, I was ready to take it for a spin. I downloaded Proterm 3.1, wrote the images to a double-sided floppy and fired it up. I went straight into installation and I chose a 2400 baud generic modem and the IIc modem port. I then went into online parameters changed the baud rate to 9600, the new default that I set for this device, and just told it to go online, leaving everything else as it was. I typed ‘AT’ and I received back ‘OK’! It was communicating with the modem! Here is the entire hardware build with my DIN-5 cable and plug added in.

 

I typed ATDTa80sappleiibbs.ddns.net:6502 and pressed return. It returned with “CONNECT 1” and then the Welcome page for the BBS. I entered my credentials and I was in! Everything was working great! What an easy and rewarding project this was.

   

Since completing the build and test phases, I have used the IIc and the D-I-WiModem232 as my daily driver for going online to BBSs, something I actually do almost daily. It has not once failed to do it’s job. It connects every single time and works perfectly.

   
 

I would recommend this build as THE BEST project to start with for anyone with a beginning skill level in soldering electronics. It was super easy to do. If you were going to use a DB-9 connection to your computer and did not need the DIN-5 plug, there would really not even be any soldering to be done. Technically, you could connect the two TTL connections together, and get a straight through DB-9 cable (modem, not null-modem) and provide your retro computer with a modern WiFi connection. For connecting to BBSs on the IIc, it is a must-have accessory, because it allows you to get online anywhere where you can get a working WiFi connection.

You Might Also Like

No Comments

Leave a Reply

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