cancel
Showing results for 
Search instead for 
Did you mean: 

Why can't I write to the tag?

TimLong
Associate III

Hi all. I'm coding an app in C# that uses the ST25R3916DISCOComm.dll native methods to access a ST25DV04 tag. I have got many things working, including bing able to read the tag memory passively, and some complex protocols using the Mailbox mode. However, the one thing I can't get working is passive write to tag memory.

Below is a debug log of my process.

  1. wait for a tag in the field and get its UID. [lines 1..3]
  2. Read the entire tag memory using iso15693ReadBlock() in a for loop [lines 5..7]
  3. Present the password to unlock user area 1 [lines 9..13]. This appears to work and doesn't return an error.
  4. Attempt to write a single block of memory to block 79 (0x004f) with value [x12,x34,x56,x78] [lines 15..19]. This is using the iso15693TxRxNBytes() method.

The command packet looks correct to me based on the data sheet and other commands in a similar format in the log, but I'm getting back no received data and a "No Memory" error code. Any ideas what I'm missing?

Debug log:

21/05/2025 15:30:04 [Info] Waiting for tag...

21/05/2025 15:30:06 [Info] Got tag UID=[E0,02,24,02,DA,28,8B,FA] BlockSize=4 Blocks=128 TotalMemory=512 Flags=00001111b 0x0F 15

21/05/2025 15:30:06 [Info] Reading tage memory 128 blocks x 4 bytes

21/05/2025 15:30:07 [Info] Read 512 bytes

21/05/2025 15:30:07 [Trace] Transceive 20 bytes, timeout 1, Normal mode

21/05/2025 15:30:07 [Trace] Transceive error code: NoError

21/05/2025 15:30:07 [Debug] NFC Transceive [20]: 22 b3 02 fa 8b 28 da 02 24 02 e0 01 30 63 65 61 6e 53 31 67 <=> [3]: 00 78 f0

21/05/2025 15:30:12 [Trace] Transceive 17 bytes, timeout 5000, Normal mode

21/05/2025 15:30:13 [Trace] Transceive error code: NoMemory

21/05/2025 15:30:13 [Debug] NFC Transceive [17]: 22 21 02 fa 8b 28 da 02 24 02 e0 4f 00 78 56 34 12 <=> [0]:

 

0 REPLIES 0