Protocol ID template

Overview

Use this template to read a card's protocol-level identifier. This could be for instance:

  • an ISO/IEC 14443 type A UID,
  • an ISO/IEC 14443 type B PUPI,
  • an ISO/IEC 15693 UID,
  • etc.

Note

Due to privacy concerns, a lot of contactless smartcards as well as all NFC mobile phones running in card emulation mode use a random protocol-level identifier. Even if this template is easy and convenient for a few legacy systems, reading an actual value (with some security) should always be preferred.

Configuration

Register t0: select the ID template and filter card technologies

Register 03t0 (1 byte) selects the template. Use one of the following values to activate this template, and define which technologie(s) the reader shall look for.

Value Technologie(s) Role
01 ISO/IEC 14443-A only (NFC-A) Read UID
02 ISO/IEC 14443-B only (NFC-B) Read PUPI
03 ISO/IEC 14443 A or B Read UID or PUPI
04 ISO/IEC 15693 only (NFC-V) Read UID
0F ISO/IEC 14443 A or B, 15693 Read UID or PUPI
20 Kovio RF Barcode Read 128- or 256-bit RF barcode ID
21 Innovision/T1T
22 ST MicroElectronics SR
23 ASK CTS256B / CTS512B
24 Inside PicoPass / HID iClass B
28 FeliCa
2A Inside PicoPass / HID iClass V
2C Innovatron Calypso card Read DIV
FF all Read any protocol-level ID

Register t1: output format

Register 03t1 (1 byte) defines the output format.

Byte Bits Content
0 7-6 Direction
00 : direct direction (as it is transmitted on the RF interface)
01 : RFU
10 : reverse direction (swap bytes) for ISO/IEC 14443 type A short UIDs (4 bytes) only
11 : reverse direction (swap bytes) for all technologies
5 RFU, must be 0
4 Suppress leading zeros
0 : keep all digits
1 : suppress digit 0 on the left
3-0 Format and length
0000 : Decimal, 4 bytes as 10 digits
0001 : Raw/Hexadecimal, 4 bytes
0010 : Raw/Hexadecimal, 8 bytes
0011 : Raw/Hexadecimal, 5 bytes
0100 : Raw/Hexadecimal, 10 bytes
0101 : Raw/Hexadecimal, 7 bytes
0110 : Raw/Hexadecimal, 11 bytes
0111 : RFU
1000 : Raw/Hexadecimal, 16 bytes
1001 : Raw/Hexadecimal, 20 bytes
1010 : Raw/Hexadecimal, 24 bytes
1011 : Raw/Hexadecimal, 32 bytes
1100 : Decimal, 5 bytes as 12 digits
1101 : Decimal, 5 bytes as 13 digits
1110 : Decimal, variable length
1111 : Raw/Hexadecimal, variable length
1 7 RFU, must be 0
6-4 Drop first bits (000 i.e. 0 to 111 i.e. 7)
3-0 Drop first bytes (0000 i.e. 0 to 1111 i.e. 15)

Register t2: output prefix

Register 03t2 defines the output prefix. Refer to Template engine : Output Prefix.