August 2025
You might have noticed that I have a nostalgic affection for the TRS-80 Model III, an 8-bit computer from 1980. Every year I attend the TRS-80 conference Tandy Assembly in Ohio. Last year, a week before the show, I messed around with a Raspberry Pi Pico, which was a new, small, fun embedded system. I realized I could implement a simple Model III emulator, add a tiny screen, 3D print an enclosure, and make a micro Model III to show off at the show.
The board is a Raspberry Pi Pico, based on the RP2040 chip. It’s cheap ($8) and well-documented. Developing for it was a pleasure.

For the display I chose a 2.2" 18-bit color TFT LCD display from Adafruit ($25). Its resolution (320x240) would cover the TRS-80’s (512x384) at half-res, which made it work for the chunky graphics blocks but made text unreadable. The biggest unknown of the project was whether I could update the entire screen fast enough over SPI. Adafruit’s library’s DMA code wasn’t fast enough but a small tweak made it work great!

I enlisted the help of my son Milo to model the enclosure based on a real machine I had on loan from Arno Puder. Milo modeled it in hours in Fusion 360 and printed it on our Prusa. There are various useful features of the model, like a hole just at the right place to insert a long screwdriver to fasten the display:

The display was too low-resolution to show text clearly, but graphics worked okay, which allowed games to be playable. One question was how to provide input. I didn’t want to provide a full keyboard (via Bluetooth or USB). Not only was that not in the spirit of this toy, but you couldn’t read text anyway. I decided to attach an Atari 2600 joystick, which I had sitting around from another project, and run exactly one game: Obstacle Run, written by Arno in assembly language when he was 16 years old in Germany! That’s it. That’s the whole thing, you plug it in, the game runs, and you use the joystick to avoid obstacles.
For the software, the Model III is mercifully easy to emulate, at least for simple things like this. I grabbed the z80emu Z80 emulator and added just enough glue code to update the screen, simulate keyboard arrow keys from the joystick, and load the game’s hard-coded CMD file.
Here it is opened up:

It took about a week to put together, just in time to show at Tandy Assembly:

It was very popular! The designer of the TRS-80, Steve Leininger, asked me to make a Model 1 version of it as a wrist-mounted computer, maybe just showing the current time. It’d have to be battery-powered, and the joystick replaced by some other buttons.
Here it is booting and playing Obstacle Run:
After the show I sent the enclosure to JLCPCB to have it 3D printed in resin and spray-painted in two different colors. Total cost was $15 including tax and shipping, and took two weeks from order to receiving it. It looks and feels amazing:

I recently brought the micro Model III to the Vintage Computer Festival in Mountain View. I had a table full of real TRS-80 equipment, but what caught everyone’s eye was my micro Model III. Over half the people used the literal phrase “so cute!” A dozen people asked if I was selling them. I don’t want to manufacture these (they’d be more expensive than people are willing to pay for a toy), but as a hobby it sure seems attention-grabbing to make cute version of nostalgic objects! Maybe next year I’ll make a series of old micro computers, like the Commodore 64:

The source code is available on GitHub.