I'm having a little problem with a circuit and I want to tell you my adventures with it.

A few months ago I found a 125 KHz RFID tag reading circuit on the internet and decided to work with it to learn how these circuits work and to learn more about electronics in general.

The circuit is this: 125KHz tag reader circuit

All information about the circuit is on the author's website.

The circuit is supplied with 12V, but I decided to eliminate the power circuit and supply it with 5V, from a power supply.

In addition, I decided to improve it a bit (according to my limited knowledge in electronics), and I added decoupling capacitors (C2, C3, C6 and C7) and a pull down resistor (R3) on the digital output that produces the 125KHz wave which makes resonate the circuit. This pull-down resistor was added to eliminate any noise or fluctuation that could occur at that output.

The resultant circuit remains as follows:

The modified circuit

I sent it to manufacture at https://www.elecrow.com/ and after soldering it was like this:

PCB I made

I tested it with PVC cards and it worked perfectly. Then I tried it with key fobs and wristbands and it did not work.

I have another reader (a Chinese one, the RDM6300) and all my cards, key fobs and wristbands are read perfectly by this Chinese reader.

Then, I used my logic analyzer and the PulseView software. This software is an open source tool for logic analyzers that has a decoder for the EM4100 protocol (the protocol used by all my RFID tags.) I did this to make sure the digital signal to which goes to the microcontroller is good.

I discovered that the PVC card is decoded perfectly, but the signal of the key fobs and the wristbands did not. So the problem is in the analog signal that comes to my circuit. Specifically, that signal reaches my antenna (air core coil) from the antenna of the RFID tag in question (card, key fob or bracelet).

The problem is that a PVC card has a much larger antenna than a key fob or a wristband.

The antenna of the key fob or the wristbands is a very small antenna, and therefore does not produce an electromagnetic field large enough to generate signals of large amplitudes in the receiver.

To solve this, I must increase the gain in the amplifiers, with a corresponding factor, to be able to increase the signals received.

The Chinese reader (which is a different circuit, schematic) amplifies the signals enough to be able to read the RFID tags of anything: cards, key fobs, wristbands, ...

I would like somebody to help me to solve this problem or at least give me guidance on how to increase the gain in the amplifiers in order to increase the signals received.

  • \$\begingroup\$ How much more gain do you think you need? The Chinese circuit has 2 stages with nominal gain (Rfb/Rin) of 1,000x each, totaling 1,000,000 if the OpAmp's UnityGainBandWidth supports that expected gain. \$\endgroup\$ Commented Mar 5, 2017 at 15:17
  • \$\begingroup\$ Your circuit has gain of (390K/33K) * a_mess_of_gain in a pseudo_comparator. \$\endgroup\$ Commented Mar 5, 2017 at 15:25
  • \$\begingroup\$ so, what do you recommend me to do? \$\endgroup\$ Commented Mar 5, 2017 at 15:58
  • \$\begingroup\$ Try to reduce R1 (be sure not overload the current limit of VT1 500 mA) and your loop RLC. \$\endgroup\$
    – user221676
    Commented May 10, 2019 at 18:07

1 Answer 1


The first obvious difference between your circuit and the Sunrom circuit is the driver:

enter image description here

The way the Sunrom drives the transmit coil puts more power into the coil. That gets you more power out to the RFID tag. That's more power for the tag to play with, so it will help with range.

125kHz tags actually work by modulating the transmitted signal. If you transmit a weak signal, you will receive a weak signal. Look for information on "backscatter" RFIDs.

Next up is the choice of opamps.

Your circuit uses the LM358.

It has a bandwidth of 1MHz at a gain of 1. At 125kHz, you have a usable gain of maybe 8 to 10. The first receive amplifier in your circuit is already maxed out - it has a gain of about 10. You can't change the feedback resistor to try and get more gain - there's none there to be had.

If you want more gain, you need to get a better opamp. With a better opamp, you can change the feedback resistor and get more gain. You'll want an opamp with much more than 1MHz gain bandwidth product. There are opamps available with the same pinout as the LM358, but with better performance. You need: higher bandwidth, rail to rail operation on input and output, and operation on a single 5V supply.

The maximum usable gain of your opamp is the gain bandwidth product of the opamp divided by 125kHz. That's where I got the number above for the maximum gain from your LM358.

Last on the list is the antenna.

The site you got the circuit from describes how to make and tune the antenna. It also explains how the backscatter RFID readers and tags work.

Tuning the coil is not optional. If the antenna is off, you won't get good range.

Make the antenna as described (120 mm diameter and 58 turns,) and tune as described (use an oscilloscope while adding or removing turns to minimize the glitch or add and remove turns while testing to see what range you get.)

The obvious place to start is the antenna. Tune it for best performance first.

Then, try using a better opamp and higher gain. You should be able to do this without making a new board.

Finally, you could redo the output stage for more power output (don't forget to tune the antenna afterwards.) You can tack it onto you existing board to test, but will need a new board if you get good performance and want to make it permanent.

And now a prize for missing the bleeding obvious:

The original circuit is designed for 12V driving the coil. You've gone with 5V. You halved the voltage, which gives a 1/4 of the power output the original had.

Start there. Proper 12V power for the transmitter. If that doesn't help, follow all the other steps.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.