Unofficial python library for Fonkan FM50x series UHF RFID readers (ISO18000-6C/EPC Class 1 Gen 2).
This is a reverse-engineered library, since Fonkan did not provide me with any SDK or protocol documentation when I bought the reader, even though I asked for it.
For more details, read FM50x_specs.md
- Model: FM-50x family (FM-503/FM-505/FM-507...)
- Interface: UART (i.e. over USB with the provided USB adapter)
A small tag searching tool is provided in fonkanfm50x/__main__.py, which can be run with:
uv run python3 -m fonkanfm50xPretty much self-described in the type signatures and docstrings. For specific implementation details, read FM50x_protocol.md
from fonkanfm50x import FonkanUHF
import time
if __name__ == '__main__':
with FonkanUHF() as reader:
version = reader.get_reader_firmware()
serial = reader.get_reader_id()
print(f"Connected to reader id: {serial} | Firmware version: {version}")
# Find more commands in fonkanfm50x/__main__.py- reliable reader/counter
- connection management & interface class
- device configuration: power, region, baudrate...
- tag id reading methods
- multiple tag reading (with CRC check)
- multiband tag reading
- GPIO control (untested)
- generator multi-tag reading (not just a for loop return)
- simple EPC tag ID manufacturer identification
- writer/password-protected operations
- password usage (simplified, as argument?)
- tag write operations (read/write memory, lock, kill...)
- advanced G1 G2 settings (what's that?)