Using multiple radio-frequency identification (RFID) readers in a relatively confined space can be a tricky proposition. We tell our customers that if they want to have multiple readers in their application that they should space them at least 1 meter apart. That is quite a significant distance, and in some cases, it isn't practical.
The issue is that an RFID reader is an "intentional emitter". In other words, RFID readers spew out all kinds of radio frequency noise with the intention of locating a corresponding RFID tag in close proximity. This has the side effect of interfering with other RFID readers that are in close proximity to the point where they will not work reliably, if at all.
Often times, using multiple readers in a small space is desirable. So, how can we overcome this problem? Two options present themselves:
- Shield the readers from one another so that the amount of interference is negligible.
- Only have one reader active at a time.
While the first option looks attractive, it can be difficult to adequately shield the devices from one another to ensure good performance. Furthermore, the shielding will usually have an effect on the maximum read distance, meaning that even if you can successfully shield all the readers you will take a significant hit to read distance. By all means try this solution for your system. At the frequency at which our RFID readers operate, even something as simple as tin foil should block the signal.
The second option is much more effective, and is surprisingly easy to implement. For this to work, you would have all the readers disable their antenna by default. Then you would enable one of them, wait a short time for any tag gain or loss events then disable it and move on to the next reader.
The minimum read time for the Phidgets RFID reader is about 50ms, so if you set your cycle period to 100ms or so you should have more than enough time to detect if a tag is present. For an array or 5 readers the tag would only have to be present at a given reader for a half a second for you to be able to guarantee detection. This method only starts to fail when the number of readers in the array is large enough to make the minimum guaranteed detection time impractical.