The EPCglobal Class 1 Generation 2 air interface standard for passive UHF tags (also known as ISO18000-6C)  is  widely used for UHF passive RFID tags.  oneTagWorld is a Python-based emulator consisting of a control panel and a simulated tag.  The user can power up the tag and exercise the standard using the controls in the bottom window, while viewing the current tag state in the top window.  oneTagWorld is a convenient way to become familiar with the operations of the standard (and somewhat less boring than reading the full standards document).  Release 2.0 supports all required commands except KILL (what was the point of killing your only tag?).  A number of improvements have been made over Release 1.0, including (hopefully) correct handling of power-off and power-on conditions and flag timing.  The interface window has been split into a separate tag window and control window for convenience when using smaller displays.  

Pasted Graphic

These files are distributed open-source for your free use and modification, with two provisos: please retain my name-company credits in the comments, and if you make improvements in the code (it could use them!) please send a copy to me. Comments and questions are also welcome. You'll need Python 2.3 or later and TKinter (the most common Python graphical interface) to run oneTagWorld.   The files are provided as a ZIP archive.  Just decompress all the files into a convenient folder and run from your terminal, with Python Launcher, or from IDLE.  I'm working in Mac OS 10.5 under Python 2.5, but Release 1 ran fine in Win XP SP2 and Python 2.4.  

There are several bugs that I've found time to discover but not correct. Here’s a contribution from user Antoni Morro, January 2008:

“When I was trying to do a RequestRN the following error message promp up: " Type Error: float() takes at most 1 argument (2 given)". I just modified that for this: currRN=int(currRNValue,16). Idem for ACK command. “

oneTagWorld archive