I'm using a DS9908R scanner to read both barcodes and RFID epc information, all working well, but I need to create a process to "kill" tags and I'm struggling. Has anyone got some examples?
Actually the attribute set for the Kill looks simple enough, I'm having a hard time setting the kill password before I get to that point. I'm using Windows Forms/C#.
Thanks.
Accepted Solution
I'm going to generalize for most RFID when working with the Access bank, and the Kill Banks. (MEMORY_BANK_RESERVED)
Which : Words : Offset
RESERVED - 4 words - 0 offset. ( 64-bits )
Kill - 2-words - 0 offset. ( 32-bits )
Access - 2 words - 2 word offset. ( 32-bits )
Default Value: ( hexidecimal rep )
0000 0000 0000 0000 ( Reserved )
0000 0000 ____ ____ ( Kill )
____ ____ 0000 0000 ( Access )
You set these by either writing the bytes ( 00 00 ) or the words ( 0000 ). { This is SDK / API / dependent }
Lets say we wish to set Access password to " 8765 4321 "
and the Kill password to " EEEE BBBB " - I'm using brutally simple hex values here.,
EEEE BBBB 8765 4321 ( Reserved )
In the same way you write the EPC - you write these to the RESERVED memory bank - BEFORE - you use the password as the Permission.
( Use Tag Read/Write for doing this data setup on the Reserved memory bank - but be careful - since the next steps below can cause an order of operations issue. )
USES: ( this is the permission / Privilege config )
Access Password is used when you define the Password and the correspondent Permission (Lock Privilege). *** see further below too ***
For instance RW - Permanent lock - Permanent unlock - Unlock -- >against the target Memory Bank.
Kill Password only does one thing like "Privilege" Which is "KILL" the tag - when you provide the EPC + the correct Password and you use the "KILL" Privilege operation for it.
( And then you no longer can find the EPC when you scan for it - BECAUSE - you killed the tag. . . -- BE CAREFUL - DONT DO THIS WITH EXPENSIVE TAGS!! --)
{ word to the wise - have a LOT of tags you can spare to do killing with. Cheap / Free tags that are not locked - helps. }
{ Permanent Lock, and Permanent Unlock } - these are specific use extremes:
Permanent Lock - you are unable to make changes to the affected Memory Bank.
Permanent Unlocked - means you cannot then use RW or even setup any Privilege properties to the memory bank in question.
The two most common "developer" "Access Password Usages - is the "Read/Write" Privilege, and "Unlock" Privilege.
*** the Access operation / Privilege config *** - when you use this - and it is anything setup to the Memory Bank in question; your affect by this needs to function with the Password - used as the passed parameter (PASSWORD) for doing the operation.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
To the above question - See if you can write my suggested value with the DS9908 tools you are working with - the Reserved Memory Bank. ( B = 0 ) Hint : <value>0xEE 0xEE 0xBB 0xBB 0x87 0x65 0x43 0x21 </value>
https://www.zebra.com/content/dam/zebra_new_ia/en-us/manuals/barcode-scanners/general/ds9800/ds9x08r-rfid-api-programming-interface.pdf
3 Replies
I'm going to generalize for most RFID when working with the Access bank, and the Kill Banks. (MEMORY_BANK_RESERVED)
Which : Words : Offset
RESERVED - 4 words - 0 offset. ( 64-bits )
Kill - 2-words - 0 offset. ( 32-bits )
Access - 2 words - 2 word offset. ( 32-bits )
Default Value: ( hexidecimal rep )
0000 0000 0000 0000 ( Reserved )
0000 0000 ____ ____ ( Kill )
____ ____ 0000 0000 ( Access )
You set these by either writing the bytes ( 00 00 ) or the words ( 0000 ). { This is SDK / API / dependent }
Lets say we wish to set Access password to " 8765 4321 "
and the Kill password to " EEEE BBBB " - I'm using brutally simple hex values here.,
EEEE BBBB 8765 4321 ( Reserved )
In the same way you write the EPC - you write these to the RESERVED memory bank - BEFORE - you use the password as the Permission.
( Use Tag Read/Write for doing this data setup on the Reserved memory bank - but be careful - since the next steps below can cause an order of operations issue. )
USES: ( this is the permission / Privilege config )
Access Password is used when you define the Password and the correspondent Permission (Lock Privilege). *** see further below too ***
For instance RW - Permanent lock - Permanent unlock - Unlock -- >against the target Memory Bank.
Kill Password only does one thing like "Privilege" Which is "KILL" the tag - when you provide the EPC + the correct Password and you use the "KILL" Privilege operation for it.
( And then you no longer can find the EPC when you scan for it - BECAUSE - you killed the tag. . . -- BE CAREFUL - DONT DO THIS WITH EXPENSIVE TAGS!! --)
{ word to the wise - have a LOT of tags you can spare to do killing with. Cheap / Free tags that are not locked - helps. }
{ Permanent Lock, and Permanent Unlock } - these are specific use extremes:
Permanent Lock - you are unable to make changes to the affected Memory Bank.
Permanent Unlocked - means you cannot then use RW or even setup any Privilege properties to the memory bank in question.
The two most common "developer" "Access Password Usages - is the "Read/Write" Privilege, and "Unlock" Privilege.
*** the Access operation / Privilege config *** - when you use this - and it is anything setup to the Memory Bank in question; your affect by this needs to function with the Password - used as the passed parameter (PASSWORD) for doing the operation.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
To the above question - See if you can write my suggested value with the DS9908 tools you are working with - the Reserved Memory Bank. ( B = 0 ) Hint : <value>0xEE 0xEE 0xBB 0xBB 0x87 0x65 0x43 0x21 </value>
https://www.zebra.com/content/dam/zebra_new_ia/en-us/manuals/barcode-scanners/general/ds9800/ds9x08r-rfid-api-programming-interface.pdf
Thanks, that's really helpful. I'm struggling to get past the first stage at the moment, every time I try to write to a tag I get a RFID_COMMAND_STATUS of 5 back, but '5' is not one of the listed values so not a lot of help. I'll keep going...
( Hint #2 See PP21 in the same guide for the Kill details. )