Thinkify LLC has intellectual property rights relating to technology embodied in the
products described in this document, including without limitation certain patents or
patent pending applications in the U.S. or other countries.
This document and the products to which it pertains are distributed under licenses
restricting their use, copying, distribution and decompilation. No part of this product
documentation may be reproduced in any form or by any means without the prior written
consent of Thinkify, LLC and its Licensors, if any. Third party software is copyrighted and
licensed from Licensors. Thinkify, the Thinkify logo, Insight and other graphics, logos,
and service names used in this document are trademarks of Thinkify, LLC in the U.S.
and other countries. All other trademarks are the property of their respective owners.
U.S. Government approval required when exporting the product described in this
documentation.
Federal Acquisitions: Commercial Software -- Government Users Subject to Standard
License Terms and Conditions. U.S. Government: If this Software is being acquired by
or on behalf of the U.S. Government or by a U.S. Government prime contractor or
subcontractor (at any tier), then the Government's rights in the Software and
accompanying documentation shall be only as set forth in this license; this is in
accordance with 48 C.F.R. 227.7201 through 227.7202-4 (for Department of Defense
(DoD) acquisitions) and with 48 C.F.R. 2.101 and 12.212 (for non-DoD acquisitions).
DOCUMENTATION IS PROVIDED “AS IS” AND ALL EXPRESS OR IMPLIED
CONDITIONS, REPRESENTATIONS AND WARANTEES, INCLUDING ANY IMPLIED
WARRANTY OF MERCHANTABILITY, FITNESS FOR APARTICULAR PURPOSE OR
NON-INFRINGMENT ARE HEREBY DISCLAIMED, EXCEPT TO THE EXTENT
THATSUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
Note Regarding RF Exposure
This equipment complies with FCC radiation exposure limits set forth for an uncontrolled
environment. This equipment should be installed and operated with minimum distance
of 20cm between the radiator (antenna) and your body. This transmitter must not be colocated or operating in conjunction with any other antenna or transmitter.
FCC Notice and Cautions
Any changes or modifications to this device not expressly approved by Thinkify, LLC
could void the user's authority to operate the equipment.
This device complies with Part 15 of the FCC Rules. Operation is subject to the
following two conditions: (1) this device may not cause harmful interference, and (2) this
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
2
FCC Notice and Cautions
device must accept any interference received, including interference that may cause
undesired operation.
This equipment has been tested and found to comply with the limits for a Class B digital
device, pursuant to Part 15 of the FCC Rules. These limits are designed to provide
reasonable protection against harmful interference in a residential installation. This
equipment generates, uses and can radiate radio frequency energy and, if not installed
and used in accordance with the instructions, may cause harmful interference to radio
communications. However, there is no guarantee that interference will not occur in a
particular installation. If this equipment does cause harmful interference to radio or
television reception, which can be determined by turning the equipment off and on, the
user is encouraged to try to correct the interference by one or more of the following
measures:
•Reorient or relocate the receiving antenna.
•Increase the separation between the equipment and receiver.
•Connect the equipment into an outlet on a circuit different from that to which the
receiver is connected.
•Consult the dealer or an experienced radio/TV technician for help.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
3
About Thinkify, LLC
About Thinkify, LLC
Thinkify, LLC is a wireless technology company specializing in RFID hardware and
software products. With 30 years of combined experience in RFID and over 35 patents
in the field, our founding team is one of the technically strongest in the industry.
Our focus is embedded RFID. -- Applications where we use RFID to enable common
objects, devices and whole environments to become aware of the world around them.
This capability can transform the way people and objects interact, blurring the line
between the physical world and the virtual.
Thinkify is a privately held company, located in Morgan Hill, California.
We feel that partnerships should be healthy and that Engineering should be beautiful.
Thinkify, LLC
18450 Technology Drive, Suite E
Morgan Hill, CA 95037
"X" eXtra Data Read and Write Descriptor Control..............................................................67
Appendix A. Using the Thinkify Firmware Update Utility..........................................................73
Appendix B. GPIO Port.............................................................................................................77
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
6
Introduction
Introduction
This document explains how to set up and communicate with a Thinkify, TR200 desktop
RFID reader. We call this device, the Insight
(tm)
.
Most UHF RFID readers today are industrial devices focused on automating data
capture without human intervention. These readers are big, expensive and run at RF
power levels that require a minimum standoff from people for safe operation. While fine
for industrial applications like reading pallets at dock doors, these readers are a poor fit
for use cases like tag commissioning or document tracking at your desk.
The Thinkify Insight
(tm)
is the first in a new class of RFID reader – a Personal Reader
designed to work around people handling tagged items in an store or office environment.
Like the Personal Computer changed computing, we think the Personal Reader will
change the nature of RFID.
The Insight
(tm)
is a highly capable and easy-to-use Gen2 reader designed for tag
commissioning, document tracking, point of sale and other use cases where people and
tags come together.
We think it's pretty. We hope you do, too.
Let's get started.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
7
Getting Started
What's in the box?
•A TR200 Desktop Reader
•An antenna
•A USB cable'
•A CD with this manual, software driver and demonstration program
•Some sample RFID Tags
Getting Started
(Stone not included.)
Hooking up the hardware
Attach the antenna to your reader. – It screws on.
Plug the USB cable into the reader and then into your laptop or PC.
You should see the blue LEDs on the front of the reader cycle through a start up pattern
and then the one should slowly blink to indicate that the unit has power and is waiting for
commands.
So much for hooking up the hardware... You're done.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
8
Setting up the Driver (Microsoft Windows)
Setting up the Driver (Microsoft Windows)
After you hook up the hardware, if you've never installed the driver software for the
reader on your computer you will see a message indicating that Windows doesn't know
about this device.
Under windows XP, the
message looks like this:
We're going to handle this
ourselves so select the
“No, not this time” option
and click “Next”.
In the following dialog
select “Install the software
automatically”. Insert the
CD and click “Next”.
(If you chose to have the
software install
automatically skip ahead.
Otherwise, a dialog will
appear where you can
select the “Include this
location in the search”
option and “Browse” to
the \inf directory on your
CD.)
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
9
After clicking “Next” you'll get
a warning that the Thinkify
driver has not passed the
Microsoft Windows Logo
testing program.
We haven't.
In fact, we never even tried.
If you still trust us, click
“Continue Anyway”...
Setting up the Driver (Microsoft Windows)
The driver will now install.
Here we map the USB
you've plugged into to a
“virtual” serial port.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
10
Setting up the Driver (Microsoft Windows)
If all goes well, you should see this screen. Click “Finish”
The driver is installed and your reader should be ready to use.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
11
Communicating with the Reader
Communicating with the Reader
Application software that talks to the TR200 opens up a connection on the virtual serial
port we enabled with our driver. We can test this interface with nearly any serial
communication program.
Most Windows systems we've encountered come with a serial communication program
called HyperTerminal installed under:
“Start/ All Programs /Accessories / Communications”
We will use HyperTerminal in our examples below.
A free, less buggy and far more capable serial communication program is Tera Term. In
addition to serial communication, Tera Term supports several network communication
standards including telnet and ssh. We recommend Tera Term for developers who want
to do more than casual explorations with HyperTerminal.
Tera Term is available for download at: http://ttssh2.sourceforge.jp/
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
12
Communicating with the Reader
Determining your Com Port
Once the driver is installed, the next time you connect the reader to a USB port, it will be
recognized and given a virtual com port number. Each USB port you connect to will be
given a different number by default.
You can see the com port number you obtained by going to the Start / Control Panel / System utility and click the Device Manager button in the hardware tab. See
below:
Click “Device Manager” and expand the “Ports (Com and LPT)” option. Look
for the Thinkify USB-Serial Bridge entry and note the com port.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
13
Communicating with the Reader
On my system it came up as COM4
*
You now know!
_______
*NOTE for advanced users using Windows XP: If you wish to change the com port number, you can by
right clicking on the entry for the Thinkify USB-Serial Bridge, selecting Properties, going to the Port Settings Tab and clicking the Advanced button. The dialog window has a drop down list of available com
port names you may choose from.
At the dialog box, create a new
connection for the TR200.
Pick the Com Port your reader is
connected to.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
15
Set your communication parameters:
Communicating with the Reader
From the “File/Properties” Menu, select the “Settings” Tab and click Ascii Setup.
Check “Send Line ends with line feeds” and
enable local echo so you can see the
commands you type.
Hit OK.
Congratulations! You're setup. Let's see if we're talking...
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
16
Communicating with the Reader
Hit enter a few times and type “v”[enter] to get the reader's firmware version.
You should see something like:
Your reader is alive and talking!
In the following sections, we describe the protocol structure and list the commands that
the reader can respond to using this interface. You can try out all the commands using
HyperTerminal to get a feeling for how they work. After that, you can use our software
APIs or roll your own to use the same commands from your own programs.
As an example, let's read some tags. Hold up your sample tags near the reader and
type “t”[enter] You should see something like this:
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
17
Communicating with the Reader
Victory!
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
18
A Quick RFID Introduction
A Quick RFID Introduction
Class 1 Generation 2 (Gen2)
The RFID tags included in your reader kit conform to the UHF Class 1, Generation 2
standard maintained by EPC Global. (REF). EPC Global is a division of UPC – The
same standards organization that controls the barcode numbering system used on retail
packages. This standard (with minor changes) is also maintained by ISO under ISO18000-6-C. (REF)
Most Gen2 tags (as they are usually called) are Passive RFID devices. That is, they do
not require a battery and derive their power for operation from the RF field sent out by
the reader. This allows them to be small, inexpensive and operate virtually indefinitely.
Most Gen2 tags are also programmable devices. Users can put their own information
into the tags. The amount of data that can be stored depends on the type of tag but
hundreds of bits are typical. Data in the tag is organized into “Banks” of memory that
serve different functions under the protocol:
•Bank 0: Reserved Memory Kill and Access Password space.
•Bank 1: EPC Memory The unique tag identifier. Typically 128 bits. User
programmable. The Gen2 protocol is designed to extract this information quickly.
•Bank 2: TID Memory A factory programmed area that includes a serial number
and fields that describe the tag's capabilities.
•Bank 3: User Memory A programmable extended memory area for holding
additional information that is not the EPC. Not all tags support User Memory.
Gen2 tag memory can be “Locked” such that it cannot be changed without a passcode.
These locks can be reversible or permanent.
Finally, Gen2 tags can be rendered non-functional with a “Kill” command. Tags that are
killed cannot be recovered.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
19
Concepts (Performing an Inventory)
Concepts (Performing an Inventory)
Being an RFID reader trying to read multiple tags using the Gen2 protocol is sort of like
being a new teacher trying to take attendance in a kindergarten class... Sadly, the
administration didn't give you an attendance list on the first day of class so you have to
work it out for yourself.
Kindergarten TeacherRFID Reader
You have to get a list of everyone's
name
You have to get a list of all of the EPC codes
from the tags
Kids know their own namesTags have unique IDs in EPC memory they can
report
You can only hear one child at a timeThe reader can only process a signal from one
tag at a time
Kids want to all talk at onceMultiple tags can respond at the same time
What both the reader and the teacher need is an anti-collision protocol – a way to keep
their respective tags/kids from talking at the same time.
Most teachers adopt an adult-talks-first protocol with a persistent state flag for whether a
child has been inventoried. This flag is maintained in the child. Sometimes there's a bidirectional exchange with an ACK/NAK option. Hey! that's a lot like Gen2.
“Huh?” You say.
Teacher: “Ok everyone! Quiet down. It's time to take attendance.” (Reader-talks-first)
Teacher: “Ok everyone! Hands up!” (Under Gen2 this is a Select command that
establishes who's going to participate in the inventory. – In this case, everyone. By
putting their hands up, the child has set a flag that indicates he/she hasn't been
inventoried, yet.)
Teacher: “When I point to you, tell me your first name.” (Granted this is a little contrived,
but it's a little like the Query command in Gen2 that kicks off an inventory sequence.)
The teacher randomly picks the first child, points to her and says, “You!”
Child: “Inga!” (In Gen2, a tag responds to a Query with a random number that is used in
the next command by the reader)
Teacher: “Inga who?” (This is like a Gen2 ACK (acknowledgment). It tells the tag/child
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
20
Concepts (Performing an Inventory)
that the reader/teacher heard their response and is now asking them for their data.)
Child: “Svenson!”
Teacher:”You!” (Pointing to the next child. At this point, Inga assumes that the teacher
got her name, since she's moved on to the next child. She puts her hand down and sets
her state to “Inventoried”)
Child: “Mikey!”
Teacher: “Mikey who?”
Child: “Jones!”
Teacher: “Pardon me?” (If the reader doesn't understand the reply it can issue a NAK
and try again.)
Teacher: “Mikey who?”
Child: “Jones!”
Teacher: “You!” (On to the next child. Mikey puts his hand down, too.)
And off they go...
When the teacher reaches the end of the round, (See's no more raised hands in this
case) she's done.
This is clearly contrived and is an oversimplification of both the Teacher's real-life
protocol and Gen2, but it does captures some of the important features:
1. Inventories of the field need an anti-collision protocol to prevent multiple tags
from talking at the same time.
2. An inventory can begin with one or more Select commands that establish who
will participate in the inventory. (Teacher: “Ok, only the boys, put your hands up!”)
3. The state of whether or not a tag has been inventoried is maintained in the tag.
4. In the process of singulating a tag, the reader gets a handle (the child's first
name in the example above) that it can use for additional operations with that tag
(more on this below).
The analogy breaks down when you realize that unlike the teacher, the reader cannot
see the inventoried state of the tags (hands in the air). If the teacher tried to take
attendance of the class from behind a curtain, it would be a lot more difficult. Rather
than pointing at a child and saying, “You!” to keep them from talking at once, a different
protocol would be needed.
In Gen2, this is accomplished with the Query command. When the reader issues a
Query command, it includes in the message a parameter called Q that the tags use to
determine if they will respond immediately, or after some number of subsequent
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
21
Concepts (Performing an Inventory)
QueryRep commands. The number of Query or QueryRep commands the tag will wait
to hear is determined randomly and can vary from 1 to 2^Q.
By adjusting the Q parameter used in its Query commands, the reader can prevent
multiple tags from responding simultaneously most of the time. If there is a collision, the
reader can adjust Q or just try again and let the tags roll a different random number.
From your perspective as a user of the reader, these details don't usually matter (we
adjust Q for you automatically) but they can be useful to know sometimes if you are
trying to optimize performance.
Concepts (Reading / Writing other data)
The Gen2 protocol is strongly oriented around the use case of rapidly reading the data
in Bank 1 of Memory (the EPC). In supply chain applications there can be hundreds of
tags moving past a read point and the reader needs to read them all as they go by.
Reading other data in other banks of memory or programming builds off of the protocol
we use for isolating tags and it extends it to allow a “conversation” to take place with a
tag we've isolated.
To read user memory for example, the reader first isolates a tag with an inventory and
then uses the handle from the tag as part of a sequence of commands to get the other
data. Writing is similar.
In the Thinkify reader, we allow you to specify a number of “Descriptors” that tell the
reader what additional actions (if any) to take when it reads a tag. Descriptors can be
used to Read additional memory areas, Write to memory, Lock and Unlock tag Memory
and Kill tags.
This is a very powerful approach. By using Select commands (a.k.a. Masking) as part of
the inventory we can quickly specify that we are interested in performing an operation on
just one, some or all of the tags present in front of the reader.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
22
Thinkify Reader Protocol Overview
Thinkify Reader Protocol Overview
Here we give an overview of the Thinkify Reader Protocol message structure and
provide a high-level summary of the major command groups available to the user.
The Thinkify Reader Protocol (TRP) is a human-readable ASCII protocol that allows
users and applications to set parameters for RF control, tag list acquisition, tag
programming and digital I/O behavior. The TRP may also be used to acquire data from
the reader and be notified of tag read events, I/O events and reader status.
The TRP is used across all Thinkify reader products and supported hardware interfaces
including; RS232, USB and Ethernet.
Command Structure
The Thinkify Reader Protocol uses a Command-Response model. --Communication is
initiated by the Host and the Reader responds with an acknowledgment or data.
Users may interact with the reader from a terminal program or their own software using
the Thinkify APIs. All that is required is that they send strings to the device over an
active connection and terminate messages correctly. Replies will be sent back, often on
multiple lines, terminated by a “READY>” prompt.
Host Commands
Host commands to the Reader are ASCII strings terminated with a Carriage Return.
Valid command messages are composed of numeric characters in the range of 0-9
(0x30 to 0x39) ASCII characters in the range of a..Z (0x to 0x) and the carriage return
character (0x0D).
Line feed characters are ignored by the reader and may be sent without effect. --The
Reader does not echo commands back to the Host.
The general format of a Host to Reader message is:
(Here [] denotes an element that may be optional.)
•<COMMAND> is typically a single character.
•<SUBCOMMAND> is typically a single character
•<PARAMs> vary in length and depend on the command being sent. (See details
below). There are no spaces between parameters if multiple parameters are
sent as part of a message.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
23
Command Structure
•<CR> is the Carriage Return CR character (0x0D). Upon receipt of a carriage
return, the Reader will attempt to parse the command message and execute the
command if properly formatted.
Reader Replies
Reader replies to Host commands are also ASCII strings. Replies may be either a single
line or a multi-line reply, depending on the Command. Each line of a reply is terminated
with a Carriage Return + Line Feed character pair, CRLF (0x0D,0x0A)
When the reader has finished sending all data back to the host in response to the
command, it will end the sequence with a “READY>” prompt, indicating is prepared to
process another message. Generally, after sending a Command, the Host should not
send a new command until it sees the "READY>" message.
The general format of a Reader to Host message is:
(Here [] denotes an element that may be optional.)
•[STARTMSG] – Indicates the beginning of command processing. – Not sent on
every command. Sent on commands where inventories are performed.
•<Lines> – Data sent back in response to the command
•[STOPMSG] – Indicates command processing is finished. – Not sent on every
command. Send on commands where inventories are performed.
•<READYPROMPT> – “READY>” prompt. Indicates that the reader is ready to
accept another command.
Special Case: Inventory Replies
When the Reader performs a T or Tn command that is setup for infinite repeat, it will
stream line data until it sees a character from the host. It will then terminate the
message with the STOPMSG and READYPROMPT. (See T commands below for
examples and discussion.)
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
24
Command Structure
Examples
Example – To set the General Purpose Output (GPO) Pin 1 to a High Level
Tn (T1, T2, ...T6) commands repeatedly perform inventories until interrupted by the
Host. During this time the Reader will stream tag data until a character is received from
the Host. The reader will then stop the Inventory sequence and terminate the reply.
Commands are grouped into five major areas: functions for working with RFID tags,
functions for controlling the reader's radio subsystem, functions for interacting with the
reader's GPIO port, system commands for firmware updates, etc., and advanced
engineering functions used mostly for regulatory testing and by users wishing to develop
custom OEM solutions.
Tag Commands
GPIO and Triggering
Radio Control Commands
System Commands
Engineering Test Functions
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
27
Command Reference
Command Reference
Summary
A quick overview of the main command groups follow. Detailed explanations are in the
following sections.
Main
Command
ARX Amplifier ControlEngineering / Test
BEnter BootloaderSystem
CLow-Level Chip RegistersEngineering / Test
DDiagnostic FunctionsEngineering / Test
FRX Filter Control Engineering / Test
GGPIO ControlGPIO Control and Triggering
IInventory ControlTag Commands
KKill / Access Data DescriptorsTag Commands
LLow-Level TestsEngineering / Test
MTag MaskingTag Commands
DescriptionCommand
Group
PProtocol Air InterfaceRadio Control
RRF ControlRadio Control
SStatus FunctionsSystem
TPerform Tag InventoryTag Commands
VGet Firmware Version (Read Only)System
XeXtra Read / Write Data DescriptorsTag Commands
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
28
"A" RX Amplifier Control
"A" RX Amplifier Control
Description
The “A” command and sub-commands are used to set and get the parameters that
control the characteristics of the amplifier in the base band receiver.
Command Group
Engineering / Test
Command
<A>[<SUBCMD>[<PARAMS>]]
Sub-Commands
Sub
CommandDescription
AA8 dB mixer attenuation control. – Off or On.0..1
AGGain adjustment:
ValueGain
00dB
1-9dB
2-6dB
3-3dB
4+3dB
5+6dB
6+9dB
Legal Values
for SET
0..6
AHHysteresis: 7 steps of 3dB ea.0..7
AM10 dB mixer amplification control. Off or On. 0..1
Places the reader in a special mode where it is waiting to receive a firmware upgrade. In
this state, the reader will not respond to normal commands and requires a power cycle
to return to normal operation. See Appendix A for how to upload firmware using the
Thinkify Upgrade Utility.
Note
Entering bootloader mode un-enumerates the USB port in Windows. Reset into normal
code re-enumerates port.
This can confuse terminal programs like Tera Term / Hyperterm. After executing the
bootloader command disconnect terminal program. After resetting and re-enum then
reconnect terminal program.
The host Bootloader program provided by Thinkify for firmware upgrades runs the USB
interface with a HID windows class driver. (Normal operation is with a windows CDC
class driver.)
Command Group
System
Command
<BOOTLOADER><CR>
“Bootloader” Example
READY>bootloader
ENTERINGBOOT
The reader is now waiting for a firmware upgrade. At this point you may use the Thinkify
Upgrade Utility to load new firmware. See Appendix A.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
31
"C" Low-Level Chip Control Registers
"C" Low-Level Chip Control Registers
Description
The “C” command and sub-commands are used to set and get the low-level control
registers in the AM3392 chip. (An engineering command.)
Command Group
Engineering / Test
Command
<C>[<SUBCMD>[<PARAMS>]] – see table.
<C><ADDR><VAL> – sets a register. ADDR may be one or two nibbles. VAL
may be 2 or 6 nibbles.
The D command and sub-commands are used to control Scope triggers and pulses
coming directly from the AM chip. These may be used in troubleshooting and regulatory
testing. (An Engineering function.)
Command Group
Engineering / Test
Command
<D>[<SUBCMD>[<PARAMS>]]
Sub-Commands
Sub
CommandDescription
DTSet Inventory Parameters to Default Values
0 = No Trigger
1 = Trigger when a SELECT command is sent
2 = Trigger when a QUERY command is sent
3 = Trigger when a ACK command is sent
4 = Trigger when a REQRN command is sent
5 = Trigger when a READ command is sent
DDSends a direct command out the IC. (no Get)
Values a mystery --known only to the Dark Code Lord.
“D” Command Examples
GET and SET
READY>dt
SCOPETRIGGER=0x00
Legal Values
for SET
0..5
0..FF?
READY>dt4
SCOPETRIGGER=0x04
READY>
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
36
"F" RX Filter Control
"F" RX Filter Control
Description
The F command and sub-commands are used to control the RX baseband filter. These
commands may be used in troubleshooting and regulatory testing. (An Engineering test
function.)
The G command and sub-commands are used to control the GPIO port. These may be
used to set/retrieve GPIO pin settings or to set the reader up for triggered reading.
Using the GT command, the reader may be configured to read tags in any of the
supported inventory modes for either a fixed time after an edge transition or while a pin
is held in a particular state.
//Configure for edge trigger on port 1 for 10 seconds (0x0A seconds)
READY>gt11040a
TRIGGERTYPE=POSEDGE PORT1
TRIGGERACTION=T 0A
READY>
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
40
“I”- Inventory Control
“I”- Inventory Control
Description
The I command and sub-commands are used to set and get the parameters that control
the flow of the Gen2 anti-collision algorithm. Modifications to the default parameters may
be helpful in cases where there are a large number of tags in the field or when it is
desirable to increase the number of redundant reads for a given tag.
Command Group
Tag Commands
Command
<I>[<SUBCMD>[<PARAMS>]]
Sub-Commands
Sub
CommandDescription
IDSet Inventory Parameters to Default Values-
IIInner Loop Count: Each INNERLOOP runs a tag
acquisition STATEMACHINE
ILGen2 SEL Flag: Value used in QUERY for the SEL field.
See G2 spec. (Usually set to 0)
IOOuter Loop Count: Number of FULL INVENTORY
ITERATIONS (one iteration is a SELECT group and a
INNER LOOP group)
IQGen2 Q Parameter: The Q used in the QUERY that
starts the round
ISGen2 Session: The session (0 to 3) that will be used for
the entire inventory run.
Legal Values
for SET
0..FF
0..3
0..FF
0..8
0..3
ITInventory Target: Defines whether the QUERY that
0..1
initiate round is looking for tags in the A or B state
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
41
“I”- Inventory Control
Sub
CommandDescription
IWSelect Count: Number of times SELECT function is
executed - each execution sends every MASK that is
enabled
//Set it up to read until interrupted. OuterLoop = 0xFF
READY>ioff
OUTERLOOP=0xFF
READY>
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
43
"K" Kill – Lock – Access Descriptors
"K" Kill – Lock – Access Descriptors
Description
The K family of commands are used to control lock kill and access command behavior.
The K commands allow the user to get/set passwords used in kill, lock and access
operation and specify lock type for the lock commands.
These commands are described in detail in the EPC Global C1G2 specification: uhf
As mentioned in the introductory sections, an inventory may begin with the issuance of
one or more Gen2 Select commands to determine which tags participate in the inventory
round.
When the Select loop runs (see the IW command) each pass through the loop can issue
up to four (4) independent Select commands. The parameters associated with these
Select commands are stored in the reader's Masks list.
When the Select is sent, the ACTIVE flag of each of the four (4) masks is examined in
order from 0 to 3. If ACTIVE == 1 the MASK is used to structure the Select command.
From a RESET, MASK0 is active (ACTIVE FLAG 1) with a ACTION of 000 (ALL TAGS to
A state – see G2 spec TABLE6.19 for the 8 possible ACTIONS) and a LEN of 0×00. This
means “All tags selected”.
From a RESET, MASK1, MASK2, MASK3 are set to INACTIVE (ACTIVE FLAG == 0)
Command Group
Tag Commands
Command
<M><SUBCMD><MASKNUM><PARAMS>
Sub-Commands
Sub
Command
MASet Mask Parameters to Default Values. – Will put all masks to their
defaults from a RESET state.
MCommand
<M><MASKNUM (0 to 3)>
will GET the values of the requested MASK
Description
MCommand
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
49
“M" MASK / SELECT control
Sub
Command
Description
<M><MASKNUM (0 to 3)><PARAMS>
will PUT a MASK into MASKNUM
<PARAMS>
<ACTIVE (0 or 1)>
0 means inactive, 1 means active
<TTYPE (0 or 1)>
0 means use the current Session (See: IS command)
1 means use SL 100 flag.
<ACTION (0 to 7)>
TODO: Expand this section. – Until we do, we recommend you see
the EPC Global G2 Spec TABLE 6.19 for the 8 possible ACTIONS.
TODO: Add an example that requires bigger EBV pointer... Yuck.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
53
"P" PROTOCOL control (Gen2 Air protocol)
"P" PROTOCOL control (Gen2 Air protocol)
Description
The reader supports a number of different data rates and modulation modes for
communicating with Gen2 RFID tags. This functionality is controlled by the P command.
Read performance is closely tied to how the various modulation, tag signaling and data
rate parameters interact in a particular use case. Changes away from recommended
settings should be done only after sufficient testing demonstrates an improvement. The
best settings are often a compromise between read speed and read reliability.
In some cases it may be beneficial to change this setting to improve performance in
multi-reader environments.
Command Group
Radio Control
Command
<P>[<PARAMS>]<CR>
...
<P><TARI (0 to 2)><MODE (0 to 3)><LF (0 to 4)>
Available Parameters
ValueTARIModulation Mode
(MODE)
06.25 uSecFM040KHz
112.5 uSecM2160 kHz
225 uSecM4256 kHz
3-M8320 kHz
4--640 kHz
Link Frequency
(LF)
Recommended Settings TODO: DEFINE
Normal Operation
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
54
Dense Reader Environment
High Speed Reads of Small Numbers of Tags
"P" PROTOCOL control (Gen2 Air protocol)
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
55
“P” Command Examples
Read the current settings
READY>p
AIR PARAMS
TARI=12.5
M=M8
LF=256
READY>
Set to 25 uS TARI, Miller 4, 256 kHz LF
READY>p222
AIR PARAMS
TARI=25.0
M=M4
LF=256
READY>
"P" PROTOCOL control (Gen2 Air protocol)
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
56
"R" RF Control
"R" RF Control
Description
The R command and sub-commands are used to monitor and control radio functions for
power and RF frequency. -These commands are used during regulatory testing or
under FCC Part 90, licensed operation of the device they are not to be changed outside
of the specified limits except by qualified installers.
Command Group
Radio Control
Command
<R>[<SUBCMD>[<PARAMS>]]
Sub-Commands
Sub
DescriptionLegal Values
Command
RARF Transmitter Attenuation
Non linear function that controls output power.
See below.
ROControl status of RF Carrier
RO1 = OFF
RO2 = IDLE
RO3 = ON
For test use only.
RFGet/Set the Current RF Frequency.
RFXXXXX (Five Decimal Numbers)
For test use only.
for SET
Values above
the factory
default setting
for unlicensed
operation
Do not
Change.
Engineering
test function.
Do not
Change.
Engineering
test function.
RHGet/Set the Current Hop Dwell TimeDo not
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
57
"R" RF Control
Change.
For test use only.
Engineering
test function.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
58
“R” Command Examples
Get and Set
What's the attenuation?
READY>ra
ATTENUATION=6
Change it!
READY>ra3
ATTENUATION=3
READY>
Read Frequency
READY>rf
FREQ=908250
"R" RF Control
READY>rf
FREQ=905750
READY>rf
FREQ=920750
Set to fixed value
READY>rf91525
FREQ=915250
READY>rf
FREQ=915250
READY>rf
FREQ=915250
READY>
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
59
"R" RF Control
02468 10 12 14 16 18 20
15
17
19
21
23
25
27
29
RF Power vs. RA Value
(power in dBm at port)
RF Pow er
RA Value
Power, dBm
The RA setting
The RA setting controls power output. – Higher values yield lower output powers.
Empirical data yields a curve like this:
In normal, unlicensed operation, the RA value should not be set below its factory default
value. (Available via an “RA” command after reader start up.)
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
60
"S" Status Functions
"S" Status Functions
Description
The S commands are used to control miscellaneous status functions. The SN family
controls reporting of inventories that do not result in tag reads. The SL family allows user
applications control of the module LEDs.
Command Group
System
Command
<S>[<SUBCMD>[<PARAMS>]]
Sub-Commands
Sub
DescriptionLegal Values
Command
SNReport Status of the “NO TAG” reporting flag-
SN0Turns off “NO TAG” messages-
SN1Turns on “NO TAG” messages-
SLGet the control mode for the LEDS
Returns: ManualLED or AutoLED = current LED state
SLASet the LED control to Auto (Sniff, Lock, RF power
LEDs under Microprocessor control)
SLMXSet the LED control to Manual (Sniff, Lock, RF power
LEDs under program control) and set the state of the
LEDs to a the bitmap of X
NOTE: This section is in progress. Editing and Fleshing out
needed!
Command Group
Tag Commands
Commentary
The ISO-18000-6-C (Gen2) protocol specifies a set of low-level commands that can be
used to read and write RFID tags. In practice, much of the detail surrounding how this is
done is not important to the end user of an RFID system – you just care if the reader
reports all the tags and that the data you want to write to them gets written correctly.
That said, some knowledge of what's going on can be used to optimize a system to
improve read performance, programming reliability and efficiency. What you want to
optimize depends on what you are trying to do with the RFID tags.
In some cases, you want to read a small number of tags very quickly and get lots of
repeated reads of the same tag. E.g., an application where you are using an RFID tag
on a runner to determine when he/she crosses the finish line of a race. The extra reads
here are useful for determining the best “crossing time” for the runner.
In another case, you care less about the number of redundant reads and more about the
number of unique reads you get. An example might be a tool tracking application where
you are trying to read all the tagged items within a cabinet and don't want to miss any
tags.
To handle these and other cases, you can issue a T command in conjunction with the M,
I and X commands to fine-tune what is being reported from the tag field and how the
reader interacts with the tag population it sees.
The “T” command
The T command will do a full dual nested loop: SELECT / QUERY / ACK / REQRN /
ACK / XREAD / XWRITE sequence, reporting tags as they are found, perform XDATA
operations, and attempt to force found tags into the opposite A/B state. All aspects of
this command are controlled by the reader's global inventory control parameters (see
the “I” command), and the X data descriptor parameters (see the “X” command).
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
64
"T" INVENTORY initiate
The parameters of the SELECT sequence sent in the OUTERLOOP are fully
controllable through the MASKCONTROL commands (see the “M” command). Inclusion,
Exclusion, choice of A→B, B→ etc are all under user control.
The global parameters OUTERLOOP, INNERLOOP, SELECTLOOP, and Q can be overridden at the command line entry of the command, all other parameters are set globally
through the I and X series commands.
If an OUTERLOOP value is set to 0xFF, then the T command will loop constantly, i.e
never decrementing outerloop, until a char is received on USB port. The same thing will
occur on a T(n) with a loop value of 0xFF (equivalent to no loop value given).
When sending EPC data out the USB, the option is given to append XEPCDATA. This
XEPCDATA is instantaneous value when tag acquired of
<FREQ><OUTERLOOP><INNERLOOP><ROUND><SLOTCOUNT><Q>
XEPCDATA may be enabled with a
<I><X><On or Off> command
If, in a T or T(n)command no tags were found a NOTAG message will be sent. In a T this
means at every exit from the outer loop, in a T(n) command this means when all slots for
the current Q have been tried.
The “Tn” commands:
Tags may also be acquired using the T(n) series of commands. In these commands a
minimal series of Air Protocol commands are issued to acquire the tag data. The tags
are not removed from the round with a A/B transition, so in general these commands are
only useful when the tag population is small.
In all of the T(n) commands, sending the command alone will cause the command to
execute repeatedly. and will continue until a character is received over the
communication port. If the T(n) command is followed by an additional byte, the
command will execute in a loop the number of times specified by the value of the byte.
In each of the T(n) commands the number of slots tried will be determined by the Global
Q value. The Masks sent in the commands that include a SELECT will be determined by
the valuse in the Global Mask structure array. Any XDATA processing events will be
determined by the values in the XDATADESCRIPTOR array.
Note that T1 and T2 modes do NOT send SELECT, so even if masks are active, no
masking will occur.
Note that T1,T2,T3,T4 commands ignore any active XDATA DESCRIPTORS
Command
<T1><LOOPCNT (optional)> send a QUERY/QUERYREP/ACK sequence. Number of
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
65
"T" INVENTORY initiate
QUERYREP is determined by the global Q value.
<T2><LOOPCNT (optional)> same as T1, but each tag reported also reports the RF
frequency it was aquired with
<T3><LOOPCNT (optional)> send a SELECT/QUERY/QUERYREP/ACK sequence.
Number of QUERYREP is determined by the global Q value.
<T4><LOOPCNT (optional)> same as T3, but each tag reported also reports the RF
frequency it was aquired with
<T5><LOOPCNT (optional)> same as T3, but XDATA processing will occur for each tag
found (adds REQRN/READ and or WRITE commands)
<T6><LOOPCNT (optional)> same as T5, but each tag reported also reports the RF
frequency it was acquired with
Note that a LOOPCNT value of 0xFF is the same as no value - a continuous loop occurs
until a char is received on USB
Anytime an EPC code is acquired, the option exists to either read additional data from
the tag, or write data to it. These options are controlled by XDATA descriptors managed
by the X commands.
The Thinkify reader maintains four (4) XDATA read descriptors and four (4) XDATA write
descriptors that may be individually configured to perform read/write operations.
From RESET all are disabled. When a tag EPC is found each of the descriptors are
checked for an ACTIVE condition. If ACTIVE, a read / write at the specified location is
performed of specified length and data. Inside the appropriate inventory, (T, T5,T6) the
operations will be performed right after the read of the EPC and the data reported in the
tag data stream.
Command Group
Tag Commands
Command
<X>[<SUBCMD>[<PARAMS>]]
...
<X><R or W><A OR DESCRIPTORNUM 1 nibble (0 to 3)>[ACTIVE][<PARAMS>]
Flags
<PARAMS>
[#] – Descriptor number
[ACTIVE] – Descriptor enabled
[MEMBANK] – Tag memory bank for the operation
[LEN] – Length (in words) of data to be read/written
[EBV] – EBV pointer into memory for the start of the operation
[DATA] – Bytes to be written.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
67
Sub-Commands
Sub CommandDescriptionLegal Values
XRReport all XDATA read descriptors-
XRRReset all XDATA read descriptors-
XR[#]Report a given XDATA read descriptor 0..3
"X" eXtra Data Read and Write Descriptor Control
for SET
XR[#][ACTIVE]Control Active flag for XDATA read descriptor
[#]
XR[#][ACTIVE][...]When a tag EPC is found each of the 4
descriptors are checked for Active condition. If
active, a read at the specified location is
performed of specified length.
XR[#][ACTIVE][MEMBANK][LEN][EBV (up
to 4)]- Full control of a read
descriptor
[MEMBANK] = 0..3
[LEN] = 1..8 Number of words to read
[EBV] = Word pointer into memory. 1-4
Bytes.
XWRReset all XDATA write descriptors-
XW[#]Report a given XDATA read descriptor 0..3
XW[#][ACTIVE]Control Active flag for XDATA write descriptor
[#]
0..1
See
Description
0..1
XW[#][ACTIVE][...]When a tag EPC is found each of the 4
descriptors are checked for Active condition. If
See
Description
active, a write at the specified location is
performed of specified length with DATA
provided.
XW[#][ACTIVE][MEMBANK][LEN][EBV (up
to 4)]- Full control of a read
descriptor
[MEMBANK] = 0..3
[LEN] = 1..8 Number of Words to write
[EBV] = Word pointer into memory. 1-4
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
68
"X" eXtra Data Read and Write Descriptor Control
Sub CommandDescriptionLegal Values
Bytes.
[DATA] = Data to write to the
location
“X” Command Examples
Example 1
Read extra data in an inventory.
//Read a tag w/ Default parameters.
READY>t
STARTINVENTORY
TAG=3000E2003411B802011029356733
STOPINVENTORY=0x0001 0x004A
//set descriptor 0 to read BANK 1 LENGTH 4 WORDADDRESS 02
READY>xr011402
RDDESCRIPTOR=0
ACTIVE=1
BANK=1
LEN=4
PNTR=02
for SET
//Look for the extra data
READY>t
STARTINVENTORY
TAG=3000E2003411B802011029356733
XRD0 E2003411B8020110
STOPINVENTORY=0x0001 0x0039
//Victory!
Example 2
Use the T6 command with 0x10 iterations to read the data requested in the descriptor
above.
READY>t6A
STARTINVENTORY
TAG=3000E2003411B802011029356733 924250 05 E B I 1FBF
XRD0 E2003411B8020110
TAG=3000E2003411B802011029356733 926750 00 E C Q 1FF0
XRD0 E2003411B8020110
TAG=3000E2003411B802011029356733 926750 02 E C Q 2007
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
69
"X" eXtra Data Read and Write Descriptor Control
XRD0 E2003411B8020110
TAG=3000E2003411B802011029356733 926750 06 E C I 201E
XRD0 E2003411B8020110
TAG=3000E2003411B802011029356733 926750 02 E C I 2038
XRD0 E2003411B8020110
TAG=3000E2003411B802011029356733 926750 06 E C Q 204F
XRD0 E2003411B8020110
TAG=3000E2003411B802011029356733 926750 05 E C Q 2068
XRD0 E2003411B8020110
TAG=3000E2003411B802011029356733 926750 03 E C I 2081
XRD0 E2003411B8020110
STOPINVENTORY=0x0008 0x00DB
Example 3
Set write descriptor to write 3 words with data AABBCCDDEEFF to bank 1 word 2 and
write it into a tag.
//1st read a tag
READY>t
STARTINVENTORY
TAG=3000E2003411B802011029356733
STOPINVENTORY=0x0001 0x0034
//Set up to rewrite a portion of the EPC
READY>xw011302AAAABBBBCCCC
WRDESCRIPTOR=0
ACTIVE=1
BANK=1
LEN=3
PNTR=02
WRITE DATAAAAABBBBCCCC
//Read the tag again and perform the write operation
READY>t
STARTINVENTORY
TAG=3000E2003411B802011029356733
XWR0 WRITE SUCCESS
STOPINVENTORY=0x0001 0x005E
//Read again and we see the new EPC
READY>t
STARTINVENTORY
TAG=3000AAAABBBBCCCC011029356733
XWR0 WRITE SUCCESS
STOPINVENTORY=0x0001 0x003C
READY>
//Victory!
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
70
"X" eXtra Data Read and Write Descriptor Control
Example 4
You can use a T6 inventory command with 0xA iterations to perform the write - write
proceeds partially if it cannot be completed in one operation. The WRITE success
operation is given when all data matches the requested write field. Once the data
matches all XWR messages will indicate success with no further actual write attempts.
Any XREAD or XWRITE that does not complete successfully will return an error code.
Note that in the case of a WRITE, some portion of the WRITE may complete and still
return an error code, if multiple word writes are requested. Also note that in the case of a
WRITE an error code will be generated if the ASYNC response from the tag is
improperly decoded, although the WRITE may have worked.
READY>t610
STARTINVENTORY
//First inventory loop
TAG=3000AAAABBBBCCCC011029356742 919750 07 C E Q CB2D
XWR0 WRITE SUCCESS
//Next loop shows new id.
TAG=3000111122223333444429356742 919750 05 C E I CB83
XWR0 WRITE SUCCESS
TAG=3000111122223333444429356742 919750 00 C E I CBC5
XWR0 WRITE SUCCESS
TAG=3000111122223333444429356742 919750 07 C E I CBE4
XWR0 WRITE SUCCESS
TAG=3000111122223333444429356742 919750 03 C E Q CC07
XWR0 WRITE SUCCESS
TAG=3000111122223333444429356742 919750 01 C E I CC29
XWR0 WRITE SUCCESS
TAG=3000111122223333444429356742 919750 00 C E I CC4E
XWR0 WRITE SUCCESS
STOPINVENTORY=0x0007 0x014F
//Victory!
Appendix A. Using the Thinkify Firmware Update Utility
Appendix A. Using the Thinkify Firmware Update Utility
From time to time, Thinkify will issue upgrades to the reader firmware that add new
features, improve performance or fix issues we uncover.
These upgrades are distributed as a special file with a .hex extension. .hex files are
named with the following format:
PIC_YYMMDD_MmR.hex
Where:
YY = Year
MM=Month
DD=Day
M=Major version number
m=Minor version number
R=Revision number
To Upgrade your reader, place it into bootloader mode and then use the firmware
upgrade utility to install the file. (See the Bootloader command )
From Hyperterminal or TeraTerm, Type:
bootloader<cr>
at the
Ready>
prompt. You should see a message that the reader is entering bootloader mode. Once in
that mode, the reader will no longer respond to regular commands until it is reset. Two of
the LEDs on the front of the unit will rapidly flash back and forth indicating that the
reader is waiting for a firmware upgrade.
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
73
Appendix A. Using the Thinkify Firmware Update Utility
(LEDs are now flashing) Close Hyperterminal and open the firmware update utility.
You should see a message that the program has detected the device: “Device attached.”
Click “Open Hex file” and select the firmware upgrade file from the file manager window:
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
74
Appendix A. Using the Thinkify Firmware Update Utility
At this point Click the “Program/Verify” button to start the upgrade.
The program will erase the old firmware, install the new firmware and verify that the
installation went ok. Click the “Reset Device” button to take the reader out of bootloader
mode and note that the upgrade utility detected that the device has been removed.
Close the upgrade utility, and restart Hyperterminal. Using the “v” command you can
verify your new firmware version:
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
75
Appendix A. Using the Thinkify Firmware Update Utility
Congratulations! You've been upgraded...
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
76
Appendix B. GPIO Port
PENDING...
Appendix B. GPIO Port
The TR200 Desktop RFID ReaderDCN-TF-01009 -007
77
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.