cancel
Showing results for 
Search instead for 
Did you mean: 

Example of using the new iOS 13 CoreNFC

dmurphy
Associate II

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

1 ACCEPTED SOLUTION

Accepted Solutions
JL. Lebon
ST Employee

​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.

View solution in original post

7 REPLIES 7
JL. Lebon
ST Employee

​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.

dmurphy
Associate II

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. Lebon
ST Employee

​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.

Jp
Associate

Hi @JL. Lebon_O​,

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

JL. Lebon
ST Employee

Hello,

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

best regards.

Jp
Associate

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?

JL. Lebon
ST Employee

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.