Build your own Dial-up ISP with a Raspberry Pi

Learn how to emulate a vintage dial-up ISP using a Raspberry Pi and a phone line simulator to bring old computers like the iBook G3 back online.
Build your own Dial-up ISP with a Raspberry Pi
Last year my aunt let me add her original Tangerine iBook G3 clamshell to my collection of old Macs. It came with an AirPort card—a $99 add-on Apple made that ushered in the Wi-Fi era. The iBook G3 was the first consumer laptop with built-in Wi-Fi antennas, and by far the cheapest way to get a computer onto an 802.11 wireless network.
Something I've always wanted to do is emulate a dial-up ISP locally. Wi-Fi as we know it today typically routes fiber or cable Internet connections, but WiFi in 1999 maxed out at 11 Mbps. Most people going wireless in 1999 were still using AOL or some other dial-up ISP. I figured I'd challenge myself to see if I could run my own local dial-up ISP using a Raspberry Pi.
Hardware
POTS, or the Plain Old Telephone System, is tricky to emulate. You can't just plug one modem into another. In addition to a modem for my 'Pi ISP', I need a telephone line simulator.
I chose the following hardware to build out my ISP:
- SBC: Raspberry Pi 3, 4, or 5
- Phone Line Simulator: Viking DLE-200B Two-Way Line Simulator
- Modem: StarTech.com 56K USB Dial-up Modem
You plug the USB modem into the SBC, then plug a phone cord between the modem and the phone line simulator. Then plug another computer (the iBook G3) into the other phone jack on the simulator.
Software
On the Pi, we'll utilize two Linux tools: mgetty and ppp.
mgetty("modem get tty") handles calls through the modem and negotiates with remote modems.- PPP (Point-to-Point Protocol) authenticates the remote computer and configures a network bridge, allowing the remote computer to behave as if it were on the local network.
Using an Ansible playbook can automate this configuration. Once running, the Pi automatically starts listening for a ring on the line. When you dial in from another modem, you can monitor the connection negotiation via the PPP daemon.
The Internet at 33.6 kbps
I was able to establish a connection at 33.6K most of the time. That speed is the maximum you'll be able to get with POTS—you have to go digital to reach 56K. At 2.8 KB/sec, it's a reminder of the days when downloads were left to run overnight.
On an old computer, almost every modern website will not load due to outdated TLS certificates and lack of modern HTML support. However, using a tool like Macproxy Classic acts as a local proxy server. It strips away modern CSS, Javascript, and HTML tags, outputting something old browsers can render. With this, I can browse modern websites on an iBook from 1999 running Internet Explorer 5.
Dial-up over WiFi
The final step was going fully wireless. By using an original AirPort Base Station connected to the setup, the iBook G3 can roam free while tethered to the simulated dial-up connection. It’s a unique way to experience the first WiFi laptop as it was intended in 1999, combining the nostalgia of dial-up sounds with the freedom of early wireless networking.
Source: Hacker News












