RFIDReader
A Rust-based firmware application for reading and writing ST25TB RFID chips using the LilyGO T-Embed CC1101 device (ESP32-S3 with PN532 NFC module). This tool is particularly useful for interacting with RFID chips commonly found in printer cartridges and other industrial applications.
Key Features
The firmware provides comprehensive functionality for working with ST25TB chips through an intuitive touchscreen interface:
- Complete Chip Operations: Read entire chip contents (up to 256 blocks) and write modified data back
- Data Management: Export chip dumps via serial connection and import hex data for writing
- Interactive Interface: TFT display with rotary encoder navigation for easy menu interaction
- Audio Feedback: Audible beep confirmation for successful read/write operations
- Built-in Hex Editor: Modify chip data directly on the device before writing
Technology Stack
The project leverages modern embedded Rust development:
- Hardware: ESP32-S3 dual-core processor (240MHz) with ST7789V TFT display (170x320)
- NFC Controller: PN532 module via I2C communication
- Language: Rust (no_std bare metal programming)
- Framework: esp-hal hardware abstraction layer
- Protocol: ISO14443-B standard
Supported Chips
Works with various ST25TB family chips and ISO14443-B compatible devices:
- ST25TB04K (512 bytes)
- ST25TB512
- ST25TB02K
- Legacy SRI512/SRIX4K models
User Interface
Navigation is designed for quick and efficient operation:
- Encoder Rotation: Navigate through menu options
- Encoder Button: Select items or enter edit mode
- Back Button: Cancel operations or return to previous menu
- Visual Feedback: Clear on-screen status and confirmation messages
Installation
The project offers flexible deployment options:
- Pre-compiled Binaries: Available through GitHub releases
- Standalone Installation: Flash directly to address 0x0
- Launcher Integration: Deploy via SD card using the Launcher application
Building from Source
cargo build --release
espflash flash target/riscv32imc-esp-espidf/release/rfid-reader
Known Limitations
The developers document some quirks:
- USB Power Dependency: Device works reliably when serial monitor is connected (known as "Observer Effect")
- PN532 Initialization: Occasional automatic firmware retry required for proper setup
Use Cases
This tool is valuable for:
- Printer cartridge chip analysis and modification
- RFID security research and testing
- Industrial automation development
- NFC/RFID prototyping and experimentation
Open Source
Released under the MIT License, the project welcomes community contributions through GitHub. The codebase demonstrates professional embedded Rust development practices and serves as an educational resource for ESP32-S3 and PN532 integration.
Links
- GitHub Repository: bimawa/RFIDReader
- Hardware: LilyGO T-Embed CC1101
- License: MIT
