There’s still plenty of useful hardware out there that uses an RS-232 interface, like the Behringer Ultradrive loudspeaker systems that [Lasse Lukkari] works with from time to time. Rather than ditch perfectly good gear because modern computers (to say nothing of phones or tablets) don’t have physical serial ports, he decided to come up with a WiFi adapter for these old devices that he calls SerialChiller.
Inside the SerialChiller is an ESP32, a MAX3232 line driver, a LM1117 linear regulator, and a few passives. The professionally manufactured PCB is housed inside of an enclosure that [Lasse] has repurposed from a cheap DB15 breakout adapter. The USB cable is used to power the board and for programming, though it can also be used to turn the SerialChiller into a USB-to-serial cable as well.
The hardware for this project is pretty straightforward, but what we really like is the direction he’s taken with the software. Rather than using the SerialChiller as a simple serial to WiFi bridge, [Lasse] is actually implementing a complete web-based interface directly on the microcontroller. In the video after the break he demonstrates his firmware for controlling the aforementioned Behringer Ultradrive, but that’s just one possible application for the project. Firmware could be spun up for all sorts of classic devices, breathing new life into hardware that might otherwise be in danger of heading to the landfill.
Of course, using the ESP family of chips as serial adapters is hardly anything new. In fact, that’s what they were designed for. But developing modern user interfaces for old hardware thanks to the power of the ESP32 has some fascinating potential.
25 thoughts on “ESP32 Serial Interface Modernizes Old Equipment”
This got me thinking. It’s a shame to just give up RS-232. With a little modernization that protocol could be saved!
Here’s how that might be done.
Don’t just put one RS232 port in a computer. For every intended port give it 4 internally. Then route them to the outside through a digital switch connected to a 2-bit random number generator. You only get access to one of the four ports on any given boot of the computer but you do not know which one. For bonus points, each time a device is disconnected/reconnected it should detect this and choose a different port. This will keep users on their toes as they will have to go into their software preferences and find the correct port descriptor each time.
Next, that outside connector has to change. Instead of an ancient standard 9 or 25-pin d-sub connector that any hobbyist can reasonably solder to it should be something tiny and hard to work with, delicate and it should pull out all on it’s own in the middle of use because it should have no screws. Also, this connector needs to keep up with the times. It should be totally re-designed every 3 to 5 years in order to force users to buy new hardware.
There we go! Implement those features and RS232 can give exactly the same user experience as today’s USB connectors. The standard is saved!
I wonder what computing would be like if rs232 had gnd and vcc pins so there would be no need to put charge pumps in all unpowered peripherals. maybe we could have had arduinos ten years earlier. what were they thinking? ps/2 had them but it wasn’t suited for terminal use.
Imagine a world where USB never happened and laptops still have db-25 connectors, no thanks. Imagine backing up your data at 115000 onto a RS-232 flash drive. Personally I am glad that RS-233 sucks so bad.
I think we’d have been using firewire and some kind of serial external SCSI
Possibly some sort of a serial attached scsi….nah
There were parallel port HDDs, zip drives, cd burners back in the day, usually got something like a whole whopping 0.5MB per second or so and significantly pegged the CPU that you wouldn’t be able to do a whole much else with it while a copy was in progress.
RS232 can provide some limited power though what might be otherwise unused pins like the RTS/CTS flow control pins. How do you think serial mice worked and didn’t have a separate power cord or batteries?
Likely not enough power for an ESP8266/32 unless you put a lot of capacitance or a small rechargeable lipo cell on it to absorb the power draw spikes into the 100/200ma range when these things transmit to wifi.
Assuming this would just be used for terminal type uses where you are just sending manually typed text, the power from the flow control pins might be able to keep up with the intermittent transmit of keystrokes. If you planned to do binary file transfers over it, you might want to rethink the power.
serial mice did have their own power supply.
You don’t need any of that, you can implement as many RS232 ports as you need with commonly available chipsets… FTDI, etc… If anything RS232 has become more useful since the advent of USB because now you can run USB closer to your rack of devices, put a USB hub there, and RS232 from the hub to all the devices………………………………
DB15? No. It’s a DA15-connector. https://en.wikipedia.org/wiki/D-subminiature
True, but read the wiki you linked
“However, this naming pattern is not always followed. Because personal computers first used DB-25 connectors for their serial and parallel ports, when the PC serial port began to use 9-pin connectors, they were often labeled as DB-9 instead of DE-9 connectors, due to an ignorance of the fact that B represented a shell size. It is now common to see DE-9 connectors sold as DB-9 connectors. DB-9 nearly always refers to a 9-pin connector with an E size shell. The non-standard 23-pin D-sub connectors for external floppy drives and video output on most of the Amiga computers are usually labeled DB-23, even though their shell size is two pins smaller than ordinary DB sockets.
Reflecting the same confusion of the letters DB with just D as mentioned above, high density connectors are also often called DB-15HD (or even DB-15 or HD-15), DB-26HD (HD-26), DB-44HD, DB-62HD, and DB-78HD connectors, respectively, where HD stands for high density.”
Interesting point, I hadn’t realized this confusion in the naming scheme existed.
See my projects on a similar theme.
Wired 232 is a fairly secure technology for control. I hope it’s not abandoned for all the new IoT methods and wake up to find out that something you didn’t want someone to hack ends up HACKED!
Nice! The Esp8266 is great for bridging serial to WiFi, and it’s nice to see the control software being self-hosted now.
What I’d like to try is to connect it to a screen using the EspVGA project, turning an ESP into a serial-VGA video card.
For example, a Raspberry Pi makes a serial prompt, but I need another computer to see that and send commands. An ESP could interface the serial directly to a screen. With the EspUSB, it could even be a USB keyboard and mouse. In the meantime, I’ll just reach for my phone and use WiFi with the SerialChiller.
EspVGA only generates video when everything else (serial, wifi) is turned off, otherwise you lose sync
At one point I think there was a RS232 spec that pretty much defaulted to “other” RS232. At least usb usually changes the form factor instead of the spec suffix. Rs232a,b,c, etc. (Z may have been the other non spec standard)
Awesome! The hardware is almost exactly what I have been working on, down to the same BOB housing. That housing is available in DB-9 too, if you want to reuse the connector. His hardware is much further along than mine though. I think I will borrow it.
I added wrote a terminal based ssl web browser and included PPP from lwip for all my retro-computer needs.
Fuck yes, I love it!
If someone is interested in making similar user interfaces with Arduino I have created a tutorial to get you started: https://awot.net/en/guide/tutorial.html
Thank you for this.
Nice one, I’m in thanks for post :-)
I like RS232. It’s simple, point to point, robust, full duplex, has hardware flow control, long cable lengths, and no freaky-deaky rootkit shit is going to get silently installed on your computer if you plug in some hacked Chinese personal fan / reading light. It’s fine for what it does, and you never need to unplug and replug it.
On the other hand, it’s no RS485. That’s where the real beef is. USB has its place, and so does raw serial.
And….RS232 is a pain in the ass…..
I’ve worked with it for years and I can tell you it is no fun getting two devices to talk to on another for the first time. Now is that cable a DCE or is it a DTE? Do I need a gender bender or not? Do I need to assert DSR or DTR? What baud rate is the device set to? Is it one stop bit, 2 stop bits? Is it Pairty, No Paity….it goes on and on. USB is a WHOLE lot better.
So NO RS232 is not Simple….But it is there and has been around for a lot of years. I agree there are a lot of interfaces that can benefit a lot from the above adapter. I myself have an old Sony CD player the holds 200 CD’s, with TOSLINK output, and has a serial interface (yes RS232) and this project is now looking like a great way to resurrect it, AND control it over WIFI. For this application speed is not an issue. I also have a couple of ESP32’s looking for work to do.
IMO the problem is that most manufacturers halfassed their implementation, though ensuring that it would work with fully standard RS232 in their corner cutting… however, since nearly everyone halfassed it, the interconnection of one halfassed device to another halfassed in a different manner brought on problems.
I would like to see an interface which can mate up with the proprietary Roland R-Bus system, to allow the huge amount of R-Bus supplied gear to interconnect with the rest of the present-day audio world.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)