2018-01-14 09:07 PM
My code:
public STReader LowLevel;
LowLevel = new STReader();
boolean res = LowLevel.connect();java.util.List<byte[]> uidList;
IEMVCard card = new IEMVCard(); while (true) { try { uidList = LowLevel.getTransceiveInterface().inventory(RFReaderInterface.InventoryMode.NFC_TYPE_4A); if (!uidList.isEmpty()) {System.out.println('Detected');break;
}} catch (Throwable ex) {
ex.printStackTrace(); return card; } }I trying it with different EMV cards by VISA.
It works with some cards but not works with another ones - just not detects them.
Otherwise, ST25R3911B Discovery.exe in Polling tab sees all these cards and they all are same type - ISO14443-A!
Why so?
P.S. You can just give me sample usage based on ST25R3911DISCOComm.dll instead of Java ST25 SDK
Solved! Go to Solution.
2018-01-16 05:28 AM
Hello Ivan,
Thanks for your question.
What version of the
ST25R3911B Discovery.exe program are you using?
Do you already know the UIDs of the cards that you are trying to detect and fail? Are they 4, 7 or 10 byte long? Could you please give us an example of UID format?
The ST25 SDK contains a RF library that is independent from readers. As shown in your code excerpt, each reader must provide a RFReaderInterface implementation.
The STReader library provided in the ST25 SDK contains an implementation for the ST25R3911B-DISCO board. A Java Native Interface (JNI) is used for the library to interact with the native ST25R3911 dll. The JNI uses its own anti-collision algorithm, different from the native ST25R3911 firmware. So this is already one difference.
Version 1.0.1 of the ST25 SDK focuses on tags from the ST25 family. It has not been tested with EMV cards but basic discovery should function if those tags follow ISO and NFC Forum protocols.
Today, only ISO15693 and ISO14443-A protocols are supported by the ST25 SDK and the ST Reader implementation. ISO 14443-B (used in some EMV cards) is not yet covered. So EMV cards based on ISO 14443-B will not respond to the inventory request.
However you mention in your mail that all cards are of type Iso14443-A.
You can try varying the distance of the cards to the reader's antenna. The
ST25R3911B Discovery.exe programs tunes the reader in the most efficient way. This tuning is not done with the ST25 SDK implementation and may result in a bad reader calibration.
For information, we are in the process of rewriting the JNI to provide better Iso14443-A support. This may improve EMV cards detection.
Check again in a few weeks for a new version of the SDK.Cheers.
2018-01-16 05:28 AM
Hello Ivan,
Thanks for your question.
What version of the
ST25R3911B Discovery.exe program are you using?
Do you already know the UIDs of the cards that you are trying to detect and fail? Are they 4, 7 or 10 byte long? Could you please give us an example of UID format?
The ST25 SDK contains a RF library that is independent from readers. As shown in your code excerpt, each reader must provide a RFReaderInterface implementation.
The STReader library provided in the ST25 SDK contains an implementation for the ST25R3911B-DISCO board. A Java Native Interface (JNI) is used for the library to interact with the native ST25R3911 dll. The JNI uses its own anti-collision algorithm, different from the native ST25R3911 firmware. So this is already one difference.
Version 1.0.1 of the ST25 SDK focuses on tags from the ST25 family. It has not been tested with EMV cards but basic discovery should function if those tags follow ISO and NFC Forum protocols.
Today, only ISO15693 and ISO14443-A protocols are supported by the ST25 SDK and the ST Reader implementation. ISO 14443-B (used in some EMV cards) is not yet covered. So EMV cards based on ISO 14443-B will not respond to the inventory request.
However you mention in your mail that all cards are of type Iso14443-A.
You can try varying the distance of the cards to the reader's antenna. The
ST25R3911B Discovery.exe programs tunes the reader in the most efficient way. This tuning is not done with the ST25 SDK implementation and may result in a bad reader calibration.
For information, we are in the process of rewriting the JNI to provide better Iso14443-A support. This may improve EMV cards detection.
Check again in a few weeks for a new version of the SDK.Cheers.