Hello meow!
I’ve got an xSIID implanted in my body now im a cyber cat!
I’m trying to read data from my ESP32, but I’m running into some issues:
my reader:
Reading NFC tag
19:21:31.409 -> Pages 4-7
19:21:31.409 -> 01 03 78 18 77 02 03 7B 75 07 03 FF 01 72 91 01 AD DD ..x.w..{u..�.r�.��
19:21:31.409 -> 77 02 03 7B 75 07 03 FF 01 72 91 01 AD DD 36 27 FB 3F w..{u..�.r�.��6'�?
19:21:31.409 -> 75 07 03 FF 01 72 91 01 AD DD 36 27 FB 3F 00 FF 00 00 u..�.r�.��6'�?.�..
19:21:31.409 -> 01 72 91 01 AD DD 36 27 FB 3F 00 FF 00 00 00 00 FF 00 .r�.��6'�?.�....�.
19:21:31.409 -> messageLength 0
19:21:31.445 -> ndefStartIndex 0
19:21:31.445 -> 2
19:21:31.445 -> UID: XX XX XX XX XX XX XX
19:21:31.445 ->
19:21:31.445 -> This NFC Tag contains an NDEF Message with 1 NDEF Record.
19:21:31.445 ->
19:21:31.445 -> NDEF Record 1
19:21:31.445 -> TNF: 0
19:21:31.445 -> Type:
19:21:31.445 -> Payload (HEX):
19:21:31.445 -> Payload (as String):
The chip can be read without any issues using NFC Tools. Does this mean the NfcAdapter library is incompatible? If so, why is that the case? What changes should I make to get it working? I’d be interested in forking the library and adding support for xSIID if I knew how to do it.
Thank you!
there is an ios version of taginfo for iphone … check the linked page and scroll down for the link to the iOS version.
if that really is the accurate output, then the NDEF container is basically broken. does it even read on your iPhone?
as for the RFID unit (WS1850S) and why the data is not the same, it feels like this is data corruption. I see in the spec there are two I2C data rates: Fast mode: up to 400 Kbit/s; High-speed mode: up to 3400 Kbit/s … are you pushing data too fast into your ESP32? it’s a major strap-grab but it’s all i have at the moment.
the code read data in normal mode(not fast mode) (0x30)
actually MFRC522.h offer CRC checking already. if there is data corruption the program should log it.
do you think a better nfc reader like PN7150 will help? or the NDEF container is broken like you said. if so how to fix it?
UPDATE:
there was a bug in my dump program that shift 4 bytes every loop (no idea why).
Now it should be the correct dump data. still trying to figure out the NDEF container tho. no idea why the old data is still there… maybe that causing issue with NDEF lib.
In my experience, ChatGPT isn’t the best programmer. Yes, it’s programs get 90% of the way there most of the time, but you’ll always have to hunt out bugs in the end.
The NDEF message envelope and record header contain length TLVs that specify the exact length of the data payload. There’s also a termination byte at the end of the payload. Therefore, it is not necessary to blank or wipe any data after the end of your NDEF message. In fact, doing so would wear memory blocks faster for no reason and take longer to write. In short, you’ve written a long record at some point and that data is in memory, then you wrote a shorter record and after the termination byte you will see the old data. This is normal.
UPDATE:
Write 04-06 with 0 doesn’t work. You need to write this
[04] 03 03 D0 00
[05] 00 FE 00 00
aka command
A2040303D000
A20500FE0000
What does it mean:
A2 Writes one 4 byte page
04 page:
03 indicate it's NDEF format
03 length of record (3 bytes)
D0 NDEF record header
00 type length(0)
05 page:
00 payload length(0)
FE end of the NDEF message
if you have Arduino, here are the scripts. I’m only posting the loop function, as setup is easy to find anywhere.