Designing NFC "Antennas"

I was talking over antenna design with another forum member and figured it would be good info to share.

I would start by understanding what the circuit we’re building actually is, an LC Tank Circuit. There’s a resonant frequency where the coil/chip combination will naturally draw the most power and have the highest coupling efficiency. The farther your “resonant peak” is from 13.56MHz, the less power is being delivered to the chip.

Once you have an idea of what you want to build, you can use some calculators to figure out the dimensions of your coil that will create the correct inductance. Here’s an LC Tank calculator.

There are three relevant values for your circuit, and unfortunately you need at least two to figure out the third. To find the target inductance, you need to identify the chip and look up it’s input capacitance on a datasheet (standard values from 35-70pF, but some can be as low as 15pF or as high as 100pF). Then you need something like the NanoVNA pictured adove to measure it’s resonant peak. With those two and the calculator, you can determine the inductance you need to meet. If you can’t find the capacitance anywhere, you can always hook the chip up to a known inductance and measure the peak, then you have the capacitance.

Once you have the target inductance you can use a calculator to estimate the dimensions of the coil. For 3D coils with an air core I’ll use a calculator like this. For ones with a different core material it gets more complicated. I also designed a PCB trace inductance calculator that can be really useful for flat coils. You can expect values around 3uH for most NFC coils.

Once you have the target inductance and necessary dimensions, you can get to winding (or CAD’ing). You can buy some enamel coated magnet wire of different thicknesses, but 28AWG will work for most of your purposes. Make sure you have enough before you start winding, especially for LF coils that could be 30mH! If it’s a 3D coil you can 3D print a coil form to wind around and still treat it as an “air core” inductor. Hook it up and check the resonant peak. It’s always a good idea to wind too much so if the peak is low you can just remove a bit of wire to reduce the inductance and bring the peak up.

That’s pretty much it. Blue LEDs are around 45pF and red ones are around 15pF. Conventional NFC coils are usually palm sized. Because we’re shrinking them but still need the same inductance, we’re increasing the number of turns, which increases the impedance (AC version of resistance).

You can buy a NanoVNA on eBay for $60. It’s not required to get an LED to blink, but if you want to have any idea what’s going on with an RFID chip you’re gonna need it. Here’s a video I made of how to set one up for NFC testing.

If you want to really go into more depth with the NFC theory and calculations here’s a good paper.

15 Likes

Was talking to someone else about inductance and what affects it’s value so I’ll repost here:

If you’re interested in the literal math behind physics I always recommend you check out hyperphysics first
http://hyperphysics.phy-astr.gsu.edu/hbase/magnetic/indcur.html

There’s a lot here, but the important thing is the equations at the end, specifically which variables are in the numerator and denominator, which ones are constants, and which ones have exponents (which would make them nonlinear).

So Inductance is:
L = (u * N² * A) / l

u is the magnetic permeability of the core. If it’s air it’s constant. If it’s different grades of iron you can multiply the inductance simply by winding it around different stuff

N² is number of turns. You can see it’s exponential, so double the turns means 4 times the inductance

A is area. A wider coil linearly increases the Inductance

l is length, and it’s in the denominator. A shorter coil linearly increases the Inductance

As a result, a perfectly flat wide disc coil wound around a flat disc of ferrite would have a really high inductance. A straight wire is the exact opposite of that and has a very low Inductance.

3 Likes

Was helping someone make a DIY field detector coil for HF with just an LED and some wire. Thought I would repost here:

  1. Figure out roughly what dimensions you want the inductor to be (circles are easiest but some similar coil shapes couple better)
  2. grab some enamel coated magnet wire (maybe 0.32mm diameter) and some pico farad capacitors (or LEDs which are about 20pF)
  3. Use an LC tank circuit calculator like this one:
    Resonant Frequency Calculator | LC Calculator - Good Calculators
    plug in 13.56MHz as the frequency and some capacitor values that you have handy (more capacitance means wider frequency range while more inductance means better coupling). Figure out a rough inductance that matches with your available capacitors (ex: 47pF capacitor + 2.93uH inductor)
  4. Once you have a target inductance use an inductor calculator like this one
    Coil Inductance Calculator
    If you want a flat coil change it to Multi-layer, single-row coil and Centimeters. Try out some values until you find a size/turns that matches your target inductance
  5. take your enamel wire and cut more than you would need to wind the coil (you can calculate the linear length easily enough from the circumference). Wind the coil. You can wind it on some tape for stability or add cyanoacrylate glue afterwards to bind the windings together. Don’t use metal tools or you’ll scrape off the enamel which can cause a short
  6. use a soldering iron to burn off the enamel from the wire tips. Tin the iron tip, press it to the wire, add more solder until the bead engulfs the wire, then slowly move it along the wire to clean it.
  7. solder an appropriate capacitor (or LED) to the wire tips

5 Likes

This is for @Taggart to help explain winding your own LF coils. I just posted here to consolidate information for reference later. Here’s a link their original thread.

First it’s always a good idea to check the datasheet for the chip if you have it for the input capacitance. Luckily DT hosts the ATA5577C Datasheet for just this reason. If you check out the Electrical Characteristics section you’ll see the available options.

I’m under the impression 330pF is the most common, but if you measured 175pF then let’s go with that. That would mean it’s probably a 130pF chip with a bit of extra capacitance from the leads of your meter. Next you could use this calculator to figure out that you would need a 12.47mH inductor to match this chip.

Even if you suspect the capacitance to be higher, it’s always better to undershoot. Capacitance and Inductance both lower the resonant peak. If it turns out higher than you thought, you can just remove turns from the coil to compensate. If it turns out lower than you thought, you can add a parallel capacitor.

I usually calculate 3D coil dimensions using this calculator from 66pacific, just because I’ve verified it several times and know it works. You can use whatever you want. Calculate a suitable number of turns for the dimensions you have, and start winding. Always good to overwind, because you can easily remove turns. If you’re having trouble reaching such a large 12.47mH inductance in the available space, either use a smaller gauge wire since turns are exponential, or add a strip of thin ferrite around the interior of your winding channel to change the magnetic permeability of the core.

If you really want to investigate the performance more than that, you’re going to need a VNA like pictured above. I’ve posted a video in this thread about how to set one up. It will tell you how far off you are from the target resonant peak. Otherwise, just keep trying until you get the maximum read range.

Here’s an example of an inductance calculation using a 25mm diameter coil with 17 turns that result in it being 4mm long. The resultant inductance is 44.6uH

5 Likes

A post was merged into an existing topic: Help designing 125khz passive inductance coil for T5577

I was talking with @typk and @mfries18 about using CoM payment modules and wanted to share some info here. Here’s a “Coil on Module”:

You can see it has the contact interface on one side, and on the other side it has a chip and an antenna. While you can use the CoM directly to make purchases, the antenna is very small, and it is tuned far from the target frequency (17-19MHz instead of the NFC standard 13.56MHz). To enable it to communicate with a reader, you need another, physically separate tuned circuit which I’ll call a “resonant repeater”. The resonant repeater has its own coil antenna and capacitor tuned to resonate near to the target frequency.

The two antennas (CoM and repeater) are placed physically against each other so that they mutually couple, but are electrically isolated from each other (separate pieces/board). Because of the resonant frequency range of the CoM module, you will want your resonant repeater to have a resonant frequency around 14MHz. I haven’t yet discovered the math to exactly map out the behavior, but when these mutually coupled circuits are placed near each other, you get two resonant peaks. One is slightly lower than the repeater’s resonant frequency, and one is higher than the CoM’s resonant frequency. You want the lower peak to be slightly above 13.56MHz.

To make the resonant repeater, you’ll need a coil antenna and a capacitor. You can hand wind a wire coil and solder on a discrete capacitor using the information from earlier posts in this thread. If you want to make a resonant repeater on a PCB using copper plates as the capacitor, you’ll need to do a bit of math. I use Wolfram Alpha to make it easier.

C = ε0 * εr * (A/d)

* ε0 (vacuum permittivity) = 8.8541878128⋅10−12 F/m
* εr (relative permittivity) = 3.4 [polyimide]
* A (area of plates): 1cm2 = 0.0001m2
* d (distance between plates): either 0.025mm or 0.012mm for PCBWay flex

Example:

(8.8541878128*(10^(-12)))*(3.4)*((0.0001)/(0.000025))

= (1.2041695425408) × (10^(-10))

Which is 120pF (pico-Farads)

Another important factor to consider is called “coupling factor” (k). To get the ideal coupling, the reader antenna and the tag antenna should be the same size, have a similar number of turns, and overlap completely. In an ideal coupling scenario, the resonant peak may be 14.5MHz.

In less ideal coupling scenarios, the amplitude of the draw (amount of energy available to the tag) will decrease. Another important factor is that the resonant peak will change. Usually this manifests as the resonant peak becoming lower as the coupling degrades.

You will need to account for this when designing and testing your circuits. You want to make sure you have the ideal coupling on your measurement antenna to get accurate resonant peak values. You also want to plan your design around the intended coupling scenario. In this case there is a payment terminal with a much larger antenna, so the coupling factor will be poor, and the resonant peak will go down a few hundred kHz.

4 Likes

I connected some more dots and made another useful tool, so I thought I would share here.

Here are two zips. One contains an inductance calculator for flat coils that I made a few years ago. The other contains a new interwinding capacitance calculator that I just made. They are both executable java archives. All you need to do is have java and click on the little batch file I put in there to launch them.

Inductance_Calculator.zip (106.3 KB)

Interwinding_Capacitance_Calculator.zip (3.1 KB)

The thing I mapped out more accurately has to do with the inherent capacitance that a coil has, which I’ll call “interwinding capacitance”. This makes mapping out the properties of a coil very difficult because you cannot measure this capacitance directly with a meter, as the coil itself is a short. One easy way to discover this value would be to measure the “self-resonant” frequency of the coil by shorting it to itself with no other components. The trouble is, if you don’t know the inductance of the coil, then you have two unknowns and cannot find either with any certainty.

The way I’ve been getting around that limitation is connecting my coils to two different tuning capacitance values and recording their resonant frequencies. I then try out each combination with a variety of different interwinding capacitance values added until the difference between the resultant inductance values is at a minimum. I then know what the most likely inductance and interwinding capacitance are. For some of my tests though the resultant inductances were very different, and the minimum I was looking for would only come about if I applied a negative interwinding capacitance value.

The key element I was missing has to do with the quality of the coupling in a coil (which I explained above). If your tuning capacitor is rated for 16 Volts, but your resonant circuit has poor coupling and only induces 5 Volts peak-peak in the coil, then the tuning capacitor does not have enough driving force to fully fill its plates with charge, which means the utilized capacitance value is much lower.

This program iterates through each percentage point of potential capacitance utilization, and within each of those it checks interwinding capacitance values from 1-100pF. It then lists any results that are below your tolerance threshold. For a birds eye view I would start with a large tolerance value like 0.1uH and let it run, generating a very long list. You can see where the peaks and troughs are in the resultant data set and rerun the calculator with a smaller tolerance. There will be many possible configurations, but you can use your data from the inductance calculator or measure the coil directly with an LCR meter to get a ballpark inductance value and work from there.

Here’s the math that iterates to find the inductance and interwinding capacitance if anyone is interested.

public static void minimize() {
	double L1;
	double L2;
	double diff;
		
	for(int i=1;i<=100;i++) {
		for(int j=1;j<=100;j++) {
			L1 = 1 / (4 * (Math.pow(pi, 2)) * Math.pow(res1, 2) * ((cap1 * (i * 0.01))+convPico(j)));
			L2 = 1 / (4 * (Math.pow(pi, 2)) * Math.pow(res2, 2) * ((cap2 * (i * 0.01))+convPico(j)));
			diff = Math.abs(L1 - L2);
			diff = sigDigRounder(convMega(diff),3,1);
			if (diff < tol) {
				utilPerc = i;
				interWindC = j;
				ind = sigDigRounder(convMega(((L1 + L2) / 2)), 3, 1);
				System.out.println("Difference between inductance values [<tol]: " + diff);
				System.out.println("Percentage of capacitance utilized: " + utilPerc);
				System.out.println("Interwinding capacitance: " + interWindC);
				System.out.println("Inductance: " + ind);
			}
		}
	}
}
3 Likes

So i watched your NanoVNA guide maybe a dozen times over the past week. I appreciate that so much. I would add for anyone watching, step 1 needs to be calibrating your NanoVNA. mine was not calibrated and i couldnt for the life of me get a read…

My request. can you post your current scale settings on getting the silly SMA PCB Antenna’s working. My diy coil works great, but even attempting to use these PCB Bsed antennas is frustrating. Thankyou for all this.

1 Like

Unfortunately since then I purchased a much nicer LiteVNA 64 which can go up to 6.3GHz for WiFi/BLE tuning.

The values won’t be the same as yours (because mine uses logmag in dB now, not arbitrary scale values), and even if I was using a nanoVNA the scale values vary widely depending on the manufacturer and the firmware.

What I can recommend is test large and then work down. Use a center of 13.5MHz and a span of 5MHz. Start with a scale/div of 1000 and change the reference position value until the trace is about 1/3 of the distance from the top of the screen. Then introduce a tag that you know works at 13.56MHz and is nearly the same size as the coil you’re using (H-field probe), so that there is good coupling. If the trace is significantly sloped, it’s because the probe has significant capacitance and it’s own resonance. You can work with that though.

If you don’t see any dip at 1000 scale/div, try 500, and 100, and 50, and 10, and 0.5 until it works.

To be honest, the default factory calibration is really adequate for near-field testing of the resonant peak in my experience (unless you’re using a really long coaxial cable). I’m not gonna say don’t calibrate, just don’t break your back trying to get hyper precision out of the instrument. Good calibration is much more important for when you’re trying to investigate the complex impedance of an antenna using the smith chart.

4 Likes

I’m helping a community member GameTec_live lay out an actual for real realz antenna to add bluetooth to a project so I figured I’d share here for anyone interested.

Here’s the reference drawings from the manufacturer of the 2450AT18A100E bluetooth antenna.

So to have the highest chance of it working acceptably first try I would follow their layout and matching circuit values. Later you can use a VNA to test the complex impedance with a smith chart and fine tune those values, but that’s for another post.

An important aspect of antenna design that isn’t communicated in the chip antenna datasheet is the “feedline” characteristics. It says use a 50Ω feedline, but what does that mean? Antenna lines need to have a characteristic 50Ω “impedance” which is a combination of not just the resistance of the wire (which is vanishingly small for such a short trace) but also its inductance (caused by the space around the trace and the current flowing through it allowing a magnetic field to form) and its capacitance (caused by the electric fields around the trace coupling with the ground planes on the top and bottom layer which are at a different electric potential).

In the area around the antenna (and likely the whole board) you’ll need to have a ground plane on the top and bottom layer. That means there will be coupling between the feedline and the bottom plane, as well as the parts of the top plane that are parted to the sides of the feedline. You can calculate an approximate impedance for a feedline trace with a tool like the Saturn PCB Toolkit, which is very useful and I recommend any PCB designer get familiar with. In this case Gametec will need a 1mm wide feedline trace with 0.1524mm (6mil) isolation from the top layer ground plane, on a 1.6mm thick PCB (minus the thickness of the top and bottom copper).

Another concept to consider is called “via fencing”. This means placing vias at regularly spaced intervals to connect the top and bottom ground planes. This creates a cage the prevent the space inside the PCB from forming a “resonant cavity” for any intentional data signals or ones from the environment. This is necessary around the perimeter of the antenna keepout zone. If you want to be really thorough you can put via fencing all around the perimeter of the PCB to keep out at least the environmental signals entirely and dampen the data signal propagation. 1 or 2mm spacing between the vias should be more than adequate.

3 Likes