CoCoWiFi fork of ZiModem updated to current 3.5 build.


  • 2019-05-03: I’ve had a report of my build not allowing you to type. I have seen this before, and am investigating this. Anyone else having issues? Also, I missed something in my merge which may have affected over-the-air updates (AT&U). I am pushing out a new build. Also, added a screen shot showing 3.5. Also, note about no ESP32 build.
  • 2019-05-04: I started over with Bo’s unmodified source code, then did my changes to zimodem.ino and zcommand.ino. I am still seeing the issue where, via USB serial connection, I can’t type of my TTL-to-RS232 adapter is hooked up. Without it, it works fine. I need to do some testing via the CoCo with it’s bitbanger and RS-232 Pac ports to see what behavior I get. In the meantime, I appreciate your feedback.

Yesterday I updated my fork of Bo Zimmerman’s ZiModem. My custom fork is 100% his code, with only some configurations changed to make it default to standard RS-232 signals instead of inverted like the Commodore uses. (Basically, it’s what his “Guru modem” firmware defaults to, and the over-the-air update changed to point to builds on my service. Guru modem only builds for ESP32, so eventually I just need to figure out how to modify the project so it builds Guru modem for ESP8266, I think.)

NOTE: I only built for the NodeMCU-12E ESP8266 module and the generic ESP8266 (whatever that is) module. I did not have ESP32 libraries installed so there is no build for that currently.

If you want to pull the source code and build it directly through the Arduino IDE, you can find my fork here:

The binaries I built are located here:

I also wrote up some instructions for updating that firmware from a PC, Mac or Linux machine without having to build it with the Arduino IDE. (I had to use these steps myself, since I couldn’t remember how it worked.)

NOTE: If you have the ESP8266 wired up to a TTL-to-RS232 adapter, you may find that firmware updates will not work. On my device (using the full-signal TTL adapter and a NodeMCU ESP8266), I had to unplug the 3.3V power wire that goes from ESP8266 pin to the TTL-to-RS232 board. That was enough to make firmware updates work. I’m still not sure why having the TTL adapter hooked up affects loading firmware over USB, but apparently it does.

A final option is to use the ZiModem built-in over-the-air update capability, which we haven’t gotten to test yet since this is the first time I’ve updated firmware for the CoCoWiFi fork. That is done through the command:


That should grab the latest build on my server. I believe it reads a .txt file from my server to get the version number and builds the filename out of that, then downloads that filename. You can also specify the version manually. Currently, there is a 3.4 build and a 3.5 build available on my site.


Please let me know if this works for you. You should see the startup banner (1200 baud) show 3.5:

ZiModem (CoCoWiFi config) 3.5

Original instructions on this WiFi modem for $10 can be found here:

Good luck!

22 thoughts on “CoCoWiFi fork of ZiModem updated to current 3.5 build.

  1. Joe Schutts

    Hi Allen,

    I have a DUMB question…

    When I was big into using a modem with the CoCo (to download software and other things) I used to use Y-Modem and I was ALWAYS told that it was MUCH better (I think because it transfered larger block sizes so you could finish quicker plus it was MUCH FASTER ((overall)) than Z-Modem AND also supposedly it had added features that Z-Modem couldn’t match)…

    Now my question is, why doesn’t anyone use Y-Modem over Z-Modem??? Is it harder to program for it to work??? I do know for a fact that there were SOME Tele-Communications Programs (for the CoCo) that used Y-Modem and they worked just fine.

    So what’s the reason???


    Joe Schutts

    1. Allen Huffman Post author

      Back then, a lot of wha5 was called Y Modem was just X Modem with 1K (?) blocks. But I think real Y Modem was just using a larger block and a CRC instead of a checksum to catch errors easier. Z Modem could automatically start and get the filename from the sender. Maybe it even had packet sizes that changes, using small ones if there were errors and getting larger if there were none? It’s been awhile!

      Z Modem was the best, I think, but hardest to implement. Was there ever an RS-DOS program with Z Modem?

      I did hack up a Y Modem for OS-9 to do batch downloading from GEnie, I think they either didn’t support Z, or maybe the code was just too complicated.

  2. soydemadrid

    Hi thanks for the update.

    Did AT&U and then AT&U=3.5 to test over the air updates.

    It seems to work but then when the modem reboots everything looks messed up and I can’t type. I thought maybe the baud rate reset or something so I went back to 1200 baud but still can’t type, or other bauds too…

    Is there anyway to diagnose why internal updates aren’t working or any updates possible to fix this?

    1. Allen Huffman Post author

      It should still be 1200. Which type of board are you using? ESP8266? I do see an issue with it pushing the wrong file if using the other two supported boards.

      1. soydemadrid

        Hi thanks for the replies. Yes I’m using esp8266. Actually the firmware does update it seems and at 1200 baud my terminal ouputs the new welcome intro text and initializes. BUT I then can’t type anything.

        I’m using proper rs232 via full pins setup which works great on 3.4 but with 3.5 as I say, after the firmware upgrade I can’t input any text or commands… I’ve reset the modem a few times and unplugged the power and replugged it in and such too.

          1. Wintermute BBS (@Wintermute_BBS)

            Any progress on that issue? I have the same problem of not being able to type. I have used the original Zimodem sources as well as your version patched for the CoCo. Still I am not able to type. Even if I connect my USB TTL Adapter directly to the esp8266 (nodeMCU and D1 mini – both share the same problem).

          2. Allen Huffman Post author

            I was unable to build a working Zimodem using the current Arduino IDE and libraries, so the only thing I can do is use the binaries provided by Bo Zimmerman for his original.

          3. Allen Huffman Post author

            I think there is an echo setting in the AT commands. Or it could be like the CoCo’s RS-232 Pak which required DCD before it would accept, but I don’t recall having any issues with Zimodem like that, just with some terminal programs that didn’t like it.

  3. jscrow

    Hello, I’ve built two of these, a 4 pin and a full signal with v3.4 and they both worked ok as tested on an IBM PCjr and a CoCo 3. Your instructions and configured firmware worked great – Thank you!

    However I had problems with this new version 3.5:

    I tried the over the air update to v3.5 on my CoCo3 via the bitbanger port and when I entered AT&U it displayed the current version and available version but did not update. I entered AT&U=3.5 and it performed the update and everything seemed to be working. I then tried connecting to a bulletin board (CoffeeMud and Reign of Fire) and had problems. The BBS connection starts out normal then I got a bunch of garbled text before the modem resets. This happened everytime on both BBS’s I tested. I reset and re-powered the modem multiple times between attempts to connect. Also, I noticed the blue led on the esp8266 board was always on when the modem had power (in v3.4 it is only on when connected online).

    I tried to revert back to v3.4 via over the air updates and it failed. I was able to revert back to v3.4 via USB. I can now connect to both bulletin boards without issue.

    1. Allen Huffman Post author

      My build is busted. Even when I build the stock Zimodem, I can get similar crashes. I have contacted Bo. I think he is using a different version of the ESP8266 library than the 2.5.0 release version installed by Boards Manager in the Arduino IDE. I apologize for the inconvenience. I hope to have this figured out soon.

      1. soydemadrid

        Hi thanks – is it ok if you remove the update build from your server just in the meantime until we know it works well? Just in case anyone does an update without checking this thread first…

        1. Allen Huffman Post author

          Good idea. I have removed the binaries for now. The source code should be fine, so anyone able to build it using Bo’s instructions (I can’t figure it out yet) should be able to get it going.

  4. Leonheart

    esp8266(rx tx gnd vcc) pin connected.(baud-rate 38400)

    File Upload Fails or Very Slow Speed(command: rz -e) When Connected to Linux Telnet.

    But Download is Good.(Command: sz -e)

    How to Fix?

  5. Allen Bailey


    did you ever get these issues resolved?

    I flashed a Node today using your current build and it seems fine? I also built from your sources and seem to be getting some random resets? Triggered by the watchdog?

    Thanks for the excellent guide, it’s ebcouraged me to make three wifi modems for my vintrage machines.

    1. Allen Huffman Post author

      Once I realized I got the same issues when building the original sources, I gave up. Bo was using an older version of a library for is build when I last worked with it, and he had mentioned problems with the current one at the time. I expect it’s just something like that. I submitted a ticket on his Github page but haven’t heard a solution yet.

    1. Allen Huffman Post author

      The only update I have is I don’t know how to build it so it runs without the reset. He may have updated the code since I last tried, but I recently moved and don’t have any of my ESP stuff unpacked yet.

  6. Carlos

    Hi. I have a Atari STE, 2.06TOS and 4mb RAM.
    I buil a nodemcu+ttl converter and flash your “zimodem.ino.nodemcu-3.5.bin”
    I can connect without problems with my wifi and to a BBS vía TAZ terminal program.
    But i have problems with tcpstack and to connect with other kind of internet services (browsing with CAB or ping with STING).
    I followed the instructions with no success in:
    Anybody has have experience with this?


Leave a Reply

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