RFID Arena


System developers - Get familiar with InventoryServer

InventoryServer is a new and excellent tool for creating RFID applications when multiple fixed RFID readers and external antennas are used in the same system.

Author: Ari Pöyhönen, System Specialist at Nordic ID


InventoryServer is a .NET Framework class library including functionalities to perform inventory on UHF Gen2 tags with multiple readers, connected via Ethernet or USB, simultaneously or synchronized.

The inventory results of each reader/antenna are transmitted to a centralized database (TagBase) enabling easy access to the data for further analysis.

Inv Serv System

InventoryServer contains features that help system developers create applications for projects, which use multiple fixed RFID readers and external antennas in the same system. InventoryServer is especially suitable for asset tracking applications that require accurate location information on assets. 


The settings for the readers and the antennas should be defined in the Readers.xml file. Define the technical specifications of the antennas, the inventory parameters and the filters to be used. 

The Host application will connect the reader(s) through InventoryServer (USB and/or TCP/IP Client).

As the reader connects, the InventoryServer retrieves the reader parameters in the Readers.xml file. If there is a matching serial number for the connected reader in the Readers.xml file, the inventory parameters assigned to it will be used. If a matching serial number cannot be found, the settings can be defined and saved in the Readers.xml file.

Once the reader is enabled, it starts to perform the inventory according to the given parameters in the defined group.

1.1.1 GROUPS 

Inventory Server performs continuous inventory by groups. There can be one or more readers in one group.  In the groups the inventory gets performed one antenna (or reader, depending on the InventoryMode) at a time to avoid radio interference. The groups are independent of each other and perform inventory parallel to each other.

Inventory Server -group -pic -Nordic -ID

The groups are meant to speed up inventory rounds when there are several antennas in the system and should be placed as far away from each other as possible (>5m) in order not to interfere with each other's reading performance. Inventory parameters and the amount of tags to be read determine how long the inventory takes.
Inventory round for one Group = Number of antennas x (Inventory time / antenna)


InventoryServer saves the inventory results of all the groups into one TagBase list. This enables easier further use of the tag data for the application developer. The tag data in the TagBase is preserved there as long as the host application removes all defined tag data.  

Once all the active antennas have performed the inventory, a check-up will be performed to see if more than one antenna has read the same tag. If a tag is read by two different antennas, the antenna with the higher RSSI value is selected and the tag is saved into the TagBase list. 

If a tag is not in the list, it will be added and it will get its first LocationHistory entry.

If the tag was already in the TagBase, "lastSeen" will be updated with a timestamp and if the tag was read with a different antenna compared to the previous read, a new ReaderID or AntennaID will be added to the LocationHistory.


TagBase contains a LocationHistory list for each tag. This enables tracking of each tag from one antenna to another. One line contains the following information:

readerID -  Reader ID
antennaID - Antenna ID (0-3)
eventTime - Timestamp
histEvent - Event  0=location change 1=seen 2=not seen

Every time the location of the tag changes (ReaderID / AntennaID has changed), a new event/line is added. If a reader / antenna has seen the same tag before only the eventTime timestamp gets updated. 

Host application will clear the LocationHistory list if needed. As default the LocationHistory functionality is off.

Loc Hist Graph
Tag LocationHistory tracking using InventoryServerTest program


Following transactions cause the InventoryServer to transmit events to the host application:

ReaderConnectedEvent - Reader is connected to the InventoryServer.

- Connection to the reader is switched off.

- An inventory has been completed in one group. The parameters will tell that the inventory has been performed in: "GroupID" on round: "RoundID". RoundID is basically a serial number that grows by one each time all the active antennas in the group have performed the inventory.  On the basis of the RoundID the application can identify just those tags out of the TagBase that were counted at that specific inventory round.

ErrorEvent - A function cannot / has not been be performed as planned. Log.txt also collects a log of the exception events. 

FwUpdateStatusEvent - InventoryServer informs you of the stage of a Firmware update process.


  • Performing inventory using specified settings for each reader and antenna.
  • Collects inventory results to TagBase for further processing.
  • Automatic connection management. Connection management for multiple USB devices and Client mode readers (Ethernet).
  • Accurate location detection when multiple antennas reading same tag.
  • LocationHistory list for collecting antennaID, readerID and timestamp to store information when tag has change location.
  • Host application has full control over the readers and the Inventory process. (start/stop)
  • Firmware update remotely to connected readers.
  • Shortens host app development time


  • Asset tracking type of applications with accurate location information
  • OOS (Out-Of-Stock) applications
  • Smart shelves
  • Security Gate (EAS) applications
  • Supply Management


InventoryServerTest Windows PC application.

The settings for the readers and the antennas can be configured at the same time with the physical installation using the InventoryServerTest software. The software can be installed into Windows laptop PC and the connection to the readers can be made via Ethernet (e.g. via WiFi) or USB. The settings can be saved into the readers.xml file, which the InventoryServer application software will use with all the readers connected to the system. 

The software comes with a complete source code to help the application developers to create similar functions in their own systems. 

  1. Sample programs
  2. Documents (InventoryServer.NET API)
  3. Support


For more information about InventoryServer or related issues, contact Ari at ari.poyhonen@nordicid.com.

8 comments on “System developers - Get familiar with InventoryServer”

  1. Posted 02 November 2017 at 02:36:08

    Thank you very much for sharing most informative articles here.keep posting more updates like this with all updated articles here.

  2. Posted 14 April 2018 at 12:33:28

    Thanks for this great post, I really enjoyed reading.

  3. Posted 26 April 2018 at 14:35:07

    I found very interesting and nice keep sharing awesome shared

  4. Posted 26 April 2018 at 14:36:25


  5. Posted 02 May 2018 at 08:57:49

    Very Good and great share awesome...!!

  6. Posted 16 May 2018 at 14:18:59

    thanks u for sharing good information

  7. Posted 16 May 2018 at 14:23:16

    I do like the manner in which you have framed this particular matter and it does.
    <a href="http://rajtrickz.com/showboxapk-download-showboxapk-instal/">

  8. Posted 18 May 2018 at 15:32:53

    The <a href="http://wiki9.in/">latest tech updates</a> on the movies you're most interested in seeing.

Post a comment

Keep in touch

Send me more info!
Send me a Newsletter!
Send me a Magazine!
Contact info