RFID reader for Arduino?


Does anyone have a recommendation for an RFID reader for use in an Arduino project? I would like a large range, but I might be able to make do with 2-3 inches.

@vicatcu, where did you get the the tags you showed me on Thursday and what reader do you use with it?


@sean I actually just finished getting RFID working for the AuthBox project. I used the Seeedstudio Grove RFID reader which I got from Amazon here, but there are other compatible ones (I think) on Seeedstudios website as well.

Any 125kHz tag should work, I think the ones I got were from Aliexpress years ago, but they are readily available from Seeedstudios, Amazon, etc.

Note, I discovered that if you want to read the code that is etched onto these tags, you have to use the interrupt-based Wiegand decoder example linked from the Seeestudios wiki page. The TTL UART mode reads a unique value, but so far as I can tell it has no relationship with the laser etched code. Update to the AuthBox build log thread forthcoming.


Thanks Vic. So I looked at the Grove on Seeedstudio. I am a little unclear on how to connect it to an Arduino. It implies that the Grove system is modular and uses a special shield. But perhaps in can be used without a shield too. Do you use a shield?

Also, do you know if the range is affected by the orientation of the tag?

I have also come across this Innovations ID-LA20 module which may have a bit greater range which would be useful to me.


There is a shield, but it’s literally just a bunch of standardized connectors to route signals to Arduino pins. I’m not using it. I just take the cable and cut off one end then strip the wires and splice them with Dupont style jumper wires to plug them directly into the Arduino pins I want to use.

In order to use the Wiegand code I alluded to before (without modification), you have to connect the wires to the Arduino as follows:

RED = 5V from Arduino
BLACK = GND from Arduino
WHITE = DIG2 on Arduino
YELLOW = DIG3 on Arduino

I think any two INT pins (i.e. compatible with attachInterrupt) would work instead of DIG2 and DIG3 if you are using an Arduino variant with more INT pins and you make the associated changes to the code, but those are the only two on an Uno. And if you don’t care about the code matching what’s etched into the tag, then any two pins will serve using SoftwareSerial to talk to it at 9600 baud.

A few years ago, I had done some work with the ID-12 module and wrote an Arduino library for it on the IG Github here. I suspect the code would work for the ID-20 as well given they share a datasheet. If I read the datasheet correctly the ID-12 is good for 12cm and the ID-20 is good for 18cm is the fundamental difference. Whereas the Grove reader is good to about 7cm.

I would be pretty surprised if the range was not dependent on orientation because this technology (regardless of device used) is all based on magnetic coupling of the coils, which together form what amounts to a transformer (tuned to 125kHz in this case). That is generally strongly influenced by geometry. You get the best coupling performance when the magnetic field lines / flux are aligned with each other, and the worst performance when they are perpendicular to each other.


Awesome info! Thank you so much Vic!