The Genesis of RetroPico

While wandering around YouTube one day, I stumbled upon a video by Jeff Geerling on his Level2Jeff channel  Macintosh on a microcontroller. I quickly fell down the rabbit hole after watching Action Retro's channel Building a $14 Machintosh take on it as well. That was the spark. A wave of nostalgia hit me, bringing back memories of my early years in IT. 

In no time, I was deep into hardware hacking. I initially started with a piggyback approach—it was interesting, but I wasn't satisfied with the overall janky look. Without a second thought, I sat down to draft a custom dedicated schematic. By the end of the day, the foundation of RetroPico was born. Then came the long wait for the PCBs, the hardware debugging sessions, and ultimately, the pure satisfaction of seeing Matt Evans' Macintosh emulator Pico Micro Mac running perfectly on my own silicon layout!

Predictably, my brain wouldn't stop there. The "maker hamster" started running in its wheel, and I drafted a much heavier set of hardware specifications to harness the leftover orphan GPIO pins. This design spiral led to 4 successive hardware revisions of the mainboard.

Adding the "Soft" Side: The I2C Extension Module

Coding a stable VGA driver and managing a complete USB keyboard/mouse stack in MicroPython can sometimes feel like fighting the "Final Boss". I realized the project needed something softer, more portable, and accessible to interface with the board on the go. 

Out of this need, the I2C Extension Module was born. This small add-on board combines:
* An OLED SSD1306 display
* 3 tactile user buttons
* A PCF8574AT I/O expander
* Onboard environmental sensors (AHT20 + BMP280)
* A CAT24Cxxx EEPROM with a hardware write-protect jumper

Because I can't stand leaving GPIO pins floating or wasted, I broke out the remaining unused pins of the PCF8574AT onto a dedicated hardware pin header. It turned out to be a fantastic universal prototyping block that only requires a single master I2C bus!

In the end, I had a solid hardware foundation that truly captured the spirit of the computers I grew up with the ZX81, TRS-80 Color Computer (Coco) , Commodore 64, and others. As a nod to that golden era, the project was officially named RetroPico.

Standalone Software Ecosystem

The software side is just as exciting. To round up the RetroPico hardware combo, I wrote RetroPicoOS: a custom graphical interface to browse files directly from the onboard Flash or the MicroSD card, allowing users to select and launch MicroPython scripts on the fly. 

It's simple but fully functional, making the system completely standalone—effectively cutting the umbilical cord with the desktop Thonny IDE. To top it all off, the repository includes half a dozen custom retro games (like Space Invaders, Breakout, Pong, and Moon Lander) tailored specifically to run on this extension module!