In the meantime I have tried to write to the RFID tag using the Android App NFC Tools PRO. This App allows to send NfcV (ISO 15693) commands to the tag. I tried to write to two different tags: Siemens MDS D100 with NXP ICODE SLI chip and Siemens MDS D126 with the same chip inside. Here is the log with D100 tag and with my comments:
> Waiting
> Chip detected: A5:D0:74:08:00:01:04:E0 // tag UID
> Available I/O Class: NfcV
> Connecting NfcV...
> Connected
> Sending bytes: 60:21:A5:D0:74:08:00:01:04:E0:00:09:00:00:00 // Write single block in addressed mode, block 0 with value 09000000
> Result: 01:0F // Unknown error
If I try to write to the tag in not addressed mode I get this log:
> Chip detected: A5:D0:74:08:00:01:04:E0 // tag UID
> Available I/O Class: NfcV
> Connecting NfcV...
> Connected
> Sending bytes: 40:21:00:02:00:00:00 // Write single block, block 0 with value 02000000
> Error: I/O failure // just like with my app
Here is the log with D126 tag and with my comments:
> Waiting
> Chip detected: F2:25:F2:62:50:01:04:E0 // tag UID
> Available I/O Class: NfcV
> Connecting NfcV...
> Connected
> Sending bytes: 60:21:F2:25:F2:62:50:01:04:E0:00:09:00:00:00 // Write single block in addressed mode, block 0 with value 09000000
> Result: 00 // Command was successful
Same command in not addressed mode:
> Chip detected: F2:25:F2:62:50:01:04:E0 // tag UID
> Available I/O Class: NfcV
> Connecting NfcV...
> Connected
> Sending bytes: 40:21:00:02:00:00:00 // Write single block , block 0 with value 02000000
> Result: 00 // Command was successful
Why does it work with one tag and not with another, even if both chips inside should be the same?
Another try with Siemens tag MDS D200 with Texas Instruments chip TAGIT HFI inside:
> Chip detected: 4E:4C:B5:92:1A:80:07:E0 // tag UID
> Available I/O Class: NfcV
> Connecting NfcV...
> Connected
> Sending bytes: 60:21:4E:4C:B5:92:1A:80:07:E0:00:09:00:00:00 // Write single block in addressed mode, block 0 with value 09000000
> Result: 01:13 // Means Programming was unsuccessful, but the block was actually written
Same command in not addressed mode:
> Chip detected: 4E:4C:B5:92:1A:80:07:E0 // tag UID
> Available I/O Class: NfcV
> Connecting NfcV...
> Connected
> Sending bytes: 40:21:00:02:00:00:00 // Write single block , block 0 with value 02000000
> Result: 01:13 // Means Programming was unsuccessful, but the block was actually written