Skip to main content
Visitor II
October 23, 2023
Solved

CR95HF on Arduino Uno Error 88

  • October 23, 2023
  • 9 replies
  • 4229 views

Hello,

I am using the X-Nucleo-NFC03A1 shield with the Arduino Uno. I use the library for the BM019 as an inspiration for reading my tag. Setting the protocol, the echo command and the IDN command all work fine, but when I try to read the UID of the tag I always get the error 88 in my response code meaning invald start of frame. I am using the ISO 15693. Could you help me find the cause of that error and tell me what it means.

For getting the UID I use the commands 0x00 0x04 0x03 0x26 0x01 0x00 as reccomended in the datasheet.

Thanks.

 

    This topic has been closed for replies.
    Best answer by Brian TIDAL

    Hi,

    the antenna of the smartphone is likely smaller than the X-NUCLEO-NFC03A1 one and the output power is probably higher. 

    You can try to adjust the receiver gain. After the protocolSelect command, send a WrReg command to change the receiver gain: {0x09, 0x04, 0x68, 0x01, 0x01, 0x53where correspond to 27dB (see table 32 in the ST25R95 datasheet). Try with the various values (0, 1, 3  ,7, F) and see whether this improves the reception of the tag response. For your information, error 0x88 means invalid Start of Frame. This means that the start of the tag response is corrupted due to RF conditions. Changing the receiver gain may improve this situation.

    Rgds

    BT

     

    9 replies

    Technical Moderator
    October 23, 2023

    Hi,

    can you provide more information about the tag being used (chip manufacturer and model)? You can use an NFC enabled smartphone with an NFC app (such as ST25NFCTap or TagInfo) to retrieve information about the chip manufacturer and model.

    Can you provide a trace of the various commands sent before the Inventory SendRecv command (in particular the protocolSelect command and any Register Read/Write)?

    For your information, an Arduino library for CR95HF RFID/NFC is available on https://github.com/facchinm/CR95HF. Note that BM019 HW and BM019 lib are not provided by ST.

    Rgds

    BT

    JudithAuthor
    Visitor II
    October 23, 2023

    Hi,

    I use a glass tag from EM Microelectronic-Marin SA with a memory size of 208 bytes. At first I sent the IDN command to get the device ID, then I set the protocol to the ISO15693 by sending 0x00 0x02 0x02 0x01 0x0D. I don´t read or write on the tag yet, because I first wanted to test the function of getting the ID. Thank you for the library you showed me, I am going to look into that.

    Thank you

    JudithAuthor
    Visitor II
    October 23, 2023

    It is a type 5 tag.

     

    Technical Moderator
    October 23, 2023

    Hi,

    is it this kind of product?

    BrianTIDAL_0-1698063460624.pngBrianTIDAL_1-1698063536380.png

    Rgds

    BT

    JudithAuthor
    Visitor II
    October 23, 2023

    Hi,

    yes it is.

    Technical Moderator
    October 23, 2023

    Hi,

    I do not have the exact physical dimensions of the antenna of this glass tag but it is likely very small. Thus the coupling with X-NUCLEO-NFC03A1 is probably quite low. A smaller antenna on the reader side would probably be needed to insure a good coupling to deliver enough energy to the tag and have reliable communication.

    Rgds

    BT

    JudithAuthor
    Visitor II
    October 24, 2023

    Hi,

    thank you for your answer. But my smartphone was able to detect the tag and read and write information with the app you recommended and the antenna should be nearly the same size as the one I use, maybe a bit smaller. So why does it work with my smartphone but not with the X-NUCLEO-NFC03A1.

    Regards

    Technical Moderator
    October 24, 2023

    Hi,

    the antenna of the smartphone is likely smaller than the X-NUCLEO-NFC03A1 one and the output power is probably higher. 

    You can try to adjust the receiver gain. After the protocolSelect command, send a WrReg command to change the receiver gain: {0x09, 0x04, 0x68, 0x01, 0x01, 0x53where correspond to 27dB (see table 32 in the ST25R95 datasheet). Try with the various values (0, 1, 3  ,7, F) and see whether this improves the reception of the tag response. For your information, error 0x88 means invalid Start of Frame. This means that the start of the tag response is corrupted due to RF conditions. Changing the receiver gain may improve this situation.

    Rgds

    BT

     

    Technical Moderator
    October 24, 2023

    P.-S. Please let me know which value has improved the reception of the tag response. Thanks

    JudithAuthor
    Visitor II
    October 24, 2023

    Hi,

    I have tried every possible value combination now and non of them have resolved my error. Do you have any other idea of what I can try except for using a different antenna or tag.

    Technical Moderator
    October 24, 2023

    Hi,

    have you tried different position on the reader antenna? For example close to one corner?

    Rgds

    BT

    JudithAuthor
    Visitor II
    October 24, 2023

    Hi,

    yes I have tried that, but the response code stayed at 88.

    Technical Moderator
    October 24, 2023

    Hi,

    I do not believe this will change the issue but let's try to reduce the data rate.

    Change the protocolSelect to use 6kbps (00   02 02 01 2D)

    When sending commands to the tag, set the Data_rate_flag to 0, for example for the inventory: 0x00 0x04 0x03 0x24 0x01 0x00

    Rgds

    BT

    Technical Moderator
    October 25, 2023

    Hi,

    since the CR95HF has joined the ST25R reader family,  ST25R95 is the part numbering for this device and the up to date datasheet is on the ST25R95 webpage: DS12807. Make sure to use the updated version of the datasheet as it fixes several typos: e.g. "NFC Forum tags: Types 1, 2, 3, 4 and 5". You can easily check that type 5 tags are supported by using for example a skipass or tags from ST25-TAG-BAG-AB.

    Here is the typical serial output when a type 5 tag enters in the operating volume of the X-NUCLEO-NFC03A1:

    BrianTIDAL_0-1698221252601.png

    Rgds

    BT