Projekt
Für ein Projekt brauchten wir großflächige NFC-Tag-Arrays. Um das Positions-Register der Tags (Block 0x10 im NTAG-Speicher) schnell zu beschreiben, fiel das Smartphone leider durch. Deshalb habe ich einen Handheld-Programmer gebaut, um die Tags einerseits schnell beschreiben, aber auch zählen und verifizieren zu können.
Versuche gerne, das emulierte Gerät zu verwenden und führe die Aufgaben nacheinander aus.
Der NFC-Programmer hat auf der Unterseite ein NFC-Lesemodul direkt unter der LED. Wenn das Lesemodul über einem Tag („Täg“ ausgesprochen) positioniert wird, kann der NFC-Programmer den Tag lesen und beschreiben.
Der Tag ist in dem Fall ein digitaler Speicher. Wichtig zu wissen: Er hat eine Hardware-ID (sie ist einzigartig, jeder Tag hat eine andere) und den Speicher, den wir hier mit unserer eigenen ID beschreiben.
Somit beschreibt der NFC-Programmer jeden Tag nur einmal und listet dafür im Verborgenen alle Hardware-IDs auf, damit er genau weiß, welchen er bereits beschrieben oder gelesen hat und welchen nicht. Diese Liste merkt er sich, solange geschrieben, gelesen oder gezählt wird. Wechselt man den Modus, ist die Liste wieder leer.
Die Tasten musste ich doppelt belegen: Auf dem Display steht stets, was der lange und der kurze Tastendruck auslöst.
Die LED zeigt an, ob ein Tag bereits gelesen/beschrieben wurde oder ob das Gerät ihn zum ersten Mal sieht.
Man muss noch die ID bestätigen und kann dann die Tags beschreiben. Möchte man eine andere ID schreiben, muss man zurück ins vorherige Menü.
Liest die IDs aus den Tags aus und listet sie so auf, dass man sogar prüfen kann, welche IDs vertreten waren.
Dieser Modus diente dazu, das Zählen zu beschleunigen: Die gespeicherte ID wird gar nicht erst ausgelesen. Nur anhand der Hardware-ID wird das Tag-Array gezählt, um zu wissen, wie viele Tags im Array verbaut worden sind.
Hier werden allgemeine Informationen über den Programmer ausgegeben: z. B. wie viele Tags der NFC-Programmer in seinem Leben bereits beschrieben und gelesen hat.
Emulation: es wird nichts gefunkt und nichts gespeichert. Zähler gelten nur für diese Sitzung.