IDAutomation.com, Inc. is a BBB Accredited Business. Click for the BBB Business Review of this Computers Hardware, Software & Services in Tampa FL
Contact IDAutomationView your cart in the IDAutomation Store
 
Loading
IDAutomation is closed April 18th in observance of Good Friday.
Home > Barcode FAQ > RFID FAQ & Tutorial

RFID FAQ and Tutorial

The purpose of this document is to provide users with a basic understanding of RFID that is necessary to implement the technology with IDAutomation RFID products. To find technical data not located in this RFID FAQ & Tutorial, please refer to the source of that data. For example, to understand the requirements of the various RFID mandates, refer to the creator of the mandate for those specifications.

Because most RFID printers now come with their own RFID Label Software, IDAutomation has discontinued their RFID Label Software application.

About RFID Technology

RFID (Radio Frequency Identification) technology has been around for many years. Before 2000, common uses for RFID in the USA included toll road passes, access ID cards and the tiny ID chips that are inserted in animals for identification purposes. The recent introduction of RFID in the supply chain, as well as several mandates, has added to the awareness and value of this technology.

RFID tags operate at several different frequencies. The majority of RFID tags operate at either 13 MHZ or 900 MHZ. Think of these two frequencies as the AM and FM bands on your radio. Each one has its advantages. For example, one works better when surrounded by metal, while the other will work better over long distances.

EPC GEN2 smart tag RFID StripMost RFID tags do not contain any data after they are manufactured; they are similar to a blank label waiting for information to be printed on them. To place information in the tag, an RFID encoder must be used. One of the most popular methods of encoding is with an RFID Capable Label Printer that has a built-in encoder and RFID Capable Barcode Label Software. There are basically three types (called classes) of tags:

The following components are required to write data (encode) to class 1 tags:

Software Application > Encoder Software > Tag Encoder > RFID Tag

The following components are required to read data from the tag:

RFID Tag > Reader, Interrogator or Access Point > Decoding Software > Software Application

IDAutomation provides some components of this system including Software Applications, Encoder Software and Tag Writers.

RFID vs Barcodes

Barcoding is a mature technology that has been around for many years, as opposed to RFID, which is still in its infancy. Additionally, the components used to read and write barcodes have decreased in cost because of this maturity and sales volume. There are many additional issues to consider with RFID, such as those listed below in the Disadvantages of RFID section. However, overall, RFID has many advantages over barcoding. In some cases, these advantages outweigh the disadvantages and high cost of the components. Decision makers must carefully consider whether RFID really provides an advantage over barcoding in their business model.

Advantages & Disadvantages of RFID

Advantages of RFID:
RFID Tag with multiple axis antennasDisadvantages of RFID:
Advantages of using UHF GEN 2 RFID tags:

UHF GEN 2 tags greatly reduce (if not eliminate) the ghost tag problem, using a mandatory hardware based CRC. The CRC is created when the tag is encoded, and the reader verifies the CRC when the tag is read. If the CRC does not match, the data read is considered invalid. In addition, more tags can be read simultaneously when using GEN2.

Encoding & Writing RFID Tags

One of the most automated methods of encoding RFID tags is with an RFID-Capable Label Printer that has a built-in tag writer and RFID-Capable Barcode Label Software. IDAutomation also offers an RFID Encoder Component that can easily be integrated into custom software applications, and can easily format the data for the RFID encoder and tag.

The complete process of creating RFID tags involves the following:

  1. Determine which products to purchase. We recommend using a barcode label printer that has a built-in RFID tag writer and our IDAutomation RFID Label Software or the RFID Encoder Component. The appropriate smart tag labels for the implementation or mandate must also be purchased.
  2. Implement the Tag Data Construct, which is the method used to format the data to be encoded in the tag. When formatting data for mandates and standards such as DOD or EPC requirements, these procedures must be followed very carefully. Refer to the Tag Data Construct Examples section below for common applications and mandates.
  3. If each tag is to contain unique information, decide how the variable data will be encoded in the tag. Our IDAutomation RFID Label Software has the ability to increment numbers (which is useful for variable serial numbers) with VB scripting or connect to a database field for the variable portion of the data. Using the IDAutomation RFID Label Software to increment a serial number for the DOD-96 UID mandate may look something similar to this VB script:
    "~b00811001111~b0040000~t048 2S194" & "~n036" & L# + 1000
    Note that the label software will automatically change L# + 1000 to be the label number plus 1000, which is the starting serial number.
  4. When using an RFID Label Printer with our IDAutomation RFID Label Software, it is recommend that the printer be set up so the tag is automatically read after encoding to verify for accuracy. However, this does not assure the tag was encoded with the correct data, it only insures the data sent to the tag was written and can be read. A few of the tags should be read to confirm the data was written and formatted correctly for the Tag Data Construct. The IDAutomation RFID Label Software has the ability to print the hexadecimal data encoded in the tag as an option for read verification. The IDAutomation RFID Label Software also provides a diagnostic that assists in determining tag data construct formatting errors.

Reading RFID Tags

Hand-Held RFID Readers such as the Symbol Technologies RFID Scanner are convenient for reading and locating RFID tags. Many other products are also available that can read multiple tags for tracking or inventory, but these implementations are too complex to describe here.

Most RFID printers can also read data from a tag. This is accomplished by issuing a read command with the label on the printer's encoder.

Verifying Encoding of RFID Tags

Because the data in the RFID tag cannot be seen, it is necessary to verify the data was written to the tag properly and in the correct format. The RFID-capable tag printer must be set up to verify the data was written properly by enabling "verify after write," which verifies the data was correctly written to the tag by performing a read on the tag. Additionally, diagnostic options in the IDAutomation RFID Component and RFID Label Software may be used to visually verify the data written to the tag.

Amount & Type of Data Encoded in RFID Tags

The amount of data encoded depends on the bit size of the tag, minus any fields that may be required. Refer to the formatting section below for examples. The maximum decimal value for a field is calculated with the formula of 2^n-1 where n=the fixed number of bits in the field.

Formatting Data For RFID Tags

When using IDAutomation RFID products to encode RFID tags, data may be sent directly or easily formatted. The formatting allows variable data such as a serial number or text to be encoded in hexadecimal with ease. Special processing is performed when a tilde character is used to properly format the data to the tag and insure it is correct. The Tag Data Construct Examples below make use of this processing for common applications.

Tilde Processing Options:

When the data to be encoded does not begin with a tilde (~), the data is sent directly to the encoder as is. When the data begins with a tilde, the following processing operations may be performed to format the data to the tag:

Encoding Properties:
RFID Tag Data Construct Examples:
The constructs presented below are only examples. The EPCglobal EPC Tag Data Standard identifies the specific encoding schemes for the EAN.UCC Global Trade Item Number (GTIN), the EAN.UCC Serial Shipping Container Code (SSCC), the EAN.UCC Global Location Number (GLN), the EAN.UCC Global Returnable Asset Identifier (GRAI), the EAN.UCC Global Individual Asset Identifier (GIAI), and a General Identifier (GID). Please refer to the latest EPC Tag Data Standard to determine the tag data construct.

In the examples below, the first row defines the fields and the bit size allocated for each. For example, Serial Number (36) means 36 bits are allocated to store the serial number field. The second row is an example of how this field would be formatted for IDAutomation RFID software products. The total number of bits of all sections must equal the tag size and all unallocated bits must be padded with zeros. For example, 8+4+48+36=96 bits. The maximum decimal value for a field is calculated with the formula of 2^n-1 where n=the fixed number of bits in the field. When using IDAutomation RFID software products, the tag size property must equal the bit size of the tag.

DOD-96: (step-by-step example)

Header
(8)
Filter
(4)
CAGE Code as ASCII
(48)
Serial Number
(36)
~b00811001111 ~b0040000 ~t048 2S194 ~n03612345678901

GID-96:

Header
(8)
Manager Number
(28)
Object Class
(24)
Serial Number
(36)
~b00800110101 ~n02810240 ~n02419254 ~n03612345678901

EPC GIAI-96:

Header
(8)
Filter
(3)
Partition*
(3)
Company Prefix
(20-40)
Individual Asset Reference
(62-42)
~b00800110100 ~b003000 ~n0032 ~n03412345678 ~n04812345678901

EPC SGTIN-96:

Header
(8)
Filter
(3)
Partition*
(3)
Company Prefix
(20-40)
Item Reference
 (24-4)
Serial Number
(38)
~b00800110000 ~b003000 ~n0032 ~n03412345678 ~n010174 ~n03612345678901

EPC SSCC-96: (To create the SSCC barcode, refer to the SSCC-18 Barcode Label FAQ)

Header
(8)
Filter
(3)
Partition*
(3)
Company Prefix
(20-40)
Serial Reference
(38-18)
Unallocated**
(24)
~b00800110001 ~b003000 ~n0034 ~n02712345678 ~n03112345678 ~n0240

DOD-64 UID:

Header
 (8 bits)
Filter
(2 bits)
CAGE Code as ASCII
(30 bits)
Serial Number
(24 bits)
~b00811001110 ~b00201 ~b030110001000100110011111000110001 ~n02416522293

NOTES:

  1. The header determines the EPC tag standard. The following are a few of the defined header standards:
     
    Header Bits Encoding Standard
    11001110 DOD-64
    11001111 DOD-96
    00110000 SGTIN-96
    00110001 SSCC-96
    00110010 GLN-96
    00110011 GRAI-96
    00110100 GIAI-96
    00110101 GID-96
  2. * The Partition is an indication of where the subsequent Company Prefix and Serial Reference numbers are divided. Refer to the EPC Tag Data Standard to determine the company prefix and the overall tag data construct. Below is an example of a partition table. Using this table, if your company prefix is 34 bits long, then you would use the partition value of 2 and use 48 bits for the value of the asset reference.

    The GIAI Partition Table:
    Partition Value (P) Company Prefix Individual Asset Reference
      Bits (M) Digits (L) Bits (N) Digits
    0 40 12 42 12
    1 37 11 45 13
    2 34 10 48 14
    3 30 9 52 15
    4 27 8 55 16
    5 24 7 58 17
    6 20 6 62 18
  3. ** Unallocated bits must still be defined and padded with zeros. For example, with SSCC-96, the unallocated area is 24 bits represented as ~n0240 in all IDAutomation RFID software products.
Step-by-Step example of encoding an RFID tag for DOD-96:

The following is a step-by-step example of how the IDAutomation RFID Software products process the formatted data to encode RFID tags:

  1. This implementation example will use the following data construct. The number of bits reserved for each section is very important. The total number of bits for each section must equal the tag size. For example, 8+4+48+36=96 bits.
    Header
    (8 bits)
    Filter
    (4 bits)
    CAGE Code as ASCII*
    (48 bits)
    Serial Number
    (36 bits)
    ~b00811001111 ~b0040000 ~t048 2S194 ~n03612345678901
  2. Implementation of the above data construct for the Department of Defense would involve placing the string of:
    ~b00811001111~b0040000~t048 2S194~n03612345678901
    in the DataToEncode property of any IDAutomation RFID Software product. This data would be encoded in the tag with our software to a Zebra RFID label printer using the following format:
    EncoderPrefix DataToEncode EncoderSuffix
    ^XA^RFW,H^FD ~b00811001111~b0040000~t048 2S194~n03612345678901 ^FS

  3. The component converts this data into a single bit stream represented in the BitsToEncode property:
    110011110000001000000011001001010011001100010011
    100100110100001011011111110111000001110000110101
  4. The RFID software converts the bit stream into hexadecimal characters for encoding which is represented in the HexToEncode property:
    CF02032533139342DFDC1C35
  5. Finally, this software appends the encoder prefix and suffix, which informs the encoder to place the hexadecimal data into the tag, the entire string sent to the printer, would be the following:
    ^XA^RFW,H^FDCF02032533139342DFDC1C35^FS

*As required by the DoD's Passive RFID Information Guide, the first character of the CAGE code is a space.

Step-by-Step example of encoding an RFID tag for SGTIN-96:

The following is a step by step example of how the IDAutomation RFID Software products process the formatted data to encode RFID tags.

  1. This implementation example uses the SGTIN-96 data construct. The number of bits reserved for the company prefix and the item reference are determined by the partition defined in the EPCglobal EPC Tag Data Standard. The total number of bits for each section must equal the tag size of 96 bits. For example, 8+3+3+24+20+38=96 bits.

    Header
    (8)
    Filter
    (3)
    Partition
    (3)
    Company Prefix
    (24)
    Item Reference
    (20)
    Serial Number
    (38)
    ~b00800110000 ~n0033 ~n0035 ~n0240614141 ~n020100734 ~n0382

  2. Implementation of the above data construct would involve placing the string of:
    ~b00800110000~n0033~n0035~n0240614141~n020100734~n0382
    in the DataToEncode property of any IDAutomation RFID Software product. This data would be encoded in the tag with our software to a Zebra R110xi RFID label printer using the following format:

    EncoderPrefix DataToEncode EncoderSuffix
    ^XA^RFW,H^FD ~b00800110000~n0033~n0035~n0240614141
    ~n020100734~n0382
    ^FS

  3. Our software appends the encoder prefix and suffix, which informs the encoder to place the hexadecimal data into the tag.

*As required by the DoD's Passive RFID Information Guide, the first character of the CAGE code is a space.

Proprietary Encoding Examples:

Text, numbers, hexadecimal and binary data are easily encoded in RFID tags with IDAutomation RFID software products, which can make proprietary implementations an easier task. Before implementing a proprietary RFID system, consider implementing one of the EPC standards to better position your implementation for future possibilities. If you decide not to implement one of the EPC standards with UHF tags, try including a header field of 8 bits (all zeros) in your tag (for example ~n0080) because this is not a valid EPC Header, and it should insure your tags do not conflict in some way with other EPC or DOD tags.

Serial Number Encoding Example:

The following VB code encodes a variable serial number into a 64 bit RFID tag. Because 56 bits of the tag may be used for the number, it can be very large in size.

string SerialNumber = "10223847"
rfidWriter.DataToEncode = "~n0080~n056" & SerialNumber

Our RFID Component Encoder DLL can be used to convert the tag data back to a number after it is read. For example, if the tag is read in hexadecimal format, this code would convert the data back:

SerialNumber = rfidWriter.ConvertHexStringToDecString(HexDataFromTag)

Text Encoding Example:

The following VB code encodes a text string into a 96 bit RFID tag. Up to 11 characters may be encoded in a 96 bit tag; 88 bits are used to encode text (8 bits per character).

string Name = "John Smith"
rfidWriter.DataToEncode = "~n0080~t088" & Name

The RFID DLL Encoder may also be used to convert the tag data back to text after it is read. For example, if the tag is read in hexadecimal format, this code would convert the data to a string of text:

Name = rfidWriter.ConvertHexStringToTextString(HexDataFromTag)

RFID Setup and Support

Please review this entire section carefully before contacting us for support.

To obtain support for RFID products, you must have made a software purchase for the applicable RFID product from us and you must have ordered the Priority Support and Upgrade Subscription with the software product.

To obtain support, please email us with your order ID number.

Encoder Setup and Configuration:

To properly encode RFID tags on a printer with IDAutomation software, the printer must have the following capabilities:

  1. Ability to encode the RFID tag as separate printer command. The separate command will be combined with the print stream and sent as a single complete print job.
  2. Ability to read and verify the tag data after it is written.
  3. Ability to void and retry on the next label. If the data read does not match what was written, a "VOID" should be printed on the defective label and the printer should retry the entire process on the next label.
We recommend the following printer settings for all GEN 2 RFID tags:
  1. Tag Type = GEN2
  2. Tag Size = 96
  3. Void and Retry = True - this option must be set so that the encoder performs a read after write to verify the data was written properly. If the data read does not match what was written, "VOID" will be printed on the defective label and the printer will reprint and encode the next label.
  4. Retry Attempts = 3
  5. Lock after Write = Enabled
  6. RFID Position - this depends on the encoder type, label type and printer. It is the location of the tag in the smart-label measured from the top of the label. Many printers such as the Datamax H Class and the Zebra R110xi have a calibrate feature that will set this automatically.
  7. Preset Distance - the distance the label will be advanced for tear off when it is finished printing or after a form feed.

For example, upon receiving a Datamax H Class printer, the following settings should be made from the front panel:

After the above settings are set and saved from the menu on the printer, press FEED once. The printer should now be able to encode tags properly.

Step-by-Step Troubleshooting Process:
  1. Verify the printer contains the latest firmware.
  2. Verify the printer driver is the latest version. Corrupted or bad drivers have caused many printer problems.
  3. Double-check the Encoder Setup and Configuration.
  4. Check to make sure the correct label stock is selected in both the software and in the print driver.
    1. When using the Zebra printer driver, Choose Properties - Printing Preferences and select the paper size.
      Paper size selection for Zebra RFID printers.
      When using the Seagull driver for Datamax printers, Choose Properties - General – Printing Preferences – Page Setup and select the label stock size.
      Datamax RFID Printer paper stock selection
       
    2. Select the correct paper type in the application that is printing the label; when using IDAutomation RFID Label Software, choose File - Label Stock Properties.
      Select the correct paper type for RFID
  5. Open the software that will be used to encode the tag and double check the encoder prefix and suffix. When using IDAutomation RFID Label Software, simply right-click on the RFID object and select the RFID Encoder tab to see these properties.
  6. Double check the formatting commands by examining the hexadecimal data and the complete encoder string computed by the software and verify they are correct. When using IDAutomation RFID Label Software, these commands are found by right-clicking on the RFID object and selecting the Value tab.
  7. With the software, print one label with a custom printer command in place of the RFID command. This involves changing the Encoder Prefix and possibly the Suffix; the formula value or data being encoded may stay the same. When using this test method, the data will be encoded in the barcode instead of the RFID tag. For example, the following values create a code 39 barcode on a Datamax printer encoding hex for EPC SSCC-96 with a custom command:
    Prefix: 1A5205000500025
    DataToEncode: ~b00800110001~b003000~n0034~n02712345678~n03112345678~n02401
    Suffix: ~d013
    Print Command: Q0001
    The result on the label should be a barcode encoding 31105E30A700BC614E000001
     
    Encoding Options:
    The IDAutomation RFID Label Software may be used to increment a serial number in VB script as in this example encoding a label for the DOD-96 UID:
    "~b00811001111~b0040000~t048 2S194" & "~n036" & 1000 + L#
    In many cases, the data encoded may extend beyond the label. In this case, a simple formula of "LBL" & L# may be used as the formula value to encode only LBL and the label number in the barcode.
  8. If the custom command properly creates a barcode on the label, the software, printer, and printer driver are working correctly. If the problem still exists, it resides in either the printer's RFID firmware or the printer's RFID encoder.
  9. If the custom command does not create the label properly, try the following or contact the printer manufacturer to resolve the issue:
    1. Check the printer manual and the control codes being sent to the printer, and verify this against the EncoderPrefix and EncoderSuffix. The In most cases, you need to use specific commands for different types of tags. Examples...
    2. Check the Print Command. Normally, the Print Command may be left blank. However, when using Datamax printers, Q0001 or another printer command must be used that identifies the command to print at the end of each label. When left blank, the encoder inserts its data (EncoderPrefix + DataToEncode + EncoderSuffix) just before the last line that appears at the end of each label.
    3. In the IDAutomation RFID Label Software, the data being encoded may be examined in the diagnostics tab. Verify the encoder prefix and suffix values are appended to the data being encoded in the tag.*

      * Note that lower ASCII functions such as <STX> and <CR> will not display as a character.
    4. Make sure the entire tag is encoded with data. Unused bits of the tag should be encoded with zeros or a pad character recommended by the implementation. This problem is corrected by setting the Tag Bit Size in the software to the actual bit size of the tag.
    5. Check the alignment of the printer's RFID writer and the place where the chip is located in your label. If you receive many voided labels, this is probably the issue.
    6. Be sure not to damage the label by bending it. Lay the label upside down and remove the liner without bending the label, then apply it to a flat surface.
  10. It is suggested to read the data encoded in the label by placing the label on a reader or placing the tag on the printer's reader.
    1. In the Datamax RFID Printer, the label is read by diagnostics. Choose Menu - Diagnostics - Options Testing - Test RFID - Tag Data.
    2. When using the Zebra R110xi printer, press Setup and the Previous button until "RFID Tag Data" appears in the display.
    3. If the data in the tag is read correctly, the tag was encoded properly.
Determining the Print Command and Examining Printer Files:

It may be necessary to verify the actual data being sent to the printer to find a good Print Command.

  1. Change the PrintCommand to VERBOSE. If a command currently exists in the PrintCommand, Append the command to VERBOSE. For example, a command of Q0001 would become VERBOSEQ0001. When the text of VERBOSE appears in the PrintCommand, diagnostic files are created in the %TEMP% directory for each label printed. When the PrintCommand is left blank, the encoder inserts its data (EncoderPrefix + DataToEncode + EncoderSuffix) just before the last line that appears at the end of each label.
  2. Print one label with the software.
  3. Open the TEMP directory. Generally, this is done by choosing Start - Run and entering %TEMP% and choosing OK.
    Opening the TEMP directory
  4. In the TEMP folder, open the IDAutomation.com sub folder.
  5. Sort the files in the directory by date.
  6. Examine one of the latest files ending in .TXT with a text editor.
  7. Determine where the encoder commands are being inserted. Ensure they are inserted before the command that informs the printer to print the label. In this example, the label command of L1A5205000500025LBL3 appears just before Q0001*. Q0001 is the command for a Datamax printer that informs the printer to print 1 label.
    RFID commands injected before the Print Command
    * Note that lower ASCII functions such as <STX> and <CR> will not display as a character, however, a <CR> creates a new line.
  8. It may be necessary to try multiple commands to determine the correct Print Command. If the command cannot be easily determined, consult the printer's programming manual or contact the printer's manufacturer.
  9. If it is necessary to further verify the data being sent to the printer, enable "Hex Dump Mode" on the printer, and print only the tag data for one tag. This will allow you to see exactly what hex characters are being sent to the printer. When using the Datamax RFID Printer, this may be enabled by choosing Diagnostics - Hex Dump Mode.
Encoder Prefix and Suffix Examples:
Encoder Type EncoderPrefix EncoderSuffix PrintCommand
Datamax DPL ~d002LD113W1x0000000000000 ~d013 Q0001
Printronix SL5204 MP ^WT0,,,,1FDN^FD ^FS  
Zebra ZPL II ^XA^RFW,H^FD ^FS  
Common ASCII & Hexadecimal Codes used in RFID Label Printers:
ASCII HEX Character
000 00 <NUL>
002 02 <STX>
003 03 <ETX>
013 0d <CR>

If assistance is needed, please contact IDAutomation.

Back to Top

 © Copyright 2014 IDAutomation.com, Inc., All Rights Reserved. Legal Notices.

 Barcode Fonts | Components | Scanners | Support | Contact Us
Training Videos on YouTube Join us on Google Plus Join us on LinkedIn Follow us on Twitter Like us on Facebook
Over 70% of Fortune 100 companies use IDAutomation's products to automate their businesses.