KEYREAPER 2133.R4 is a covert, browser-controlled RFID/NFC reader and writer built on the Arduino Uno R4 WiFi with a PN532 I2C shield. It creates its own WiFi network and serves an embedded web interface for scanning, writing, and interrogating RFID/NFC tags in the field β no laptop required beyond initial connection.
A stealth tool for tag inspection, manipulation, and dumping β no cloud, no external dependencies.
- β Arduino Uno R4 WiFi (Renesas RA4M1 + u-blox NINA-W102)
- β Adafruit PN532 RFID/NFC Shield (13.56 MHz, I2C mode)
- β USB-C power supply or battery bank
- β No SD card required
- β No internet required
- π Reads RFID/NFC tags (ISO14443A/B, MIFARE, FeliCa)
- π Brute-force key discovery using common key dictionary
- π¦ Block dumping of up to 32 data blocks per tag
- βοΈ Web-based tag writing via POST request
- π§ History buffer (last 20 UIDs + metadata)
- π Self-hosted web UI over local AP
- π§ͺ Deep scan + aggressive protocol mode
- π Plug and play β just power it on and connect
When powered on, KEYREAPER creates its own WiFi network:
- SSID:
KEYREAPER_2133.R4(default) - Password:
21332133(editable in code) - IP Address:
192.168.4.1 - Port:
80
Use your phone or laptop to connect to the deviceβs WiFi, then visit:
Control the device fully through a mobile or desktop browser:
/api/scanβ Single scan/api/toggleβ Continuous scan mode/api/aggressiveβ Multi-protocol scan toggle/api/historyβ Card log JSON/api/writeβ POST hex block payloads
Each scanned tag logs:
- UID
- Type (ISO A/B/FeliCa)
- Manufacturer ID
- Key count cracked
- Block data (if dumped)
- Timestamp
- Clone the repo:
git clone https://github.com/numbpill3d/KEYREAPER_2133.R4.git
- Open in Arduino IDE
Board: Arduino Uno R4 WiFi Port: Auto-detect
-
Edit main.ino to change SSID/password if needed
-
Upload the sketch
-
Power the device β connect to its WiFi from your phone
-
Visit http://192.168.4.1 in your browser
To write to a tag:
-
Use the write section in the UI
-
Must be authenticated with a cracked key
-
Supports writing raw hex blocks (plaintext or via POST)
π§ Author by numbpill3d AKA voidrane Device theory + field engineering and components sourced + provided by Xenotrek
π License MIT β mod it, fork it, flash it.
In Arduino IDE, set:
File β Preferences β Compiler Warnings β All
This enables full warning output during build to help catch bugs and maintain quality.
We use cpplint to maintain code quality.
To run it:
pip install cpplint cpplint src/.cpp src/.h
Found a bug or unexpected behavior?
Please open a new issue here:
π https://github.com/numbpill3d/KEYREAPER_2133.R4/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBUG%5D+
Found a bug or want to suggest a feature?
This project uses AUnit for automated testing.
- Arduino IDE or PlatformIO
- AUnit library
- Open
test/test_main.cppin Arduino IDE. - Select your board: Arduino Uno R4 WiFi.
- Upload the sketch.
- Open Serial Monitor to view test results.
pio test -e uno_r4_wifi
Make sure your platformio.ini defines the test environment.
Since AUnit is Apache 2.0 licensed, you're good β this satisfies the FLOSS requirement.
Later, if you want to automate this fully:
yaml
name: Arduino Tests
on: [push, pull_request]
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install PlatformIO run: pip install platformio - name: Run Unit Tests run: pio test