🎓 Learning Project - Beginner-friendly GUI for duplicating 13.56MHz RFID tags using Arduino + MFRC522.
- Step-by-step wizard interface
- Hardware self-test on startup
- Read UID from source RFID card
- Write UID to Chinese "Magic" cards (CUID/Gen1a)
- Real-time status logging
- Arduino Uno or Nano
- MFRC522 RFID Reader Module
- 13.56MHz RFID cards (Magic/CUID cards for writing)
MFRC522 → Arduino Uno/Nano
───────────────────────────────
SDA (SS) → Pin 10
SCK → Pin 13
MOSI → Pin 11
MISO → Pin 12
IRQ → (not connected)
GND → GND
RST → Pin 9
3.3V → 3.3V ⚠️ (NOT 5V!)
cd firmware
# Using PlatformIO CLI
pio run --target upload
# Or open in PlatformIO IDE and uploadcd app
pip install -r requirements.txt
python main.py- Connect - Select COM port and connect to Arduino
- Read - Tap your original RFID card on the reader
- Write - Tap a blank Magic card to clone the UID
rfid-cloner-studio/
├── firmware/ # Arduino/PlatformIO code
│ ├── src/
│ │ └── main.cpp # MFRC522 communication logic
│ └── platformio.ini # Build configuration
├── app/ # Python GUI application
│ ├── main.py # CustomTkinter interface
│ └── requirements.txt
└── README.md
| Command | Response | Description |
|---|---|---|
CHECK_HW |
{"status":"READY"} |
Hardware self-test |
READ_UID |
{"status":"UID_READ","message":"AABBCCDD|MIFARE 1K"} |
Read card UID |
WRITE_UID:AABBCCDD |
{"status":"SUCCESS"} |
Write UID to magic card |
| Issue | Solution |
|---|---|
| "HW_FAILURE" on connect | Check wiring, ensure 3.3V power |
| "ERROR_LOCKED" on write | Card is not a Magic/CUID card |
| No COM ports found | Install Arduino drivers |
MIT License - See LICENSE
This is a learning project! Feel free to:
- Open issues for bugs or questions
- Submit PRs with improvements
- Fork and customize for your needs