Supported card types
Here, you can find an overview of the card types that our readers support. Below, we explain how we identify the type of a card detected by a reader.
Overview
This overview applies to the following firmware versions:
- FW 1100 v1.22.00 and above (for ID-engine Z and ACCESS200)
- FW 1094 v.1.03.00 and above (for ID-engine XE)
For each card type, you can see the hexadecimal representation, the types of numbers you can read, and via which commands you can interact with the card.
125 kHz cards
Product name |
Hex code
Learn how we determine this code |
Autoread
|
VHL commands
|
Low-level commands | Remarks |
---|---|---|---|---|---|
ATMEL ATA5575M1 Unique Format | 0x81 | UID | VHL.GetSnr | EM.Read4100 | |
AWID Proximity/LF | 0x89 | UID | VHL.GetSnr | HID.AwidRead | |
Cardax | Not unique | UID | VHL.GetSnr | - |
Reader config needed to read UID; UID is returned as raw data |
CASI-RUSCO | 0x81 | UID | VHL.GetSnr | EM.Read4100 | |
Cotag | 0xA3 | UID | VHL.GetSnr | ASK.CotagRead | Not supported by ID-engine XE 10091-3xx-yy |
Deister | 0x8D | UID | VHL.GetSnr | Hitag cmd group | |
EM 4005 EM 4100 EM 4102 EM 4105 EM 4200 |
0x81 | UID | VHL.GetSnr | EM cmd group | |
EM 4205 EM 4305 |
0x80 | UID PCN |
VHL.GetSnr VHL.Read VHL.Write | EM cmd group | PCN requires a reader config |
EM 4450 EM 4550 |
0x83 | UID PCN |
VHL.GetSnr VHL.Read | EM cmd group | PCN requires a reader config |
G-Prox | 0xA1 | UID | VHL.GetSnr | ASK.GproxRead | |
HID Prox | 0x8A 0x85 |
UID | VHL.GetSnr | HID.ProxRead | Prox license required;
card type not supported by ACCESS2xx readers using Wiegand
|
HITAG 1 | 0x8C | UID PCN |
VHL.GetSnr VHL.Read VHL.Write | Hitag cmd group |
PCN requires a reader config; only unencrypted PCNs supported; VHL.Read and VHL.Write only via plain access |
HITAG 2 | 0x8D 0x8E |
UID | VHL.GetSnr | Hitag cmd group | Only unencrypted PCNs supported |
HITAG S | 0x8C | UID PCN |
VHL.GetSnr VHL.Read VHL.Write | Hitag cmd group | PCN requires a reader config; only unencrypted PCNs supported; VHL.Read and VHL.Write only via plain access |
IDTECK | 0xA4 | UID | VHL.GetSnr | HID.IdteckRead | Not supported by ID-engine XE 10091-3xx-yy |
Indala ASP | 0x88 | UID | VHL.GetSnr | HID.IndalaRead |
Prox license required;
card type not supported by ACCESS2xx readers using Wiegand;
UID is returned as raw data
|
Indala ASP+ | 0xA2 | UID | VHL.GetSnr | HID.IndalaSecureRead |
Prox license required;
card type not supported by ACCESS2xx readers using Wiegand;
UID is returned as hash value
|
ioProx | 0x8B | UID | VHL.GetSnr | HID.IoproxRead | |
Keri | 0x86 | UID | VHL.GetSnr | HID.IndalaRead | Prox license required;
card type not supported by ACCESS2xx readers using Wiegand
|
Miro | 0x81 | UID | VHL.GetSnr | EM.Read4100 | |
Pyramid | 0x84 | UID | VHL.GetSnr | HID.PyramidRead | |
QuadraKey | 0x87 | UID | VHL.GetSnr | QKey cmd group | |
Rosslare | 0x81 | UID | VHL.GetSnr | EM.Read4100 | |
SecuraKey | 0xA0 | UID | VHL.GetSnr | ASK.SecuraKeyRead | |
Sokymat UNIQUE | 0x81 | UID | VHL.GetSnr | EM.Read4100 |
13.56 MHz cards
Product name |
Hex code
Learn how we determine this code |
Autoread
|
VHL commands
|
Low-level commands | Remarks |
---|---|---|---|---|---|
FeliCa | 0x70 | UID PCN |
VHL.GetSnr VHL.Read VHL.Write | Felica cmd group |
PCN requires a reader config; PCN, VHL.Read, VHL.Write, and low-level commands not supported by LEGIC readers |
Fujitsu MB89R118, -119 (ISO15693 FRAM) | 0x30 | UID PCN |
VHL.GetSnr VHL.Read VHL.Write | iso15 cmd group |
PCN requires a reader config; card not supported by LEGIC readers |
HID iClass, iClass SR | 0x60 | UID PCN |
VHL.GetSnr VHL.Read | - |
PCN requires a reader config; VHL.Read not supported by ISO readers |
HID iClass SE |
0x1x |
UID PCN |
VHL.GetSnr | - |
PCN requires an HID SE Processor
and a reader config; PCN not supported by LEGIC readers |
HID iClass SR, Seos (if SE Processor not built into the reader) | 0x60 | UID PCN |
VHL.GetSnr | - |
PCN requires an HID SE Processor
and a reader config; PCN not supported by LEGIC readers |
HID iClass Seos UID enabled, Inside PicoPass | 0x1x 0x60 |
UID | VHL.GetSnr | - | |
ISO 14443 Type A general |
0x1x |
UID | VHL.GetSnr | iso14a cmd group | |
ISO 14443 Type B general |
0x40 0x41 |
UID | VHL.GetSnr | iso14b cmd group | Card not supported by LEGIC readers |
ISO 15693 general | 0x30 | UID PCN |
VHL.GetSnr VHL.Read VHL.Write | iso15 cmd group | PCN requires a reader config |
LEGIC advant ISO 14443 | 0x1x 0x18 (on LEGIC readers) |
UID PCN |
VHL.GetSnr VHL.Read VHL.Write | Legic cmd group |
PCN requires a reader config; PCN, VHL.Read, VHL.Write, and low-level commands not supported by ISO readers |
LEGIC advant ISO 15693 | 0x30 (on ISO readers) 0x32 (on LEGIC readers) |
UID PCN |
VHL.GetSnr VHL.Read VHL.Write | Legic cmd group |
PCN requires a reader config; PCN, VHL.Read, VHL.Write, and low-level commands not supported by ISO readers |
LEGIC prime | 0xC0 | UID PCN |
VHL.GetSnr VHL.Read VHL.Write | Legic cmd group |
PCN requires a reader config; card not supported by ISO readers |
MIFARE Classic (1k, 4k, Mini), -EV1 | 0x10 | UID PCN |
VHL.GetSnr VHL.Read VHL.Write VHL.Format | Mif cmd group | PCN requires a reader config |
MIFARE DESFire, -EV1 (2k, 4k, 8k), -EV2 | 0x14 | UID PCN PCN |
VHL.GetSnr VHL.Read VHL.Write VHL.Format | Desfire cmd group | PCN requires a reader config; for high security requirements, the PCN can be read with an NXP MIFARE SAM |
MIFARE Plus (-S, -X, L1, L2, L3), -EV1 | 0x10 (L1) 0x17 (L2) 0x19 (L3) |
UID PCN |
VHL.GetSnr VHL.Read VHL.Write VHL.Format | Mif cmd group |
PCN requires a reader config; for high security requirements, the PCN can be read with an NXP MIFARE SAM; full feature support with new FW to be released soon; card not supported by LEGIC readers |
MIFARE Ultralight, -C | 0x13 | UID | VHL.GetSnr | Ultralight cmd group | |
NXP NTAG21x | 0x1x |
UID | VHL.GetSnr | iso14a cmd group | Low-level commands not supported by LEGIC readers |
How are card types determined?
Since there are no reliable identification standards amongst card manufacturers, we use a heuristic that examines the UID, its length, and other (partially card-family-specific) information as described below.
Due to the lack of standards, we cannot guarantee the card type is always identified correctly.
ISO 14443 Type A card types (0x1x)
Remarks
- All values are hex.
- x = Don't care
- Bits are numbered from 0.
- The UID is equal to the VHL serial number.
- UID[0] = most significant byte of UID
- UID[n] = least significant byte of UID
VHL card types with SAK(bit 5) = 1
VHL card type | Identification |
---|---|
MifareDesfire (0x14) | SAK = 20 ATQA = x3x4Length ATR historical bytes = 1 |
MifarePlusL3 (0x19) | SAK = 20 ATQA = 00xn, for n in [2..7, A..F]Last bytes of ATR equal to [C1, 05, 2F, 2F] |
Iso14443aInterIndustry (0x12) | SAK = 20 ATQA = 0x48 |
Iso14443aIntIndustryMif (0x16) | All others |
VHL card types with SAK(bit 5) = 0 and UID length = 04
VHL card type | Identification |
---|---|
InfineonSle55 (0x15) | SAK = 00 UID[0] = F0 |
MifareClassic (0x10) | SAK in [08, 18, 09, 88] |
MifarePlusL2 (0x17) | SAK in [10, 11] |
Iso14443aGeneric (0x11) | All others |
VHL card types with SAK(bit 5) = 0 and UID length in [07, 0A]
VHL card type | Identification |
---|---|
MifareUltraLight (0x13) | SAK = 0 ATQA = 0044 UID[n] = 04 |
MifareClassic (0x10) | SAK in [08, 18] UID[n] = 04 |
MifarePlusL2 (0x17) | SAK in [10, 11] UID[n] = 04 |
InfineonSle55 (0x15) | UID[n] = 05 |
Iso14443aGeneric (0x11) | All others |
ISO 14443 Type B card types (0x40/0x41)
VHL card type | Identification |
---|---|
Iso14443bIntIndustry (0x41) | ISO14443-4 flag is set in the ATQB response |
Iso14443bUnknown (0x40) | All others |
LEGIC advant (0x18/0x32)
A LEGIC advant card is based on ISO 15693 or ISO 14443 Type A. The value returned for such a card depends on the type of reader you use.
The standard reader returns the generic ISO card type:
- Iso15693 (0x30) for cards based on ISO 15693
- 0x1x for cards based on ISO 14443 Type A
The LEGIC reader returns the LEGIC-based card type:
- LEGICAdvantIso15693 (0x32) for cards based on ISO 15693
- LEGICAdvantIso14443a (0x18) for cards based on ISO 14443 Type A
125 kHz cards (0x8x/0xAx)
Certain card types can be programmed to emulate other card types.
Example: An EM 4205 card can emulate an EM 4100 card.
In this case, the reader returns the original card type (i.e. EM 4205 in the example).
This applies to the following return values:
- EM4205 (0x80)
- Hitag1S (0x8C)
- Hitag2M (0x8D)
- Hitag2B (0x8E)
If the card is positioned at the edge of the antenna field, the reader may detect both card types. To avoid this, configure the reader to scan for 1 card type only.