Machine Heart reported
Participants: Siyuan, Du Wei,Zenan
For an engineer, how can one declare their strength on a business card?Creating a complete computer on it might be a good idea.
Recently, a business card made by American embedded systems engineer George Hilliard has attracted widespread attention.He used his business card as a “motherboard”, printing all the components required for a computer system in a small space, allowing it to run Linux.It even includes a simplified Python interpreter.
This geeky idea has garnered widespread acclaim on social media, with his article appearing on HackerNews garnering over 2000 likes in less than a day.
To create such a business card, one needs sufficient theoretical knowledge, and the required components can be purchased on Taobao (yes, this American guy did just that), with the cost of a business card being about 20 RMB.
As an embedded systems engineer, George Hilliard has always pursued perfect designs, one of which is the simplest Linux system computer.He searched through a massive array of processor models for the optimal solution and eventually discovered new territory.He told himself:“These processors are as cheap as giving them away.”He quickly came up with the idea of making a business card that could run Linux using them.
Previously, many geek pioneers have showcased their creativity on business cards, including USB business cards, cards with flashlights, and even those with radio transmission capabilities.However, there has never been a business card that can run a Linux system.
So George made one himself:

The finished product looks like this; it is a complete ARM architecture computer running a custom Linux firmware built with Buildroot.

So how does it boot up? The lower left corner of the card has a USB interface; if you plug it into a computer, it will boot up in 6 seconds, appearing as a USB flash drive and a virtual serial port, allowing you to log in using the card’s shell. The flash drive contains a README file, a copy of the resume, and some photos. The shell has many games, such as the classic Unix games fortune and rogue, 2048, and a small MicroPython interpreter.
All of this is achieved on a flash card with a capacity of only 8MB. The bootloader size is 256KB, the kernel is 1.6MB, and the entire root filesystem takes up 2.4MB. So installing a system is more than sufficient. It also contains a writable home directory in case someone wants to store something on it.
Finally, the cost of a business card is controlled at around 20 RMB, which is quite cheap for a computer.
Designing a Business Card is a Technical Job
George Hilliard designed and produced the entire business card himself. Although this is part of his job, finding sufficiently cheap components is still quite troublesome.
The choice of processor is the most critical part; it controls costs and determines the feasibility of the entire project.After a series of research, George chose the F1C100s, a very cheap chip from Allwinner that optimizes cost effectively.This chip integrates RAM and CPU, meeting the functional requirements at least.
Surprisingly, George actually bought the F1C100s on Taobao, while other components were purchased from LCSC.
George used JLC to make the PCB board, which costs about 56 RMB for 10 pieces. George expressed that he was impressed with the boards made by JLC; although they are not as good as those made by OSHPark, the quality is still decent, and importantly, the price is affordable. The first circuit board produced was a matte black color, which had a slight fingerprint magnetic feel.
During the first PCB production, there were some issues: Firstly, the USB port was not long enough, making it difficult to connect to more USB interfaces; Secondly, the flash footprint was incorrect, and George had to manually push the pins to the back of the component.

After verifying all parts, making another board would yield the capabilities shown in the article. Because the PCB size is small, George decided to immediately use a cheap reflow soldering method to reflow all components. Because he could use a laser cutter, he could create soldering templates using a laser-cutting press. The template worked very well, and the chip’s 0.2mm pins need particular attention to keep clean: laser power and focus are very important.

Other blank PCBs are excellent fixtures for holding the board while processing pins, and fixing can be done with transparent glue. George manually soldered components, ensuring that both the board and components are lead-free and harmless, making it suitable to be used as a business card.

The result shown in the image above is slightly off, but soldering is actually quite easy to use, and assembly is very straightforward.Each component takes about 10 seconds to assemble, so the author tried to minimize the number of components.
How much does such a business card cost?
George has already minimized costs as much as possible, and he believes it is now cheap enough that he won’t mind giving them away.Of course, only important contacts will receive such business cards, as all components need to be assembled one by one.All the costs below do not account for assembly time; readers with strong hands-on skills may consider making one themselves.

Of course, the author also stated that there are many costs that cannot be quantified, such as shipping and trial and error, etc.But 20 RMB is already very low, especially for a board that can run a Linux system.This also reflects the cost of producing end devices in enterprises; the component costs are much lower than we imagine.
How is the performance of the business card?
Well, it boots a super simplified Linux system in 6 seconds. Due to format and cost factors, this card does not have I/O, network modules, or other resource-intensive programs. Nevertheless, George still copied some interesting applications into the firmware image.
We can do many interesting things via USB, but the author intentionally kept the business card in a very simplified state, and we can try some things on the computer.Linux allows us to use some small tools like a device; the author has also uploaded some previous development work related to this chip to the card, so it has the complete functionality of a USB small tool framework.George decided to simulate a pre-generated flash drive and provide shell services through the virtual serial port.
After logging in as the root user, we can run all simulated serial console:
-
rogue:The classic Unix game “Dungeon Crawler”;
-
2048:The console version of the 2048 game;
-
fortune:Various famous quotes, to save space for other applications, it does not contain a complete database;
-
micropython:A very lightweight Python interpreter.
During the compilation process, the build tool can generate a very small FAT32 image and add it to the UBI partition.As previously described, the Linux small tool subsystem will present it as a storage device to the PC.If you want to see what happens with the flash drive, the simplest way is to check the source code, which contains some of the author’s resumes and introductions.
Flash drive source code address: https://github.com/thirtythreeforty/businesscard-linux/tree/master/package/businesscard-flashdrive/files
What resources are needed to create such a business card?
In the process of making the circuit board business card, George used the F1C100s chip and ran the mainstream Linux version 5.2 on it.Additionally, he provided some documentation about the F1C100s chip for readers’ reference.
George has open-sourced the Buildroot tree on GitHub, and readers can check it out themselves.The Buildroot tree contains the code for generating the NOR flash image, which is installed via the processor’s USB download mode.Moreover, the Buildroot tree also includes games and other useful software packages, such as adding the fortune software to Buildroot.
If you want to use the F1C100s chip in your project, it is a good start (feel free to contact if you have any questions).
Buildroot tree project address: https://github.com/thirtythreeforty/businesscard-linux
In addition, George redirected the F1C100s development work released by Icenowy, which can run Linux version 4.9.George’s business card runs on the more mainstream version 5.2, with patches applied and debugged.
For the F1C100s chip, George believes he has the best U-Boot configuration compile port currently available, which is based on Icenowy’s previous work.
U-Boot project address: https://github.com/thirtythreeforty/u-boot/tree/f1c100s-v2019.04
George found the following documentation about the F1C100s:
-
Allwinner F1C100s Datasheet (provides pinout and general information): https://www.thirtythreeforty.net/media/F1C100s_Datasheet_V1.0.pdf;
-
Allwinner F1C600 Reference Manual (provides register definitions for F1C600, which is an improved version of F1C100s under a different trademark, supporting Linux): https://www.thirtythreeforty.net/media/Allwinner_F1C600_User_Manual_V1.0.pdf;
-
Schematic for Sipeed’s Lichee Nano (this is the development board George used to run his software smoothly): http://dl.sipeed.com/LICHEE/Nano/.
Finally, as shown in the image below, George uploaded the schematic for making the circuit board business card.

Schematic of the circuit board business card.
Some netizens commented:“What’s incredible to me is that this chip costing $1.42 (about 10 RMB) contains almost all the necessary hardware to drive Linux:A 500MHz CPU, 32MB SDRAM, 2D GPU, SD/MMC support, and USB controller.They are all packaged in a tiny 10mm×10mm chip.This makes me want to dive into embedded development.”
George stated that he learned a lot from this business card project; it was his first project using reflow soldering to reflow components.Moreover, for some components lacking documentation, George had to learn to find the necessary resources.
During the project, George drew on his experience with embedded Linux and PCB design.The project is not without flaws, but it showcases his skills.Additionally, George mentioned that he is working on how to build hardware and software for small, cheap Linux systems like circuit board business cards from scratch.
Reference Links:https://www.thirtythreeforty.net/posts/2019/12/my-business-card-runs-linux/
Before the opening of the first AI academic conference AAAI in 2020, Machine Heart will plan multiple offline sharing sessions. This is the first session of Machine Heart’s AAAI 2020 online sharing, and we invited Professor Bai Xiang’s group from Huazhong University of Science and Technology, Liu Zhe, to introduce their oral paper.
