I have been experimenting with hooking up low-cost ESP8266 WiFi modules to the Radio Shack Color Computer (or anything with an RS-232 port) using cheap RS232-to-TTL adapters. Most of these adapters only support 3-wire RS-232 (transmit, receive and ground). This is fine for most uses of the CoCo’s built-in Serial I/O port (bitbanger) since it is only a 4-pin DIN connector with TX, RX, GND and CD, and most things do not rely on carrier detect.
But, for the Deluxe RS-232 Program Pak, a hardware 6551 UART chip is used and that chip requires to see carrier detect before it will receive any data. A workaround is to simply tie some of the TTL converter pins together to make it always present DCD to the RS-232 Pak:
This works fine if you are just connecting to remote systems, but if you want to run a BBS, those often rely on carrier detect to know if a caller is online. If a caller disconnects without properly logging off, the system may sit there forever (worst case) or until some software timeout is reached and the system resets. During that time, it would be possible for the next person connecting to resume that session.
This was a real and common issue with BBSes back in the 1980s, for this very reason – lack of carrier detection.
Another issue is the lack of hardware flow control. There could be times when the ESP8266 could try to send data faster than the computer could process, and there is no way (other than XON/OFF, which can’t be used for binary transfers) to tell it to pause sending.
I have found RS232-to-TTL adapters that provided 5-wire signals (adding RTS and CTS), which is needed for this hardware flow control. Those are a bit more costly (I found one for $9 on Amazon), and still do not address the carrier detect issue.
Once again, David Chesek comes to the rescue. He located an adapter that supports all the RS-232 signals, including RI (ring indicator). It is available for $11.50 plus shipping from a company in Las Vegas called Pololu (and might even be manufactured there):
I took a gamble (pun intended) and ordered a few. I will report back as soon as I receive them and have had a chance to try them out.
Meanwhile, knowing such a thing exists, I did more searching and found a similar one on e-Bay from a seller called MDFLY. They have them for $3.25 plus shipping, and are shipped from California:
The board layouts are quite different, but the functionality should be similar. I will be comparing both of these (and noting shipping time) when I have them.
With either one of these boards, properly wired to additional pins on a full ESP8266 development module, it should be able to provide hardware flow control and carrier detect. (Sorry, the ESP-01 module only has two I/O pins, so we’d have to pick and choose what to support on that one — like DTR and DCD for BBS use, or CTS/RTS flow control.)
More to come…
Hi is there anyway to add the flow control and full signals to an existing 3 wire hookup? I’m wondering if pins can be soldered to directly from the esp dev board, or does it all have to flow through the max3232?
You would have to use some kind of converter chip to go between the 3.3V of the ESP module to the higher voltage of an RS-232 pin. I do not know how to use the MAX chips, but do plan to learn how they work at some point.
Thank you! I was looking to build an RS232 GPS receiver with PPS (which is synced with DCD). FT232R (and its many clones) support DCD translation, but USB isn’t ideal for GPS PPS since it’s unpredictably laggy. So I wanted to go with straight RS232 serial but kept finding RS232-to-TTL adapters with only TX/RX (or sometimes TX/RX/CTS/RTS).
I wasn’t able to find any active listings on eBay like you did, but just ordered two from Pololu.
The Pololu ones had issues for me. The other one is available on Amazon, for about the same price as ordering direct and shipping.