RetroBox Modem

RetroBox Modem is a project I started while researching and writing BBS Before the Web, a book about the history of Bulletin Board Systems, modems and the online world that existed before the Web.
Part of the reason for writing the book was surprisingly personal. My children had grown up with the Internet simply being there, and I realised how difficult it was to explain what it felt like when connecting two computers meant dialing a telephone number, listening to a modem negotiate and waiting for a CONNECT message to appear.
While researching that history, I eventually decided that writing about the experience wasn't enough.
I wanted to rebuild part of it.
That became RetroBox Modem.
What is RetroBox?
RetroBox is a Hayes-compatible WiFi modem for both vintage and modern computers, built around a Raspberry Pi Zero 2 W.
A computer communicates with RetroBox much as it would have communicated with a traditional modem:
AT OK ATD... CONNECT
The computer does not need to understand WiFi, TCP or Telnet. RetroBox handles that side of the connection and presents a familiar modem-like interface to the machine.
Vintage computers can connect through an appropriate serial interface, while modern computers can use USB serial.
The result is that the same device can be used from machines separated by several decades.
More than a WiFi-to-serial adapter

There are already excellent ways of connecting old computers to modern networks.
RetroBox has a slightly different goal.
I wanted it to feel like a modem.
That means reproducing many of the details that were part of the experience:
- Hayes-style AT commands
- dialing and connection sequences
- modem result codes such as
CONNECTandNO CARRIER - escape sequence
+++ - return online with
ATO - modem status LEDs
- OLED connection information
- dialing and handshake audio
- configurable connection-speed profiles
- persistent configuration
- BBS favorites and recent connections
The front panel follows the language of classic external modems, with indicators for:
WIFI AA OH SD RD TR CS CD
and a separate power indicator.

The hardware
The current prototype is based on:
- Raspberry Pi Zero 2 W
- 128×64 OLED display
- I2S audio amplifier
- internal speaker
- status LEDs
- physical power switch
- USB serial interface
- serial connectivity for vintage machines
- custom 3D-printed enclosure and front panel
The enclosure has gone through many iterations while I worked on tolerances, OLED positioning, LED alignment, lettering and assembly.
The current case is designed to resemble the external modems and peripherals that would not have looked out of place beside a computer in the 1980s or 1990s.
Modem personalities and speed
RetroBox can emulate the experience of several generations of dial-up modem.
The current firmware includes modem profiles ranging from V.22bis through V.90, while a separate pacing system controls how quickly data is actually delivered to the terminal.
That distinction lets me experiment with something I find particularly interesting: how different speeds felt.
For example, the same BBS can be experienced with data paced at:
300 bps 1200 bps 2400 bps 9600 bps 14400 bps 28800 bps 33600 bps 56000 bps
At 300 baud, you can actually watch the terminal appear line by line.
At the faster settings, the experience changes completely.
This has also become a useful way of demonstrating just how enormous the perceived difference between modem generations really was.
The sound matters
One of the surprisingly difficult parts of RetroBox has been the audio.
Anyone who used dial-up modems regularly remembers that the handshake was not just noise. Different standards, chipsets and generations of modem had recognisable characteristics.
RetroBox currently reproduces dialing, carrier and handshake sounds, but this part of the project is still actively being refined.
My goal is not simply to play a generic "modem sound". I want the sound profiles to become...
Read more »
Xavi Paz


Bolan Xu
Springuin
RoGeorge