RFID - read, write and copy

Last Update: 08.07.2025

Out of curiosity I wanted to know the contents of RFID cards. Sometimes I get such cards for access of certain places, sometimes they store health data for emergencies (e.g. blood type). But what happens if one breaks? A replacement often costs more than just a new token with the necessary data saved on it. So I wanted a tool to be able to make backups.

Goal

I wanted to be able to create backups of any kind of RFID card out there. While I did some research, I found that there are different types of cards and there is a chip that can read all common RFID cards: MFRC522. So, my basic hardware setup was decided to be:

I used an Arduino with BLE because I had one by hand. An Arduino Nano without BLE will also do.

The wiring is straight forward using dupont wires. Just connect the SPI interface between the boards and supply the MFRC522 via the Arduino Nano.

Software

I used the platform.io environment in Visual Studio Code to create the necessary software for the embedded device. With this I was able to create and handle all functions by command line. The interface to the board was using UART over USB as it is easily available on Arduino boards. I created the UART interface to be interactive so I could use it via command line without looking up the commands. You can find the corresponding code on GitHub.

RfidDevice

A while later I created a GUI app using C# with WPF in Visual Studio. It should only fully read or write a card. This made the project more accessible on PCs without UART terminal tool.

RfidDevice

Final device

To actually have a usable device, I additionally designed a simple case to be 3D printed where the boards and the wiring fit in. I glued the lid and so I had a simple device for easy use. If you want to use the model you can find it on printables.

RfidDevice