A battery free circuit board business card that lights up 21 LEDs when you tap it on a phone.
My business card has no battery, but when you tap it on a phone, 21 LEDs light up in an animation and the phone pulls up my website. I built it from an open source hardware design, customized the layout in KiCad, had the boards made, and programmed them myself.
- Microcontroller
- ATtiny816
- NFC chip
- NXP NTAG I2C Plus
- LEDs
- 21, Charlieplexed
- Antenna
- PCB coil, ~2.75 µH
- Frequency
- 13.56 MHz
- Battery
- None
Power from the phone
When NFC is on, a phone puts out a magnetic field oscillating at 13.56 MHz. The copper spiral around the edge of the card is an antenna, and by Faraday's law that changing field induces a voltage in it. The coil is about 2.75 µH, and together with the roughly 50 pF inside the NFC chip it forms an LC circuit that resonates right at 13.56 MHz, since f = 1/(2π√(LC)). A small 1.5 pF capacitor lets the tuning be adjusted.
The NFC chip
The card uses an NXP NTAG I2C Plus. Most NFC tags only use the harvested energy to run themselves, but this chip rectifies it to DC and outputs the extra power to run other parts. That's what powers everything on the card.
Sending the link
The card doesn't actually transmit anything. The chip changes how much energy it absorbs from the field, and the phone reads those small dips as data. That's how it gets my link.
The light show
An ATtiny816 microcontroller runs at 1 MHz to save power and drives the LEDs with Charlieplexing. Since LEDs only conduct one way, x pins can control x(x − 1) LEDs, so 6 pins can handle up to 30. Only one LED is on at a time, but the code switches between them fast enough that it looks like one smooth animation.
Power management
The chip's datasheet limits the capacitance on its output to 220 nF, but the LEDs need a 10 µF capacitor to smooth out their current. The circuit charges that capacitor slowly through a resistor at startup, then after about 120 ms the microcontroller turns on a MOSFET that bypasses the resistor so the capacitor can do its job.
Board layout
There's no ground plane, because solid copper would block the magnetic field from reaching the antenna. The LED traces also leave a gap instead of forming a full loop, so they don't pick up the field and create eddy currents that would fight the antenna.
What I learned
- How resonance works in a real circuit: the antenna only picks up useful energy at its tuned frequency, so the coil's shape and size are part of the electrical design
- How NFC uses one magnetic field to carry both power and data, through energy harvesting and load modulation
- How Charlieplexing trades lighting LEDs at the same time for using fewer pins, and why fast switching makes it look smooth
- Why datasheet limits matter, like the 220 nF output limit, and how a MOSFET and resistor can work around one safely
- How RF changes the layout rules: no ground plane near the antenna and no closed trace loops
- How to prepare a board for professional assembly, including the BOM, placement files, part numbers and checking that every part matches its footprint
Built with
KiCad, Arduino (megaTinyCore), NXP TagWriter








