Hackster is hosting Hackster Holidays, Ep. 7: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Friday!Stream Hackster Holidays, Ep. 7 on Friday!

Old School, New Tech

Shane Mason built a retro-themed computer from modern microcontrollers to better understand how computers work at a low level.

Nick Bild
1 year ago β€’ Retro Tech
The Ficus homebrew computer (πŸ“·: Shane Mason)

Many very technically-inclined individuals will one day come to the realization that despite spending years immersed in, and working with, technology every day, they actually have very little understanding of how everything really works at a low level. Some people are perfectly happy to work at high levels of abstraction and not worry about those details. But for others, surely including many readers of Hackster News, this realization is enough to cause them to wake up night after night in a cold sweat with a feeling that they have been living a lie.

The only known cure for this condition is hacking, which is of course an effective remedy for all manner of ailments. In particular, designing computers, operating systems, or whatever else it may be that one does not have a good understanding of. Going through the process of building a complex system from scratch is the surest way to know it inside and out.

An experienced software engineer by the name of Shane Mason recently realized that despite spending many years working with high-level programming languages, what exactly happens when those programs execute is a mystery to him. Initially, he decided to remedy this problem by writing an operating system for x86 systems. But after a bit of research, and discovering how complex the architecture is, he realized it was a bit too much to bite off for a hobby project.

After being inspired by documentaries about the early days of home computing, when a computer could be built from scratch by an individual in a garage, Mason decided instead to focus on building a retro-inspired computer from modern microcontrollers, and then develop an operating system for that machine. Sure, there are still many abstractions in such a system, but it is far closer to the bare metal than one would normally get.

Called Ficus, the computer has keyboard input with the help of an Adafruit Feather RP2040, which has a built-in USB host to make the conversion of keystrokes to ASCII characters very simple. This board is also hooked up to a 20x4 character LCD display for basic output.

A UART connection from the Feather feeds translated keystrokes into a Raspberry Pi Pico microcontroller. When instructions need to be executed, they are offloaded to a worker node β€” another Raspberry Pi Pico β€” via SPI for processing. An Adafruit Metro M4 Express development board was also included, along with a 3.5-inch TFT display for more advanced graphical output.

As the build advanced, Mason continued to add to it, piece by piece. A Raspberry Pi Pico W was included for networking support, an SD card reader for storage, and a real-time clock for timekeeping. Some RGB LEDs were also added on to serve as status lights.

Development of the operating system is still in progress, but it already supports input and output, has a shell with many Unix shell commands implemented, and has simple file management and text editing capabilities. It is even possible to program the computer from the machine itself, which is an important feature for any standalone system.

While it works, it is not an especially good computer, which Mason freely admits. The 1-bit data bus and approximately 2 Hertz display refresh rate are far from ideal. But as an exercise in learning more about hardware and operating systems, Ficus was a big success.

There are still some lingering issues to solve, however. In particular, the computer is known to lock up fairly frequently. As someone who was sitting in a similar place years ago, without a logic analyzer, scope, or much electronics knowledge, my advice to Mason would be to build some type of ground plane. The boards look to be more or less daisy-chained together with wiring. Chances are that signal levels are not consistent across the circuit, which can cause all sorts of odd and seemingly inexplicable behavior.

Nick Bild
R&D, creativity, and building the next big thing you never knew you wanted are my specialties.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles