Kill RFID Tags with DS9908R

// Expert user has replied. //Solved
J Jason Frost 1 year ago
231 3 0

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.

Please Register or Login to post a reply

Accepted Solution

S Sean Kennedy

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

S Sean Kennedy

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

J Jason Frost

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...

S Sean Kennedy

( Hint #2  See PP21 in the same guide for the Kill details. )

CONTACT
Can’t find what you’re looking for?