Sesame Ring alias Charlie Card alias MBTA NFC Ticket in Ringform

Sesame_Ring
Kaum nachdem das NFC Ring Kickstarter Projekt erfolgreich beendet wurde startet ein neues Kickstarter Projekt, dass sich einen NFC Ring zum Ziel gesetzt hat: der Sesame Ring. Dieser Ring beinhaltet eine ‚Charlie Card‘ für die MBTA (Massachusetts Bay Transportation Authority = Betreiber des öffentlichen Personennahverkehrs in Boston und Umgebung). Bei erfolgreicher Gründung wird der Ring mit einem 3D-Drucker ausgedruckt. Es stehen deshalb verschiedene Farben (schwarz, weiss, rot, blau, orange, gelb), Muster, Größen zur Auswahl oder es kann auch optional ein eigenes Design verwendet werden.
Quelle:  Kickstarter

Günstige Arduino Komponenten

Manchmal macht es einfach nur Spass bei eBay bzw bei einigen chinesischen Webshops im Arduino Umfeld zu stöbern. Oft stösst man dabei auf sehr günstige Komponenten, die man für das nächste Projekt einsetzen kann. Hier mal eine Liste mit Arduino Komponenten, die in keiner Arduino Bastelkiste fehlen sollten, teils zu unverschämt niedrigen Preisen:

4×4 Matrix Keypad

4x4-Keypad-1

Matrix mit 16 Tastern zum triggern von Events ab ~1.20EUR

4×4 Keypad Matrix mit LEDs

4x4-Keypad-LED

Ebenfalls eine Button Matrix, hier aber gleich mit LEDs inkl. Vorwiderstände ab ~2EUR

SD Card Module Slot

SD_Card_Module

Ethernet-Modul gekauft, aber evtl eins ohne SD-Karte erwischt? Oder soll der Arduino einfach nur sehr viele Logdaten aufnehmen? SD Card Module per SPI anbinden und Daten ab auf die SD-Karte ab ~1.10EUR

(ENC28J60) Ethernet LAN Network Modul

enc28j60-ethernet

Ebenfalls per SPI ansprechbar – das Ethernet LAN Modul. Es ist immer wieder faszinierend wenn man mit dem Arduino einen Webserver betreibt und Sensoren per Browser auslesen kann, ab ~3EUR

Nokia 5110 LCD

nokia5110-lcd

Wenn der serielle Port bereits belegt ist und man somit keine Debugmeldungen mehr anzeigen kann oder wenn der Arduino stand-alone betrieben wird eine Anzeige aber erforderlich ist, ab ~2.40EUR

Wireless Bluetooth Transceiver

hc-06-bluetooth

Arduino Bluetooth Shield zu teuer aber Bluetooth erforderlich, bzw einfach mal Arduino vom Smartphone aus ansteuern? Das Bluetooth Modul (HC-05, HC-06) gibt es in verschiedenen Varianten: nur Slave, Slave + Master, mit und ohne Baseboard (kann dann mit 3.3V bzw 5V betrieben werden), ab ~6EUR

Alle angegebene Preise (inkl Versand) sind mit dem Stand vom 15.08.2013 und können sich somit bereits verändert haben, bzw die Komponenten sind teils sogar bei anderen chinesischen Händlern günstiger zu beziehen. Am besten mal den ChinaPriceFinder anwerfen und vergleichen.

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: