Posts

Post not yet marked as solved
4 Replies
2.4k Views
Our Goal : Program the M24LR16E NFC Tag which is manufactured by STMicroelectronicsAbout M24LR16E : Dynamic NFC/RFID tag IC with 16-Kbit EEPROM and ISO 15693 RF interface.We can find more details about M24LR16E here : https://www.st.com/content/st_com/en/products/nfc/st25-nfc-rfid-tags-readers/st25-dynamic-nfc-tags/m24lr-series-dynamic-nfc-tags/m24lr16e-r.html#resourceBy using Core NFC in IOS 13What we achieved : -> We are able to detect the NFC Tag -> We are ablate connect the NFC tag in the Philips driver. -> We are able to get the system information from Philips driver like ( dsfid, afi, blockSize, blockNumber, icReference) -> We are able to Present the passwordWhat we failed to achieve : -> We are not able to read the data from NFC Tag -> We are not able to write the data to NFC TagWe tried a lot to read the data from NFC Tag but we not able to succeed every time when we try we are getting Tag connection lost error.Sample code we use to read the data from NFC Tag : iso15693Tag.extendedReadMultipleBlocks(requestFlags: [.protocolExtension, .highDataRate], blockRange: NSRange.init(location: 32, length: 16)) { (data : [Data], error: Error?) in if error != nil { session.invalidate(errorMessage: "Unable to read data. "+error!.localizedDescription) return } print (data) }Error :2019-10-04 10:56:42.697004+0530 NFCTagReader[592:147595] [CoreNFC] 00000002 83dad900 -[NFCTagReaderSession transceive:tagUpdate:error:]:726 Error Domain=NFCError Code=100 "Tag connection lost" UserInfo={NSLocalizedDescription=Tag connection lost}We tried all the methods readSingleBlock/readMultipleBlock/readMultipleBlocks/extendedReadSingleBlock/extendedReadMultipleBlocks but we always getting response "Tag connection lost" errorOne more Observation : After detecting the M24LR16E NFC Tag (iso15693 NFC Tag) before we connect to that tag checking iso15693Tag.isAvailable which is returning FALSE but Even after connecting iso15693Tag.isAvailable returning FALSE but we are able to call iso15693Tag.getSystemInfo method and get the results.func tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) { if case let NFCTag.iso15693(iso15693Tag) = tags.first! { print(“Before connect -> iso15693Tag.isAvailable :\(iso15693Tag.isAvailable) " ) tagSession?.connect(to: tags.first!) { (error: Error?) in print(“After connect -> iso15693Tag.isAvailable :\(iso15693Tag.isAvailable) " ) iso15693Tag.getSystemInfo(requestFlags: RequestFlag(rawValue: 0x0A)) { (a, b, c, d, e, error) in print("dsfid: \(a)") print("afi : \(b)") print("blockSize: \(c)") print("blockNumber: \(d)") print("icReference: \(e)") } } }}Finally we found one discussion thread in STMicroelectronics community it states that IOS 13 only supports M24LR04E not yet supported M24LR16E and M24LR64E you can find that thread here : https://community.st.com/s/question/0D50X0000B09Q8SSQU/example-of-using-the-new-ios-13-corenfcHere my question is this Core NFC library will support M24LR16E NFC Tag which is using ISO 15693 RF interface?
Posted
by Darisi.
Last updated
.