RetroBridge: Build a Raspberry Pi 5 Computing Time Machine From 1976 to 1982
by retrobridge in Circuits > Raspberry Pi
5 Views, 1 Favorites, 0 Comments
RetroBridge: Build a Raspberry Pi 5 Computing Time Machine From 1976 to 1982
RetroBridge is a Raspberry Pi 5–based computing time machine that lets you explore five formative personal computers from 1976 through 1982 using a single 3.5-inch touchscreen appliance.
The goal was not simply to create another emulator launcher. I wanted RetroBridge to feel like a dedicated interactive exhibit: power it on, choose a year, and enter a real computing environment from that point in personal-computing history.
RetroBridge currently includes:
1976 — Apple-1
1977 — TRS-80 Model I
1977 — Apple II
1981 — IBM PC
1982 — Commodore 64
The custom RetroBridge interface runs on a Raspberry Pi 5 with a 480×320 touchscreen. Each historical environment launches through its own integration layer, while RetroBridge handles navigation, startup behavior, system information, maintenance mode, and return to the Time Machine interface.
An important rule for this project is:
RetroBridge is an integration platform, not a software archive.
The public build does not redistribute proprietary ROMs, commercial operating systems, games, or third-party emulator packages. Instead, it documents how to obtain supported components from their original projects or normal Debian/Raspberry Pi OS repositories.
RetroBridge V1.1 was also reproduced from scratch on a separate microSD card running Debian 13 Trixie, so this Instructable is based on a clean-build validation rather than only the original development system.
Five Computers. Six Years. One Computing Time Machine.
Supplies
Hardware
- Raspberry Pi 5 Model B — 8 GB used in the reference build
- Raspberry Pi 5 Active Cooler
- 32 GB or larger microSD card
- 3.5-inch 480×320 Raspberry Pi 5–compatible touchscreen
- USB keyboard
- Raspberry Pi 5–appropriate USB-C power supply
- Wi-Fi or Ethernet connection
Reference Display
The validated build uses a GeeekPi/52Pi-style 3.5-inch display with an ADS7846-compatible resistive touchscreen controller.
Software
- Raspberry Pi OS / Debian 13 Trixie
- Python 3
- Tkinter
- Git
- xterm
- wmctrl
- DOSBox
- VICE
- Debian open-roms
- Rust toolchain
- SDL3
- EWM
- trs80basic
Project Source
https://github.com/retrobridge-jc/RetroBridge
Optional Retro Enclosure
RetroBridge also includes a period-inspired 3D-printable enclosure concept/design target. The enclosure shown in this project is not yet an engineering-validated STL/CAD package. Dimensions, clearances, cooling, fastener placement, tolerances, and assembly still need physical validation before printable files are released.
Prepare the Raspberry Pi 5
Start with a clean Raspberry Pi OS installation on the microSD card. RetroBridge V1.1 was clean-build validated using Debian 13 Trixie on a Raspberry Pi 5.
During Raspberry Pi Imager setup, I recommend configuring:
- hostname
- normal user account
- Wi-Fi
- SSH
- locale and time zone
After the first boot, open a terminal and update the operating system:
Then reboot:
Before continuing, confirm that networking and SSH work correctly. This makes the remaining installation and troubleshooting much easier.
Configure the 3.5-Inch Touchscreen
The clean Debian 13 Trixie installation did not include the older MHS35 overlay used during early RetroBridge development, so the validated build uses a Raspberry Pi 5/Trixie-compatible touchscreen driver from its upstream project.
From a terminal:
After reboot, verify:
- landscape 480×320 image
- touch response
- correct touch alignment
On the validated RetroBridge build, the system reported:
One important detail: this display setup starts the graphical session through spi-display.service rather than the older LightDM path. That becomes important later when configuring RetroBridge autostart.
Download and Install RetroBridge
Clone the RetroBridge repository:
Make the installer executable and run it:
By default, RetroBridge installs into:
You can choose another location by setting RETROBRIDGE_HOME:
The installer copies the RetroBridge-authored frontend, launchers, system scripts, and configuration files. It also installs normal Debian package dependencies.
The public installer intentionally does not bundle or redistribute proprietary historical software.
Install the TRS-80 Environment
RetroBridge uses the open trs80basic implementation for a Level-II-BASIC-compatible TRS-80 experience.
Install it with:
This gives RetroBridge a reproducible TRS-80 programming environment without requiring the project to distribute a proprietary TRS-80 ROM set.
Build EWM for Apple-1 and Apple II
Apple-1 and Apple II both use EWM, built from its upstream source.
First install Rust using the official Rustup method and verify:
Then build SDL3:
Clone EWM:
Current EWM Apple-1 and Apple II windows default to a 3× logical scale, which is too large for the RetroBridge 480×320 display.
RetroBridge includes two small patches that change only the initial/logical display sizing to 1×.
Back up the source:
Apply the patches from the RetroBridge repository:
Then build:
If a future EWM version changes enough that the patches no longer apply cleanly, inspect the upstream changes rather than forcing the patch.
Test Apple-1 and Apple II
RetroBridge launches Apple-1 through EWM using the upstream built-in Apple-1 configuration.
At the Woz Monitor, type:
to enter Integer BASIC in the validated configuration.
Apple II also runs through EWM using the builtin:apple2 configuration and the RetroBridge 1× sizing patch.
Both environments should fit the 480×320 display correctly before moving on.
Configure IBM PC / DOSBox
RetroBridge uses DOSBox for the 1981 IBM PC environment.
The validated 480×320 settings are:
RetroBridge mounts:
as DOS drive C:.
These settings were validated on the 480×320 touchscreen and produce a usable full-screen PC environment.
DOSBox itself does not provide rights to MS-DOS, PC DOS, commercial software, or games. Use only software you are legally entitled to use.
Configure Commodore 64
RetroBridge uses VICE for the Commodore 64 and Debian's open-roms replacements rather than distributing original Commodore firmware.
The expected replacement ROM files are:
The RetroBridge launcher also disables doubled rendering so the C64 environment fits the small display cleanly.
Verify All Components
Before enabling appliance-style autostart, verify the full stack:
A complete build should report checks such as:
Do not move on to autostart until the components you intend to use report ready.
Configure Boot-to-RetroBridge
The validated Trixie/MHS35 build uses a root-owned graphical session started by spi-display.service.
RetroBridge therefore uses an X-session wrapper that authorizes the normal RetroBridge user and launches the frontend on display :0.
Install the wrapper:
Make it executable:
Add:
to:
Then reboot:
The expected result is:
power on → graphical session → RetroBridge Time Machine
rather than stopping at a normal Linux desktop.
Add a Maintenance Escape Hatch
A dedicated appliance still needs an easy way to stop the frontend from launching automatically.
Enable maintenance mode:
Disable maintenance mode and return to appliance operation:
This is useful for:
- updates
- troubleshooting
- changing launchers
- adding programs
- testing new configurations
Add Your Own Programs
One of the fun parts of RetroBridge is adding your own historical programs rather than treating the machines as static museum pieces.
Original Apple-1 BASIC examples live under:
Example files include:
IBM PC programs go under:
That directory appears inside the emulated DOS environment as drive C:.
The Optional Retro Enclosure
The enclosure shown throughout this project represents the physical direction I want RetroBridge to take: a compact late-1970s/early-1980s terminal-style enclosure around the Raspberry Pi 5 and 3.5-inch display.
The concept includes:
- angled CRT-style profile
- front bezel
- ventilation
- rear I/O access
- Raspberry Pi 5 active cooler
- separate shell sections
- standard M3 hardware concept
These images are still design references.
I have not yet published STL or STEP files because I do not want to call an enclosure printable until the following have been physically validated:
- screen opening
- Pi mounting-hole locations
- USB/Ethernet/USB-C alignment
- active-cooler clearance
- cable routing
- airflow
- screw lengths
- wall thickness
- print tolerances
- assembly order
Once that validation is complete, the enclosure will become a separate downloadable part of the RetroBridge project.
The validated V1.1 appliance currently uses the off-the-shelf GeeekPi/52Pi 3.5-inch touchscreen enclosure.
Recovery and Reproducibility
RetroBridge V1.1 has passed two separate validation tests.
Full-card recovery
A known-good RetroBridge microSD image was created, SHA-256 verified, compressed, restored to a second card, and boot-tested successfully.
Fresh clean build
A separate 32 GB microSD was started from a clean Debian 13 Trixie installation.
Using the public RetroBridge project plus dependencies obtained from upstream sources, the fresh build reproduced:
- 480×320 display
- touch input
- Apple-1
- TRS-80 Model I
- Apple II
- IBM PC
- Commodore 64
- boot-to-RetroBridge behavior
This matters because it proves RetroBridge is reproducible from the published build process rather than depending on one original development card.
Finished Result
RetroBridge began as an experiment in running old BASIC programs and became a small physical exhibit about the evolution of personal computing.
In six years, the experience moves from the Apple-1's Woz Monitor to TRS-80 BASIC, Apple II, IBM PC DOS, and finally the Commodore 64.
The interesting part is not simply that all five systems can run on a Raspberry Pi. It is making them behave like one coherent appliance while still preserving the differences that made each machine historically important.
Five Computers. Six Years. One Computing Time Machine.
If you build RetroBridge, I’d love to see what you change, what historical programs you add, and where you take the enclosure design next.
Source and documentation: