Can My First Computer Control A Spaceship?
Why It Matters
The demo illustrates the surprising control capability of vintage hardware, providing perspective on modern computing power and inspiring creative engineering solutions across generations.
Key Takeaways
- •ZX Spectrum can control a simulated lunar lander via serial.
- •Emulated Spectrum uses Interface 1 RS‑232 to communicate with Python.
- •Python bridges Kerbal RPC data to Spectrum, updating ~once per second.
- •BASIC implementation causes significant lag; assembly could improve speed.
- •Demonstrates vintage hardware’s surprising capability compared to modern devices.
Summary
Scott Manley revisits the 1982 Sinclair ZX Spectrum, using an emulated version to pilot a lunar lander in Kerbal Space Program. By loading a BASIC “lander” program via the classic tape interface and attaching the Interface 1 RS‑232 add‑on, he connects the vintage computer to a Python bridge that talks to Kerbal’s RPC mod.
The Python script reads real‑time telemetry—altitude, velocity, thrust‑to‑weight—and streams it over a virtual serial port to the Spectrum. The BASIC code parses these values, computes attitude and throttle commands, and sends them back. Because the Spectrum runs at 3.9 MHz and bit‑bangs a 9600‑baud line, updates occur roughly once per second with occasional two‑second lag, far slower than modern systems.
Manley highlights the quirks of the hardware: loading from tape, multi‑function keys, and the cumbersome sequence required to close the serial port. He notes that the Apollo Guidance Computer operated on a similar cycle, and that today’s smartphones and even chargers dwarf the AGC’s performance, yet the Spectrum can still land a simulated craft.
The experiment underscores how far computing power has advanced while reminding us that even austere machines can solve complex control problems. It offers a nostalgic yet tangible lesson for engineers about low‑level programming, real‑time constraints, and the value of bridging old and new technologies.
Comments
Want to join the conversation?
Loading comments...