> ## Content Index
> Fetch the complete content index at: https://bjornsblog.nl/llms.txt
> Use this file to discover other available public pages before exploring further.

# RetroModem part 5: The first public release
- URL: https://bjornsblog.nl/retromodem-first-public-release/
- Published: 2026-10-29T20:02:21.000Z
- Updated: 2026-10-29T20:02:21.000Z
- Description: RetroModem is now available as a public project, with a single-command Raspberry Pi installer, infrared and serial connections, virtual BBS dialling and RetroWEB.
- Author: Björn
- Tags: Retro computing, Projects, Hardware, Software

When I started this project, I only wanted to connect my Psion 5mx to the internet without using a computer as a gateway. That worked, but apparently I was not very good at stopping there.

The Raspberry Pi with a few PPP scripts gradually became RetroModem: a small standalone internet bridge and virtual modem for old computers and handhelds. It now supports infrared and RS-232, direct internet access, simulated dial-up internet, public BBS systems through virtual telephone numbers in a configurable phone book, file transfer, a web interface and a built-in proxy that converts modern websites into simpler pages for old browsers.

After quite a lot of testing, rewiring and changing things that had already worked perfectly well the week before, I have now published the first public version on GitHub:

[**Download RetroModem and read the documentation on GitHub**](https://github.com/BjornB2/retromodem?ref=bjornsblog.nl)

The source code, installer, hardware instructions and prototype enclosure files are all there. The interesting part is that a clean Raspberry Pi can now download, compile and install the complete software stack with a single command.

![Infrared RetroModem providing web access to a Palm IIIc](https://bjornsblog.nl/content/images/2026/10/retromodem-palm-hero.png)

The current infrared RetroModem prototype providing web access to a Palm IIIc.

## What RetroModem actually does

RetroModem turns a Raspberry Pi into a bridge between a modern Wi-Fi network and computers that were never designed for it. The old device connects over infrared or RS-232\. RetroModem then provides the network connection, modem emulation and a few services that make the result genuinely useful.

There are two main connection modes.

In **Direct internet (PPP)** mode, a Psion, Palm or computer starts a PPP connection directly over infrared or serial. From the old device's point of view, RetroModem behaves as its internet connection.

In **Hayes dial-up modem/BBS** mode, the device sees a familiar modem. You can type `AT`, receive `OK` and dial virtual telephone numbers. Calling `5559000` starts a classic Dial-Up internet connection. Numbers from the built-in phone book connect to public BBS systems.

Most remaining BBS systems use Telnet rather than a real telephone line. RetroModem maps each hostname and port to a telephone number. This means original terminal software can still dial something like:

```
ATDT5551000
```

RetroModem answers the virtual call and opens the corresponding Telnet connection over Wi-Fi. No landline, modem bank or creatively acquired telephone exchange is required.

![Onyx BBS opened from the Psion through a virtual RetroModem telephone number](https://bjornsblog.nl/content/images/2026/10/onyx-bbs-psion.png)

Onyx BBS on the Psion. The original terminal software still thinks it has dialled a modem.

The currently tested clients include a Psion 5mx, Palm IIIc, Windows 98 and Windows XP. I have used direct PPP, dial-up PPP and BBS connections. The Palm can also receive PRC and PDB files through its normal Beam function.

For the physical connection, the public version supports three adapters:

- A modified Ming Yuan MY018 infrared module connected to the Raspberry Pi GPIO and UART. This is the preferred compact infrared build and runs at 57.6 kbit/s.
- A Prolific USB-to-RS-232 adapter for computers without infrared.
- A Mobile Action MA-620 USB infrared adapter as a fallback. This is the adapter used in the earlier versions of the project.

At the moment, the Raspberry Pi 3 Model B is the only Pi model I have tested. Other models may work, but I am not calling them supported until someone has actually tried them.

## Making the modern web slightly less modern

Getting an old computer online is only half the problem. A 1990s browser does not suddenly understand current TLS, JavaScript-heavy sites and multi-megabyte pages because it has received an IP address.

RetroModem therefore includes an adapted version of RetroWEB, the proxy I originally described in [My take on a retro proxy](https://www.bjornsblog.nl/general/my-take-on-a-retro-proxy/?ref=bjornsblog.nl). It downloads a modern page, extracts the useful content and returns much simpler HTML. Images can be converted, resized or shown as links. Large pages can be split into smaller parts so they do not immediately exhaust the memory of the browser. A new installation routes ordinary HTTP traffic through RetroWEB automatically, so the old browser does not need a separate proxy setting. This can be changed from the modern administration interface or directly on the device through `proxy.retromodem`.

This does not make every modern website work. Cloudflare pages and sites that depend heavily on client-side JavaScript can still refuse to cooperate. But ordinary articles, search results and many simpler pages become surprisingly usable.

RetroModem also hosts its own lightweight pages:

- `http://start.retromodem/` provides links to Search, ChatGPT and settings.
- `http://wifi.retromodem/` lets the retro device scan for and connect to Wi-Fi networks.
- `http://proxy.retromodem/` contains the page-size and image settings for RetroWEB.
- `http://chatgpt.retromodem/` provides a basic ChatGPT interface without JavaScript or cookies. You need to login through the web-interface first.

![The RetroWEB search page in the Psion browser](https://bjornsblog.nl/content/images/2026/10/retroweb-search-home-psion.png)

The local search page needs no JavaScript, cookies or modern browser features.

![RetroWEB search results for Bjorns Blog on the Psion](https://bjornsblog.nl/content/images/2026/10/retroweb-search-results-psion.png)

Search results open as ordinary websites and are automatically processed by RetroWEB.

ChatGPT is also available as a wonderfully unnecessary BBS on `5559999`. It can search the web, but it has no access to RetroModem itself, local files or system commands by default.

![ChatGPT running on a Psion 5mx through RetroModem](https://bjornsblog.nl/content/images/2026/10/retromodem-psion-chatgpt.png)

ChatGPT on a Psion 5mx over infrared. Still not the fastest way to use it, but speed was never really the point.

## From a prototype to an installer

The earlier versions of RetroModem were built directly on one Raspberry Pi. I installed packages, compiled old drivers, edited configuration files and fixed things until they worked. That is a perfectly reasonable way to make one prototype. It is not a very good way to publish a project.

The difficult part of this release was therefore not adding another feature. It was turning the working Pi into a reproducible installation.

That includes more than copying a few Python scripts. Linux no longer includes the old IrDA stack, so the installer downloads a fixed upstream revision and builds the missing drivers as DKMS modules for the installed kernel. It also builds a fixed version of `tcpser`, applies the RetroModem patches, installs PPP, configures routing and DNS, creates the system services, installs RetroWEB and sets up the fallback access point.

The external source revisions are pinned to exact Git commits. The bootstrap script also resolves the selected RetroModem version to a full commit before downloading it. This prevents the contents of an installation from changing halfway through simply because the `main` branch moved.

Existing settings and user data are deliberately kept separate from installer-owned files. Reinstalling should not erase the phone book, uploaded software, Wi-Fi profiles or ChatGPT credentials. There is also a verifier that checks the installed dependencies, files, checksums, services, web interface, routing and standard phone book.

This is the sort of work nobody notices when it succeeds. Which is exactly what an installer should do.

## Installing RetroModem with one command

The current release is intended for a **Raspberry Pi 3 Model B** running **Raspberry Pi OS Legacy Bookworm, 32-bit Lite**. The word Legacy is important. The regular 32-bit Raspberry Pi OS image has moved to a newer Debian version and is intentionally rejected by this installer.

Use Raspberry Pi Imager to write the correct image to an SD card. Configure your own SSH account and Wi-Fi connection in Imager, start the Pi and connect to it over SSH.

Then run:

```
curl -fsSL https://raw.githubusercontent.com/BjornB2/retromodem/main/bootstrap.sh | sh
```

![RetroModem bootstrap downloading a fixed commit and asking for the first adapter](https://bjornsblog.nl/content/images/2026/10/installer-bootstrap-adapter.png)

The bootstrap resolves the current release to a fixed commit before asking which adapter to configure.

The installer asks which adapter should be active first. It supports the MY018, the Prolific serial adapter and the MA-620\. When selecting the MY018, it also asks for confirmation that the modified selector and transistor wiring matches the documentation. That check is there because software cannot prevent smoke from incorrectly connected hardware. Fresh installations start in English and route web traffic through RetroWEB automatically. Both choices can be changed later.

After the installation, reboot the Pi and run:

```
sudo retromodem-diagnose
sudo retromodem-verify
```

The first command collects adapter and service diagnostics. The second checks that the installation is complete and that the managed files still match their expected checksums. At the end, the installer prominently points to `http://retromodem.local/` for the initial setup and also prints the Raspberry Pi's current LAN IP address as a fallback.

![Completed RetroModem installation with reboot, verification and initial setup instructions](https://bjornsblog.nl/content/images/2026/10/installer-complete-next-step.png)

The installer makes the required reboot rather difficult to miss and shows where to continue afterwards.

There is deliberately no ready-made SD-card image yet. The first public release focuses on the installer, because it can be inspected, repeated and updated without distributing a copy of my own configured system. The GitHub documentation contains the complete installation procedure and the physical acceptance checklist.

![The RetroModem connection settings in the modern administration interface](https://bjornsblog.nl/content/images/2026/10/web-interface-connection.jpg)

The modern administration interface lets you select the adapter and connection mode without editing configuration files.

## It can also configure itself from an old browser

Once RetroModem is installed, it does not need a monitor or keyboard. If it cannot find a known Wi-Fi network, it creates its own temporary access point. A phone or laptop can connect to it and open the administration interface.

More recently, I also added Wi-Fi setup for the retro client itself. A Psion or other connected device can open `http://wifi.retromodem/`, scan for nearby networks and save a connection. This page works without internet access, JavaScript or cookies.

![RetroModem scanning for Wi-Fi networks from the Psion browser](https://bjornsblog.nl/content/images/2026/10/wifi-scan-psion.png)

Scanning for nearby Wi-Fi networks directly from the Psion.

![Selecting a Wi-Fi network from the Psion browser](https://bjornsblog.nl/content/images/2026/10/wifi-networks-psion.png)

The resulting network list. No SSH session or modern computer is needed.

The full administration interface at `http://retromodem.local/` is meant for a modern browser. It shows the current adapter, mode, connection status and speed, and manages the phone book, proxy, ChatGPT connection and file transfers.

The two interfaces are kept separate on purpose. Trying to squeeze an entire modern control panel into a Psion browser would technically be possible, but it would not make it pleasant.

![RetroWEB and general settings in the RetroModem administration interface](https://bjornsblog.nl/content/images/2026/10/web-interface-settings.jpg)

RetroWEB can split pages and resize images for browsers with very limited memory.

## Hardware files are included too

The GitHub repository also contains the wiring instructions for the infrared prototype, photos of the modified MY018 board and the STL files for the enclosure.

I should be honest about the enclosure. It is a prototype built around my particular collection of boards, wires and hot glue. The space for the MY018 is not quite the right size, so hot glue remains an official part of the current assembly process. Check the dimensions before printing it.

The battery version uses a single 18650 cell, a TP4056 charger/protection board and an MT3608 step-up converter adjusted to 5.0 V. This is a hand-built prototype, not a certified power supply. Anyone reproducing it should use a suitable protected cell, insulate every exposed connection and never charge it unattended.

![Inside the hand-built RetroModem prototype](https://bjornsblog.nl/content/images/2026/10/retromodem-prototype-photo.jpg)

Inside the prototype: Raspberry Pi, battery power circuit, status LEDs, button and infrared hardware. Neatness was not the first acceptance criterion.

## What is stable, and what is not

This is the first public release, not a claim that every possible retro computer and adapter combination works.

The Pi 3B, Psion 5mx, Palm IIIc and the listed Windows configurations are the combinations I have actually tested. Direct PPP, Hayes commands, virtual BBS calls and the main web interface work. Palm IrOBEX sending is verified. Psion EikonIr file transfer is still experimental. Browser compatibility also depends heavily on the old device and on the website being requested.

The repository contains a protocol support matrix with the evidence and known limits. I would rather describe a feature as experimental than pretend an untested checkbox is support.

RetroModem is released under the GPL-3.0-or-later licence. Bug reports and additional hardware test results are welcome through GitHub. If you try it on a different computer, handheld or Raspberry Pi, please let me know exactly what worked and what did not.

For now, I am mostly pleased that the project can finally leave my own SD card. One command still hides a slightly ridiculous amount of old Linux networking, patched modem software and infrared archaeology, but at least it is now the same ridiculous amount for everyone.

[**RetroModem on GitHub**](https://github.com/BjornB2/retromodem?ref=bjornsblog.nl)

---

## RetroModem series

1. [RetroModem part 1: Connecting a Psion or Palm PDA to the internet](https://www.bjornsblog.nl/general/how-to-connect-your-psion-to-the-internet-in-2024/?ref=bjornsblog.nl)
2. [RetroModem part 2: IrDA and a web interface](https://bjornsblog.nl/retromodem-irda-web-interface-update/)
3. [RetroModem part 3: ChatGPT on a Psion 5MX, because why not?](https://bjornsblog.nl/chatgpt-dial-up-bbs-psion-5mx/)
4. [RetroModem part 4: Built-in RetroWEB and local web apps](https://bjornsblog.nl/retromodem-built-in-retroweb-local-web-apps/)
5. RetroModem part 5: The first public release