Flipper Zero UHF RFID App v1.1.2
May 7, 2025 ยท View on GitHub
Now available on the official Flipper Zero app catalog!
Please Read This!
If you are unfamilar with the app, please take the time to read through the README as it contains all relevant instructions. Please open a GitHub Issue for any bugs or feature requests. Join this discord channel to talk with other UHF RFID enthusiasts and to track information or updates on the app!
Overview
This app is designed to work with the M6e Nano, M7E Hecto, and YRM100 UHF RFID Readers and the Flipper Zero. This app supports reading up to 150 tags per second (M6E & M7E only), writing to tags (EPC, TID, Reserved, and User Memory Banks), viewing all tag information, saving tags, and more!


**Please note that the EPC value scrolls across the screen.


**Please note that all values scroll across the screen.


Special Note for M6E & M7E Users
Currently, not all features work for the M6E & M7E. In the next release, support for locking, killing, and reading PC/CRC will be added for the M6E & M7E. Stay on the first version of the app to have a more stable version of the app.
Coming Soon
In the future, I plan on developing a custom pcb that utilizes the M6e Nano module offering a powerful UHF Reader that plugs right into the Flipper Zero! Some other feature enhancements to the configuration menu will also be added in the future including antenna selection, saving configuration menu settings, and selecting/detecting/setting custom UHF RFID tag types (adjusting read/write size for memory banks).
Features
- Read and view up to 150 UHF RFID tags at once (M6E & M7E Only)!
- EPC, TID, User, and Reserved Memory Banks
- Can cycle through multiple tags from a single read!
- Save, rename, delete and view UHF tags on your flipper!
- EPC, TID, User, and Reserved Memory Banks
- Write UHF tags
- EPC Memory Bank
- TID Memory Bank (not supported if tag is locked)
- User Memory Bank
- Reserved Memory Bank
- Lock UHF Tags
- Lock each memory bank of the UHF Tag (assuming you know the access password, and the tag isn't permanently locked/unlocked)
- Set access password
- Kill UHF Tags
- Set the kill password
- Permanently inactivate a tag
- UHF RFID Reader Configuration
- Set RF Power
- Set UHF Module
- Set Baud Rate
- Set Region
- Set default access password used for reading/writing/locking operations
- Save on Write (Set this to Yes if you want saved tags to update after writing to them)
- Set antenna type (WIP)
- Features coming soon:
- Set custom size for user/reserved memory banks to read
- Custom PCB with M6e Nano module and external antenna support!
- Adding support for new features for the M6E & M7E
Hardware Requirements
Currently, this Flipper Zero application requires an M6e Nano compatible UHF RFID Reader. I recommend one of the following options:
- SparkFun Simultaneous RFID Reader
- The M7E Hecto that just came out should work too, however, this I haven't been able to test.
- The YRM100 Is now supported for all features!
Additionally, if you are using a M6E or M7E, a Raspberry Pi Zero is required in order to run the ThingMagic Mercury API
- I hope to eliminate the need for the RPi, however, I thought having it could allow for easier adoption of different UHF RFID readers.
Also, you need the Flipper Zero which is available from Flipper Devices.
Setup and Installation
- Clone this GitHub repository to the
applications_userfolder of your Flipper Zero using the firmware of your choice. - Using VSCode with the desired firmware:
- Press
Ctrl+Shift+Bin VScode inside the simultaneous_rfid_reader folder - Select the
Launch App on Flipperoption - If you do not have VScode you can use the following command in your terminal
./fbt COMPACT=1 DEBUG=0 launch APPSRC=applications_user\simultaneous_rfid_reader
- Press
- Now that you have the app set up, you can follow the instructions below to get the Raspberry Pi Zero working correctly (M6E & M7E Users Only!).
YRM100 Wiring

- To connect the YRM100 to the FLipperZero, just follow the schematic above. Then the module should be ready to commuicate over UART!
UHF RFID Reader & Raspberry Pi Zero Setup (M6E & M7E Users Only!)

Hardware Setup:
- Connect the M6e/M7e Nano reader to the Raspberry Pi GPIO pins:
- TX on the M6e/M7e should connect to GPIO pin 15 on the Raspberry Pi Zero
- RX on the M6e/M7e should connect to GPIO pin 14 on the Raspberry Pi Zero
- Ground on the M6e/M7e should connect to ground on the Raspberry Pi Zero

- Connect the Flipper Zero to the Raspberry Pi GPIO Pins:
- TX (pin 13) on the Flipper Zero should connect to GPIO pin 27 on the Raspberry Pi Zero
- RX (pin 14) on the Flipper Zero should connect to GPIO pin 17 on the Raspberry Pi Zero
- Ground on the Flipper Zero should connect to ground on the Raspberry Pi Zero

Software Setup
- Ensure that your Raspberry Pi Zero is flashed with a proper OS such as Raspberry Pi OS.
- Install the Python wrapper for the ThingMagic Mercury API on the Raspberry Pi Zero.
- Download the
pi-zero-uhf.pyprogram to your Raspberry Pi Zero. - Install the
soft_uartmodule using the instructions in the README from this GitHub repository. - Add the following lines to the end of your rc.local file using
sudo nano /etc/rc.local:
/sbin/insmod /Path/To/soft_uart.kosudo python /Path/To/pi-zero-uhf.py &
- Reboot the Raspberry Pi Zero and now the virtual serial port and UHF RFID program will run on boot!
Acknowledgements
I found a few resources useful while developing this app:
-
The
uart_helper, andring_buffersource and header files from Derek Jamison made the communication process between the Flipper Zero and the Raspberry Pi Zero much easier. -
The entire Flipper Zero Tutorials GitHub was a great resource for learning how to develop a Flipper Zero application.
-
The Python Wrapper for the ThingMagic Mercury API is a great tool for working with any ThingMagic readers.
-
The
soft_uartmodule was super helpful for creating another serial port on the Raspberry Pi Zero. -
Most of the functionality for reading, writing, and interacting with the YRM100 module was modified from Frux-C's UHF-RFID App for the FlipperZero.
Contributions
Feel free to reach out, or open a PR for bug fixes, ideas, or new feature requests. This application is still a work in progress, so I am open to new ideas or areas for improvement!
Disclaimer
- I am not responsible for any damage or loss caused by the usage of this app.
- This app will be updated in the future and may contain bugs that haven't been spotted due to my testing environment and hardware setup.
Contact
Riley Haffner