Extend range for MFRC522 RFID Reader

I just bought this: SainSmart Mifare RC522 Card Read Antenna RF RFID Reader IC Card Proximity Module – SainSmart.com

..and I was wondering if there's any way to add an external antenna to it to increase the read range? I'm trying to get it to read tags through my front door for an RFID door lock.

Thanks!

Set RFCfgReg to 48db gain. That should get you through an average door.

Hello,

I am trying to set RFCfgReg to 48db gain. But i think there is error for converting values with the Library that i use. When i write to this register, i can no longer read tags. Im usin this library

Value Table from Datasheet:

Table 98. RFCfgReg register bit descriptions
Bit Symbol Value Description
7 reserved - reserved for future use
6 to 4 RxGain
[2:0]
defines the receiver’s signal voltage gain factor:
000 18 dB
001 23 dB
010 18 dB
011 23 dB
100 33 dB
101 38 dB
110 43 dB
111 48 dB
3 to 0 reserved - reserved for future use

RFCfgReg = 0x26 << 1, // configures the receiver gain

mfrc522.PCD_WriteRegister(0x26 , 0x7F); Writing 7F to register

When i try to read this value

Serial.println(mfrc522.PCD_ReadRegister(0x26));

it returns to serial monitor "124"

if i write 6F to register it reads "108"

How to setup gain configuration ?

Ok, now i figured it out.

I was triying to accomplish this in my sketch but this need to be done at Library (which initialize the module).

Added code line to PCD_Init() (MFRC522.cpp)

PCD_WriteRegister(RFCfgReg, (0x07<<4)); // Set Rx Gain to max

Before

PCD_AntennaOn();

And ? measured difference between gains, with default value Module can read tags at 2 cm far, when value maxed now it is about 3 cm. Thank you.

There are also some registers to tune the impedance of the antenna but I don't know enough about RF to make any sense out of the datasheet. None of the libraries available on the internet make any changes to these registers even though they define their locations. Perhaps these cheap rfid-rc522 modules use a reference design and the default values at start up are correct. It would be nice if someone who knew more could confirm though.

Maybe someone knows, is it possible to solder external antenna on RC522? If yes, then where? I already tried some different spots to solder it, but i'm not sure why it doesn't work.

rencius:
Maybe someone knows, is it possible to solder external antenna on RC522? If yes, then where? I already tried some different spots to solder it, but i'm not sure why it doesn't work.

Yes it is. You only have to remove the soldermask from the antenna (near to C11 and C10), destoy the connection to the antenna (in back of the soldermask) and finally solder the new antenna on the place where you removed the soldermask.

FlyingNautilus:
Yes it is. You only have to remove the soldermask from the antenna (near to C11 and C10), destoy the connection to the antenna (in back of the soldermask) and finally solder the new antenna on the place where you removed the soldermask.

Ok thanks. So you mean like that?

Thanks to @mdxs library now supports Antenna Gain Control, please update.

Excuse me , I'm a student.

I'm try to improve reader's range of Maifare Rc522 same you

but I have some problem.

First I try to set the db Gain and then It can improve a little bit .

It increase the range up to 5 cm but I want more then that (about 30 cm)

what should I do .Please recommend to me.

If I connect external antenna which one suitable for Maifare RC522

Thank you :cry:

omersiar:
Hello,

I am trying to set RFCfgReg to 48db gain. But i think there is error for converting values with the Library that i use. When i write to this register, i can no longer read tags. Im usin this library

GitHub - miguelbalboa/rfid: Arduino RFID Library for MFRC522

Value Table from Datasheet:

Table 98. RFCfgReg register bit descriptions

Bit Symbol Value Description
7 reserved - reserved for future use
6 to 4 RxGain
[2:0]
defines the receiver’s signal voltage gain factor:
000 18 dB
001 23 dB
010 18 dB
011 23 dB
100 33 dB
101 38 dB
110 43 dB
111 48 dB
3 to 0 reserved - reserved for future use





RFCfgReg = 0x26 << 1, // configures the receiver gain

mfrc522.PCD_WriteRegister(0x26 , 0x7F); Writing 7F to register 


When i try to read this value 

Serial.println(mfrc522.PCD_ReadRegister(0x26));

it returns to serial monitor "124"

if i write 6F to register it reads "108"

How to setup gain configuration ?

I am not an expert, however I am pretty sure that you can't extend the range of MIFARE reading to 30CM with this module, you would need a very fancy piece of kit if it is possible at all.

These are near-field devices, not radios, so don't expect miracles. The way it works
is not sending and receiving radio signals, but by detecting the small change in
impedance of the tuned antenna circuit caused by the RFID tag modulating its
tuned circuit. Move the RFID tag out from the antenna's near field and there's
no effect to measure. The best you can do is use a larger antenna coil with
a larger field area, but that usually means more power is needed and more
sensitive "receiver".

Its not really a receiver of course, but an amplified version of the fluctuations of
the average output voltage in the tuned circuit.

rencius:
Ok thanks. So you mean like that?

Completely wrong. It didnt worked because i tried. Its power and antenna's inductance, capacitors are designed for this circuit only. I think, external antenna will not do anything. If you want to try, you should find the middle point length of the antenna cable, solder a cable from mid to upper part of c8 capacitor. Then the other two sides of antenna should be connected to the lower part of c11 capacitor and lower part of c10. When i tried this, it worked in 5mm distance with external antenna.

Anyone knows how to increase the card read-write distance upto 10cm+ ? if you help, i will be happy.
This may help us but so complicated for me.
http://www.nxp.com/documents/application_note/AN077925.pdf
Thanks.

I want to use Interrupt pin of rc522 , but I'm unable to do it . The datasheet says four registers might be configured to do this , ComIEnReg ,DivIEnReg ,ComIrqReg ,DivIrqReg . Pls help me to configure it .

Puntaci - It didn't work because you did it wrong. Making an antenna is a complex business, it needs to be tuned to the right frequency. You can't just stick on any old coil.

MarkT you are wrong, the 125KHz work like you described but not the Myfair cards that do use radio to excite, and a back channel transmitter at a quarter of the excitation frequency.

^^ IAWTC

Adding capacitors will screw up the frequency for one thing.

I'd imagine it could be done, but then you would have to worry about distortion if the gain is too high, and also eavesdropping. Reading through the specs too, they seemed pretty concerned about near-field UID collisions.

You can't adjust the receiver?

I am also working on the same thing to increase the range but max range achieved is 5cm when I am using the reader in open but the range decrease further to 2-3 cm when I am using the same in the electronic lock any suggestion the lock body is of aluminium.

Any metal around the mount of an RFID receiver will reduce the range you get. Mount it away from metal.

Is possible to improbe the read range tuning the antena with the capacitors and resistors on board.

You can see an example of adafruit looking for "PN532_AntennaDesign_v1.0.pdf"

It use NXP Application Note AN1445, the Excel Sheet AN144411.xls which comes together and there it explain how to design and tunning an antena.

There is another Application note about how to amplify the MFRC522 from NXP. AN1425, it makes use of 2 transistors to increase the gain of the chip.

I Am currently designed a small and narrow antena to a special cabinets but I have no Vector network Analizer nor Low impedance prove so I am looking for hire one for a while to tune my antenna.

My first attemp was copiying the NFCShield 2 Impedance matching components (Resistors, Capacitors before antenna), and copy the external antena that is provided, but after the prototipe it did not work, so I Remove a Loop of the antenna and it worked, removed another loop and worked better. Then I simulate this antena desing using ANTENNE.EXE from ST Micro to calculate the stimated impedance about 1.5uH then Designed another Antena with the same value of uH but with the dimensions I required. But Now I need the VNA to test and improbe this.

Hello,

i stumbled over this thread today while i played around with my new MFRC522 RFID Reader.
My intention was, to be able to read the rfid-cards through my door.
Therefore i wanted to extend the range of the reader.
I had success by placing a small metal reflector behind the reader.

Hope it helps someone.....

Good luck!