Building a mini computer with 8 pins: The engineering art behind minimalist design
This article details how a developer designed a mini computer capable of running Linux using only three 8 pin chips.
This minimalist project demonstrates that it is still possible to build a fully functional computer system under extremely limited resources through innovative pin sharing and careful hardware and software design.
Design Ideas and Challenges
The author’s goal was to design a minimalist computer that could be easily soldered at home, run Linux, and have basic development capabilities.
He set strict limitations for himself: to use only 8 pin chips, which must support at least 8MB of RAM, 1 MIPS processing power, SD card storage, and USB interface communication.
The biggest challenge was the extreme limitation on the number of pins. In an 8 pin chip, at least 2 pins must be used for power and ground, leaving at most 6 pins available for functionality. This required careful planning for each pin and even necessitated innovative pin multiplexing.
Key Component Selection
USB communication chip: The PL2303GL was chosen, a compact USB to serial bridge chip that requires no external components and can output a 3.3V regulated power supply.
RAM: An 8MB SOIC-8 package PSRAM chip was used.
Microcontroller: The STM32G031J6M6 was selected, featuring 32KB of flash memory, 8KB of RAM, and a Cortex-M0+ core, theoretically capable of reaching a clock speed of 64MHz (actually overclocked to 150MHz).
Clever Pin Multiplexing Design
The most exciting part is how the author solved the SD card interface issue.
Since RAM and the serial port already occupied all 6 available pins, there were no extra pins to connect to the SD card. The author analyzed the communication protocols of RAM and the SD card and discovered that the SD card’s SDIO interface could share the same set of pins with the RAM‘s SPI interface:
RAM’s chip select signal (nCS) → SD card’s clock signal (CLK) RAM’s clock (CLK) → SD card’s command line (CMD) RAM’s data input (MOSI) → SD card’s data line (DAT)
This innovative pin multiplexing scheme allows the system to support two interfaces without adding any hardware.
Software Implementation and Performance
The author developed a dedicated bootloader and a MIPS emulator for the system. The bootloader occupies 8KB of flash memory, responsible for reading updates from the SD card, checking firmware versions, and supporting user configuration of the CPU frequency.
During the boot process, the system follows a process similar to that of a PC, sequentially loading the boot code and ultimately starting a complete Debian Linux system.
Although limited by hardware resources, the boot process takes about a minute, but once started, it can run development tools such as vi, gcc, and make.
Through overclocking techniques, the author increased the STM32‘s operating frequency from the officially rated 64MHz to 148MHz, making the simulated MIPS CPU performance equivalent to that of a 1.65MHz MIPS R3000.
Open Source and DIY Possibilities
This project is fully open source, including hardware schematics, PCB design, and all software code. The author provides detailed assembly and soldering guides, allowing even hobbyists with limited soldering experience to attempt assembly themselves.
Reflections and Insights
This minimalist project is impressive not only for its technical implementation but also for the design philosophy behind it. In today’s trend of pursuing high-performance, multi-core, and large memory computer development, this project reminds us that innovation comes not only from resource accumulation but also from clever utilization of limited resources.
It also showcases the charm and possibilities of open-source hardware design, showing us that even under extreme resource constraints, a fully functional computing system can still be built.
This minimalist approach not only helps us understand the basic principles of computer systems but also provides new ideas for embedded system design in resource-constrained scenarios.
What practical application value do you think this minimalist hardware design might have in various fields? Will there come a day when our IoT devices can also adopt similar minimalist design concepts?