A cross-platform Flutter application for reading and writing NFC/RFID cards using the PN532 module via USB/TTL serial connection.
- Device Connection: Auto-detect and connect to PN532 devices via serial port
- Read Card: Read Mifare Classic 1K/4K card data with customizable keys
- Full card reading (all sectors)
- Single sector reading
- Single block reading
- Hex data visualization with color-coded blocks
- Write Card: Write data to blank or UID cards
- Load data from saved dump files
- Clone from current read buffer
- Support for manufacturer block (Block 0) writing
- Saved Cards: Manage saved card dump files (.dump, .mfc, .bin)
- Save read card data to file
- Load card data for writing
- Multi-language Support: English, Simplified Chinese, Traditional Chinese
- Modern UI: Minimalist design with soft color palette and smooth animations
- macOS
- Windows(Not Tested)
- Linux(Not Tested)
- PN532 NFC/RFID module (USB/TTL serial connection)
- Mifare Classic 1K/4K cards
- Flutter SDK (version 3.10.3 or higher)
- A PN532 NFC module connected via USB/TTL adapter
-
Clone the repository:
git clone https://github.com/FanBB2333/MTM.git cd MTM -
Install dependencies:
flutter pub get
-
Run the application:
flutter run -d macos
-
Connect Device:
- Navigate to the Connect page
- Click the refresh button to scan for available serial ports
- Select your PN532 device from the list to connect
-
Read Card:
- Go to the Read Card page
- Select reading mode (Full Card / Sector / Block)
- Enter authentication keys if needed (default: FFFFFFFFFFFF)
- Place a card on the reader and click "Start Reading"
- View the card data in hex format
-
Write Card:
- Go to the Write Card page
- Load card data from a saved file or use data from a previous read
- Place a blank card on the reader and start writing
-
Save/Load Card Data:
- After reading a card, click "Save" to export the data to a file
- Use the Saved Cards page to manage your dump files
-
Settings:
- Configure application settings such as theme and language
flserial: Serial port communicationfile_picker: File save/load dialogsgoogle_fonts: Typographyflutter_localizations: Multi-language supportlibnfc: NFC communication and reader initialization
This project is for personal/educational use.
- Inspired by Chameleon Ultra GUI for UI design
- PN532 protocol documentation




