Supported card types
Here, you can find an overview of the card types that our readers support. Below, we explain how we identify the card type detected by a reader.
Required firmware
The below information applies to the current stable versions of our standard firmware:
We test all features thoroughly via automated robotic end tests. If you're experiencing a bug, need further commands for a specific card type, or want to use a different firmware, please get in touch.
Overview
This overview provides the following information per card type:
- Hexadecimal representation
- Types of numbers you can read
- Commands via which you can interact with the card
125 kHz cards
Product name |
Hex code
The hex code returned for this card type by the
VHL.Select command. Learn how this hex code is determined |
Autoread
In Autoread mode, the reader can extract the following number(s)
depending on the card type:
|
VHL commands VHL commands supported by the card type in addition to the VHL.Select command. | Low-level commands | Remarks |
---|---|---|---|---|---|
ATMEL ATA5575M1 Unique Format | 0x81 | UID | VHL.GetSnr | EM.Read4100 | |
AWID Proximity/LF | 0x89 | UID | VHL.GetSnr | HID.AwidRead | |
Cardax | 0x8F | UID | VHL.GetSnr | - |
Reader config needed to read UID; UID is returned as raw data Card obfuscates the UID encoding. Thus, the reader returns the unique raw binary data stream instead. |
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 |
Farpointe Pyramid | 0x84 | UID | VHL.GetSnr | HID.PyramidRead | |
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 ACCESS200 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 ACCESS200 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 ACCESS200 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 ACCESS200 readers using Wiegand
|
Miro | 0x81 | UID | VHL.GetSnr | EM.Read4100 | |
QuadraKey | 0x87 | UID | VHL.GetSnr | QKey cmd group | |
Rosslare | 0x81 | UID | VHL.GetSnr | EM.Read4100 | |
Secura Key | 0xA0 | UID | VHL.GetSnr | ASK.SecuraKeyRead | |
Sokymat UNIQUE | 0x81 | UID | VHL.GetSnr | EM.Read4100 |
13.56 MHz cards
Product name |
Hex code
The hex code returned for this card type by the
VHL.Select command. Learn how this hex code is determined |
Autoread
In Autoread mode, the reader can extract the following number(s)
depending on the card type:
|
VHL commands VHL commands supported by the card type in addition to the VHL.Select command. | Low-level commands | Remarks |
---|---|---|---|---|---|
FeliCa | 0x70 | UID PCN |
VHL.GetSnr VHL.Read VHL.Write | Felica cmd group |
Firmware supports access without authentication; 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
The default hex value is 0x60.
The other values indicate less common card types.
These card types are only supported by ISO readers.
0x42 0x50 |
UID PCN |
VHL.GetSnr VHL.Read | - |
PCN requires a reader config; VHL.Read not supported by ISO readers |
HID iCLASS SE |
0x1x
HID iCLASS SE is based on various ISO 14443-compatible
technologies such as MIFARE DESFire (0x14). Thus, the reader
may return any card type in the value range 0x10-0x1F. Learn how this hex code is determined |
UID PCN |
VHL.GetSnr | - |
PCN requires an HID iCLASS SE Processor
and a reader config; PCN not supported by LEGIC readers |
HID iCLASS SR, Seos (if HID iCLASS SE Processor not built into the reader) | 0x60
The default hex value is 0x60.
The other values indicate less common card types.
These card types are only supported by ISO readers.
0x42 0x50 |
UID PCN |
VHL.GetSnr | - |
PCN requires an HID iCLASS SE Processor
and a reader config; PCN not supported by LEGIC readers |
HID iCLASS Seos UID enabled, Inside PicoPass | 0x60
The default hex value is 0x60.
0x42 and 0x50 indicate less common card types.
These card types are only supported by ISO readers. Since HID iCLASS Seos is based on various ISO 14443-compatible technologies such as MIFARE DESFire (0x14), the reader may return any card type in the value range 0x10-0x1F. Learn how this hex code is determined 0x42 0x50 0x1x |
UID | VHL.GetSnr | - | |
ISO 14443 Type A general (e.g. Rijkspas, NFC Forum Type 1-4 Tag, NXP ProX, NXP SmartMX, OneSMART PayPass, Infineon my-d proximity) | 0x1x
In general, the reader returns a card type in the value range
0x10-0x1F for any ISO 14443 A-compatible card. Depending on
the transponder, the reader may return other values besides
the card types mentioned in this list (this applies
e.g. to NXP SmartMX/JCOP cards). Learn how this hex code is determined |
UID OneSMART PayPass cards have unique application numbers that may or may not be identical with the chip serial number Learn more | VHL.GetSnr | iso14a cmd group | Reading the Rijkspas UID using Autoread mode is not supported by standard firmware |
ISO 14443 Type B general (e.g. Calypso, CEPAS, SRI512/SRT512) | 0x40 0x41 |
UID Calypso and CEPAS cards have unique application numbers that may or may not be identical with the chip serial number Learn more | 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
Legic advant is based on various ISO 14443-compatible
technologies such as MIFARE DESFire (0x14). Thus, the
reader may return any card type in the value range
0x10-0x1F. Learn how this hex code is determined (on ISO readers) 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 | Mif cmd group | PCN requires a reader config |
MIFARE DESFire, -EV1 (2k, 4k, 8k), -EV2, -EV3 | 0x14 | UID PCN |
VHL.GetSnr VHL.Read VHL.Write | 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, -EV2 | 0x10 (L1) 0x17 (L2) L2 is legacy. Once discontinued, it will be mapped to the card type ISO 14443 Type A general with the hex value 0x16. 0x19 (L3) |
UID PCN |
VHL.GetSnr VHL.Read VHL.Write | Mif cmd group |
PCN requires a reader config; for high security requirements, the PCN can be read with an NXP MIFARE SAM; L2 is legacy and not fully supported; all other features fully supported with firmware 1100 v2.00 or above. |
MIFARE Ultralight, -C, -EV1 | 0x13 | UID PCN |
VHL.GetSnr VHL.Read VHL.Write | Ultralight cmd group | PCN requires a reader config; VHL.Read and VHL.Write not supported by Ethernet firmware |
NFC Forum Tag Types 2-5 | Hex code of card type | Not relevant | VHL.GetSnr VHL.Read VHL.Write | Low-level commands of card type | Firmware supports physical access to card; reading metadata and interpreting/extracting data must be done by the host. |
ST SRIX | 0x90 | UID | VHL.GetSnr | SRIX cmd group |
UIDs of ISO 14443 cards
Among the many ISO-14443 implementations, there are cards such as Calypso, CEPAS, and OneSMART PayPass that are designed for specific applications. These applications have their own unique numbers that may or may not be identical with the UID of the card (i.e. chip serial number).
Under certain conditions, BALTECH readers can be configured to autonomously read both numbers:
UID of the card (chip serial number)
Configuration
- Configure the RFID interface with the component Autoread ISO 14443 Type A UID or Autoread ISO 14443 Type B UID, respectively.
- If you're unsure, whether your card is type A or B, you can identify it as described here.
Prerequisites
- The card must return its real UID, i.e. its real chip serial number.
- If it returns a random ID, you can read the application number instead (see below).
Application number
The Calypso, CEPAS, and OneSMART PayPass applications have their own unique numbers, which are stored in a file in the card's memory. These numbers are referred to as follows:
- Calypso: Application serial number
- CEPAS: CAN number
- OneSMART PayPass: PAN
Configuration
- Configure the RFID interface with the component Autoread ISO 7816-4 Number in File.
- In the component, specify a list of Select commands to select the file where the number is stored.
- After the last Select command, a Binary Read (or optionally aCyclic Read) is executed implicitly.
Prerequisites
- Exact address of the number, i.e. file and position within file.
- No encryption keys are required to access the file in which the number is stored.
- The number can be read with the ISO 7816-4 Binary Read or Cyclic Read command.
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.