Schlagwort-Archive: Mifare

5Euro RFID/NFC Modul RC522 zum Auslesen von Mifare Tags

rfid-rc522-module

Das RFID-RC522 Modul stellt wohl den günstigsten Einstieg in die RFID/NFC-Welt dar. Ab ~5 EUR (inkl. Versand) kann man es bei verschiedenen (chinesischen) eBay Verkäufern erwerben. Herz der Platine ist der Reader-Chip MFRC522 von NXP zum Auslesen von ISO/IEC 14443 A/MIFARE Karten. Der Chip kann per I2C, SPI oder UART kommunizieren, das hier beschriebene Modul wird per SPI angesprochen.
Das Modul wird meisstens mit zwei Stiftleisten (gerade und gewinkelt), einem Mifare-Schlüsselanhänger und einer Mifare-Karte geliefert. Hat man eine der Stiftleisten eingelötet kann man es zB mit Dupont Kabelverbindern (male – female) mit einem Arduino verbinden. 7 Verbindungen (SDA an Pin10, SCK an Pin13, MOSI an Pin11, MISO an Pin12, IRQ n.v., GND an GND, RST an Pin5, 3.3V an 3V3) sind erforderlich:
rc522_mf522_arduino_spi

Gegenüber dem etwas teureren PN532 Arduino NFC Shield unterstützt dieses Modul allerdings kein Card-Emulation Mode, d.h. es kann keine NFC-Tags emulieren bzw es kann nicht mit einem NFC-Smartphone kommunizieren.

Source Code/Library

Source Code zum Ansprechen des Boards via Arduino findet man im Netz an verschiedenen Stellen:

Scheinbar basiert der Großteil des Codes auf den Sourcen von WWW.B2CQSHOP.COM / COOQRobot, teils in einer Klasse verpackt, teils einfach nur als C-Funktionen. So mal eben runterladen, Arduino Beispiel Sketch ausführen und Mifare Tag auslesen geht leider nicht auf Anhieb. Das einzige was man mit dem unveränderten Source Code (zB cardRead.ino) anzeigt kann ist die 4-Byte UID einiger Mifare Tags:
cardread_rc522_mifare_uid
Einige Teile des oben verlinkten Source Codes sind schlichtweg fehlerhaft implementiert, beispielweise kann angeblich die Größe des Mifare-Speichers ausgegeben werden („read card storage volume“). Ausserdem funktioniert die Bibliothek nur mit 4-Byte UID Karten; 7-Byte UID Karten können nicht ausgelesen werden, da das ISO14443 Antikollisionsverfahren nicht korrekt genutzt wird.

Mifare Classic Tags auslesen

Einen einfachen Mifare Classic Memory Dump kann aber relativ einfach codiert werden, wenn man weiss wie der Mifare Speicher unterteilt ist und wenn man die korrekten Keys benutzt:

mifare_dump_rc522

Zu Beginn werden die üblichen ISO14443 Parameter (ATQA, SAK, UID) angezeigt, danach erfolgt der Hex-Dump des Speicherinhaltes.

Den Source Code RC522DumpMifare.ino dazu gibt es in meinem Repository bei Github. Einige TODOs sind im Code noch zu implementieren, zB das Selektieren von Karten mit 7Byte-UID.

UPDATE 2013-08-08: 7-byte-UID Anzeige und RATS-Handling ansatzweise ergänzt

RC522-RFID-Modul am Raspberry Pi betreiben

Das RC522-Modul kann natürlich auch mit anderen Evalboards verbunden werden, zB mit dem Raspberry Pi. Dann kann man es sogar mit Python programmieren und muss nicht erst umständlich einen Microcontroller flashen.

Evtl werde ich das Board auch demnächst einmal am Raspberry Pi anschliessen und einen entsprechenden Artikel dazu schreiben.

Kompatibilität

Einige Mifare Karten liessen sich allerdings nicht dazu bewegen mit dem Modul zu sprechen (Karten wurden im Feld nicht einmal erkannt), zB:

  • Mifare Ultralight C (MF0ICU2), 7byte-UID
  • Mifare Classic 1K ‚MF1 IC S5009‘ alias Mifare Plus S (MF1SPLUS60)
  • Mifare DESFire EV1 (MF3ICD21) HW v1.0
  • Mifare DESFire (MF3ICD40) HW v0.2
  • Mifare DESFire EV1 (MF3ICD81) HW v1.0
  • Mifare Classic 1K (emulated)

Evtl ist das Modul nicht korrekt konfiguriert, die Hardware unterstützt die Karten (wieso auch immer) nicht oder die Antenne des Moduls ist nicht korrekt abgestimmt.

Bei folgenden Tags konnte zumindest die UID gelesen werden:

  • Mifare Classic
  • Mifare Classic (MF1S70)
  • NTAG203 (NT2H0301)
  • NTAG215 (NT2H1511) alias amiibo cards
  • NTAG216 (NT2H1611G0DUx)
  • Mifare Classic Futan FM11RF08
  • Mifare Classic Clonable China Card
  • Miafre Ultralight (MF0ICU1) alias GVB card
  • Infineon ??? Chip alias Geldkarte

Links/mehr Info

Am Ende – wie immer – zum Vertiefen ein paar Links bzw Webseiten von anderen Nutzern, die bereits mit dem RC522 herumgespielt haben und was nicht fehlen darf – der Link zum Datenblatt:

Werbeanzeigen