Skip to main content
Visitor II
June 26, 2019
Solved

Example of using the new iOS 13 CoreNFC

  • June 26, 2019
  • 7 replies
  • 3940 views

does ST have examples of using the new NFCTagReaderSession which works with M24LR16E and up. examples of using NFCISO15693Tag protocol methods: readSingleBlock, writeSingleBlock, lockBlock, readMultipleBlocks, writeMultipleBlocks, getMultipleBlocksSecurityStatus, customComand, select

    This topic has been closed for replies.
    Best answer by JL. Lebon

    ​Hello,

    Yes, unfortunately, I'm sure.

    The M24LR16E (and M24LR64E) requires 2 bytes to code the block address in the Read Single block command, which is not standard. it also requires the "Protocol_extension_flag" to be set in the request, which is also not standard. This means that the Read Single Block (and Write Single Block) commands are not supported by iOS, which sticks to pure ISO15693.

    All other M24LR16E commands are standard, which explain that iOS is seeing the tag (using the Inventory command).

    Best regards.

    7 replies

    ST Employee
    June 28, 2019

    ​Hello,

    Actually, the M24LR16E (and also the M24LR64E) is not supported by iOS (any version).

    Only the M24LR04E is supported by iOS in the M24LR family.

    If you need more than 4Kbits of memory, you can switch to the ST25DV16K (or ST25DV64K) which is also a long range tag (ISO15693/NFC-V) and is fully supported by iOS 13.

    Best regards.

    dmurphyAuthor
    Visitor II
    June 28, 2019

    Are you sure? i'm using beta 2 of iOS 13 and i can detect the tag using NFCTagReaderSession and read the manufacture code and and unique id (so it is connecting). but the read/write block comands and custom commands don't seem to working

    https://developer.apple.com/documentation/corenfc/nfctagreadersession

    https://developer.apple.com/documentation/corenfc/nfciso15693tag

    JL. LebonAnswer
    ST Employee
    July 1, 2019

    ​Hello,

    Yes, unfortunately, I'm sure.

    The M24LR16E (and M24LR64E) requires 2 bytes to code the block address in the Read Single block command, which is not standard. it also requires the "Protocol_extension_flag" to be set in the request, which is also not standard. This means that the Read Single Block (and Write Single Block) commands are not supported by iOS, which sticks to pure ISO15693.

    All other M24LR16E commands are standard, which explain that iOS is seeing the tag (using the Inventory command).

    Best regards.

    Visitor II
    November 16, 2021

    Hi @JL. Lebon_O​,

    Is this still the case? (that there is no way use read and write operations for M24LR16E on iOS)

    ST Employee
    November 17, 2021

    Hello,

    Unfortunately, this is still the case in iOS 15. To my knowledge, there is no plan to ever support in iOS.

    best regards.

    Visitor II
    November 19, 2021

    Thanks for the feedback, one more question.

    Do you know if this would be possible with a BLE-NFC converter or at the end of the day its still a nfc connection that's being made and we would get the same issue?

    ST Employee
    November 19, 2021

    Hello,

    I'm not sure of I understand your question: what do you want to do with a BLE-NFC converter ? Which BLE-NFC controller ?

    As suggested in a above post, I strongly recommend you to switch to the ST25DV16K in place of the M24LR16E. This tag is a more recent version of the M24LR16. It has the same functionalities (plus many more) and is fully supported by iOS. It would be a much simpler solution than any BLE-NFC converter in my opinion.

    Best regards.

    Visitor II
    December 6, 2024

    Hello,

    I am currently trying to use the NFC functionality on iOS 18.1.1 with an iPhone 14 Pro.

    1. Is the "M24LR16E-R" chip still unsupported?

    2. I would like to know if the "ST25DV16KC-IE6S3" chip is supported.

    Thank you.