I’m an embedded systems engineer.
I spend a lot of my free time looking for things I could use in future designs, or things that tickle one of my fancies.
One of those things is cheap Linux-capable computers, the cheaper the better.
So I started diving into the very deep rabbit hole of obscure processors.
I thought to myself, “These processors are nearly cheap enough to give away.”
After a while I hit upon the idea of making a barebones Linux board in a business card form factor.
As soon as I had the idea I thought it would be pretty cool to do.
I have seen electronic business cards before, with various fun features including emulating USB flash drives, blinkenlights, or even wireless transceivers.
I have never seen one running Linux, however.
So I built one.

This is the finished product.
It is a complete, minimal ARM computer running my customized Linux firmware built with Buildroot.

It has a USB port in the corner.
If you plug it into a computer, it boots in about 6 seconds and shows up over USB as a flash drive and a virtual serial port that you can use to log into the card’s shell.
The flash drive has a README file, a copy of my résumé, and some of my photography.
The shell has several games and Unix classics such as fortune and rogue, a small 2048, and a small MicroPython interpreter.
All this is accomplished on a very small 8MB flash chip.
The bootloader fits in 256KB, the kernel is 1.6MB, and the whole root filesystem is 2.4MB.
So, there’s plenty of space for the virtual flash drive.
It also includes a writable home directory, on the off chance that anyone creates something they want to keep.
This is also saved on the flash chip, which is properly wear leveled with UBI.
The whole thing costs under $3.
It’s cheap enough to give away.
If you get one from me, I’m probably trying to impress you.
Design and assembly
I designed and built everything myself.
This is literally my job, and I enjoy it, so much of the challenge was finding parts that were cheap enough for a hobbyist.
The choice of processor was the most critical decision to keep the cost low and make the project feasible.
After much research, I selected the F1C100s, a fairly obscure cost-optimized (read: damn cheap) part made by Allwinner; it includes both RAM and CPU in a single package.
I bought these on Taobao.
All the other miscellaneous components were sourced from LCSC.
I fabricated the PCBs with JLC.
For $8 I got 10 copies.
I have been very impressed with boards I’ve gotten from JLC; they’re not quite as nice as the ones from OSHPark, but they look great, especially for the price.
The first spin of the boards were matte black, which looked fine but were quite the fingerprint magnets.

There were a couple problems with the first spin: first, the USB port wasn’t long enough to reliably make contact in many USB ports.
Less critically, the flash footprint was wrong, which I worked around by bending the leads under the part by hand.
(My wife said I was “dead-spidering” the part!)

Once I had validated everything else, I re-spun the boards to get the version you see at the top of this article.
Due to the size of all these small parts, right away I decided to reflow solder everything using a cheap reflow oven.
I have access to a laser cutter, so I laser-cut my own solder paste stencil using laminator pages.
The stencil turned out reasonably well.
The 0.2mm apertures for the processor pins needed special attention to get them to come out clean: laser power and focus were critical.

Other blank PCBs make a good jig for holding your board to apply paste.
I applied solder paste a