(Micro)Python class to access the MFRC522 RFID reader
D.Perron Jan. 2024 Add NTAG. mfrc522.py modified. Pico_read.py example contains the NTAG DUMP.
D.Perron Feb. 2021 Add Raspberry Pi Pico compatibility
D.Perron Sept 20 2019 Modification to be able to read 7 and 10 BYTES RFID P.S. I didn't test the write mode.
D.Perron
Sept 15 2021
Addition of RfidAccess Class! this allows to set or read access bits.
Addition of read and write using sector/block and selecting KEYA or KEYB.
Add more examples on how to change access block. (Block3 of each sector).
Basic class to access RFID readers of the type MFRC522. This is basically a re-write of this Python port for the MFRC522. I tried to strip things down and make them more "pythonic" so the result is small enough to run on Micropython boards. I tried the class so far on the ESP8266 and the WiPy.
Put the modules mfrc522.py
, examples/read.py
, examples/write.py
to the root of the flash FS on your board.
For the ESP8266 there are multiple solutions to do that. E.g. use the
WebREPL file transfer, or mpfshell.
I used the following pins for my setup:
Signal | GPIO ESP8266 | GPIO ESP32 | GPIO WiPy | GPIO Pico | Note |
---|---|---|---|---|---|
sck | 0 | 18 | "GP14" | "GP2" | |
mosi | 2 | 23 | "GP16" | "GP3" | |
miso | 4 | 19 | "GP15" | "GP4" | |
rst | 5 | 22 | "GP22" | "GP0" | |
cs | 14 | 21 | "GP14" | "GP1" | SDA on most RFID-RC522 boards |
Now enter the REPL you could run one of the two exmaples:
The Pico_write example has been added but be aware of
- The software treated the memory has 64 sectors of 16 Bytes.
- In reality the mifare card is 16 sectors of 4 block which are 16 byte. The Block 0,1 and 2 are data block. The block 3 is the access block.
- BE AWARE if you write sector (3,7,11,15...,63) then you should know what you do.
- CreateNdefTag.py Explain how to set access block on each sector. It will create an empty NDEF tag.
- EraseNdefTag.py Recreate a blank Mifare tag after you use CreateNdefTag.py.
- ReadNdefTag.py Dump the contents of a NDEF tag.
- Pico_read.py Dump the contents of a Mifare card using the default key.
- Pico_read.py Dump the contents of NTAG card .