I'm currently working on a 6 layer board that has both an applications processor and a GNSS module (along other things), and I find myself in a certainly puzzling situation. Let me describe:

I have a 6 layer board manufactured by JLCPCB, with prepeg impedance 4.05 and the following stackup:

-L1: Signal -L2: GND

  • L3: Signal + PWR
  • L4: PWR
  • L5: GND
  • L6: Signal

image 1: stackup


The layout of the part is as follows: there's a GNSS module on the bottom (red layer), connected to a THT SMA connector on top. Internal layers (complete planes below this section, hidden for better visibility) have reference plane openings as seen on the saturn PCB toolkit screenshot below.

On the RF path there's a TVS, a bias-T and a DC block capacitor (as recommended on the HW integration manual of the receiver).

image 2: layout


In order to maintain 50Ω path, I used Saturn PCB Toolkit to get the values for the width of the microstrip and the "via" (THT SMA signal pad) dimensions.

Saturn PCB Toolkit and a tool by the manufacturer report very similar values, between ~0.146 to ~0.16mm for a 50Ω microstrip. I settled for 0.15mm.

(Note there's a mismatch on the manufacturer stackup. On the static page they list the prepeg as 0.1mm whereas in the impedance tool it's 0.0889).

image 3: microstrip calculator


Via (connected to "image 2" GNSS_RF signal trace):

image 4: THT SMA center pin calculator


This is the current state of the things. I received and assembled a couple of the boards to try the circuit and now I'm fixing issues for the next revision. Here's where I thought: Let's try to use that expensive toy you have there to figure out if the RF section is properly executed.

Assumption #1:

If the transition between the THT SMA (port 1) and the microstrip + routing to the SMD pad (image 2 pad 2)(port 2) is properly executed, everything should be Z0. So, if I normalize the TG output and then insert the DUT in the middle, there should be no change (ideally) on the amplitude of the signal as seen from port 2.

Test procedure: Normalized tracking generator De-soldered C72 and soldered a small SMA to coax cable. Fed TG output to the THT SMA and connected the RF input to the SMD pad using a botched SMA to U.FL cable.

image 5: Test setup

pcb test

To my surprise, assumption #1 seems to be wrong. I can observe a "periodic" change in amplitude, whereas I'd have expected a "flat" (-ish) line.

image 6: SA plot (yell normalized, purple image 5 plot) SA plot

I repeated the experiment on a blank PCB soldering only the THT SMA and replacing C76 for a 0ohm resistor. I found a ~1dB improvement but the shape of the "ringing is essentially the same.

Looking for some information on this issue I stumbled upon what I consider a very good thread on a similar issue.


  1. Is assumption #1 correct?
  2. What other experiments / tests could I perform?
  3. Are calculations of the microstrip and SMA signal properly made?
  4. Is it possible that my pads (passives along the RF trace) and SMD pad of the GNSS module are indeed acting as a capacitor? Should I void the reference planes to reduce this effect?
  5. Would you recommend that I design a PCB with several pad shapes and cutouts to further analyze this behavior?


Since I have a directional coupler I can attempt to perform S11 measurements on the DUT (only up to 2GHz). Following Neil_UK recommendation I soldered down a 49.9R 1% 0603 resistor (no 100r at the moment), and did a couple of passes, one with a 50R load and another with the "terminated" DUT.

image 7: Coupler with 50R load attached Coupler with 50R load attached

image 8: DUT soldered termination DUT soldered termination

Here's the result. Yellow line is the open load normalized trace, pink is the 50R load (image 7) and blue is the DUT(image 8). I cut away a bit of the SMD pad and got about 0.5 dB of improvement. image 9: S11 plot S11 plot


Since I wanted to verify the effects of different transmission lines vs. reference planes and connector types, I designed a small test board with different designs to have a reference when designing boards as to what would be the expected response. I wanted to test the following transmission lines (with several connectors):

  • Microstrip with reference plane L2
  • Microstrip with reference plane L3
  • Grounded coplanar waveguide reference plane L2
  • Grounded coplanar waveguide reference plane L3

The finished board looks like this:

image 10: Board top board top

image 11: Board bottom board bottom

image 12: Board sections Board sections

image 13: Gerber L1 L1

image 14: Gerber L2 L2

image 15: Gerber L3 to L6 L3-L6

This time I went with Eurocircuits and their defined impedance service, since the final boards will be manufactured there. The stackup from Eurocircuits is as follows:

image 16: Eurocircuits stackup

Eurocircuits IS400 stackup

So, after testing all the combinations for both S11 and S21, my impressions are as follows:

  • Thin tracks on narrow prepeg (as pointed out by Neil_UK) exhibit worse S11 over the tested frequency range (sometimes as bad as only -5dBm) than tracks referenced to L3 (wider)
  • In my opinion -perhaps- the winner would be the microstrip referenced to L3. Altough this seems to behave pretty good, I wonder how such a wide track (1.36mm) could be routed to 0402 pads in an elegant fashion (as to not cause any disturbances due to stretching and narrowing the track).

The measures (click here for a full-resolution image):

image 17: All measures thumbnail https://i.ibb.co/fHy07qH/all-measures-01.png


I'm a complete noob when it comes to RF design (and frankly I'm still trying to get my head around the most basic concepts, so, apologies if the question or assumptions on my side are plain wrong), so I got myself an SA to play around and learn.

  • 1
    \$\begingroup\$ Narrow track on thin pre-preg is a bad idea, much better to use core, and wider tracks. Pads, vias, can all upset the geometry. Absolutely do not void the ground. Slim the pad, area not shape matters, or tune it into the line. It's generally better to measure S11. It's a more sensitive measurement, and means you can measure part of the line at a time. So terminate a 50 ohm cable in a good load, measure S11. Now connect it to your connector, terminate the line with two 100 ohms parallel to ground (tends to be better than a single 50) and measure that, and so on, until you find a big change. \$\endgroup\$
    – Neil_UK
    May 7, 2021 at 9:37
  • 2
    \$\begingroup\$ Ah, just spotted you're using an SA, not a network analyser. Put a good 10dB pad on your test cable as close to the DUT as you can, as SA's generally have awful S11, which will exacerbate any ripples you're measuring. It's really tough to debug this sort of thing with an SA, wrong tool. Borrow or hire a network analyser and work in S11. \$\endgroup\$
    – Neil_UK
    May 7, 2021 at 9:43
  • \$\begingroup\$ @Neil_UK: "Narrow track on thin pre-preg is a bad idea, much better to use core, and wider tracks" Given the current stackup how could I perform such modification? Should I void L2 on this particular area and use L3 as the reference plane? \$\endgroup\$
    – Aleix
    May 7, 2021 at 12:47
  • 1
    \$\begingroup\$ Clear L2 and use L3 as ground is what I'd do. \$\endgroup\$
    – Neil_UK
    May 7, 2021 at 14:04
  • \$\begingroup\$ Your trace is so short at 1575 MHz you hardly need to get it right. Stop optimising already! Any reasonable impedance will work. To measure this you need a VNA, a SA is useless. And for such a short track, you need an 8 GHz VNA to show anything useful. \$\endgroup\$
    – tomnexus
    Sep 2, 2021 at 7:01

4 Answers 4


I don't believe anything is wrong with your transmission line. I think the periodic oscillations in transfer function is due to capacitive irregularities at the ends of your transmission line, they form a tank circuit.

Is it possible that my pads (passives along the RF trace) and SMD pad of the GNSS module are indeed acting as a capacitor? Should I void the reference planes to reduce this effect?

Yes, every pad, especially on 0.1 mm prepeg, is a capacitor. If you are such a perfectionist, you should compensate this parasitic capacitance with ground voids.

Would you recommend that I design a PCB with several pad shapes and cutouts to further analyze this behavior?

Yes, it is called "test coupons", everyone does this. Before finalizing your PCB, it is advisable to make a few test boards with different SMA footprints and different traces sizes and pads/voids, and then test it. I am more fond of using TDR for checking the trace quality, it gives you points where impedance gets hammered by whatever imperfections might be, and correct the trace geometry. Make trace segments longer, so the weak spots will be easy to identify.

BTW, Where did you get the footprint for SMA connector, and why do you trust it? [I know for sure that manufacturer's recommended footprint for U.FL connector is very-very bad].

Also, when making test connections with coax cables, do a better job of stripping the cable, make it symmetrical and co-axial as much as possible, see below: enter image description here

  • \$\begingroup\$ I was waiting on testing the boards before updating this post, a few questions on yor reply: I don't believe anything is wrong with your transmission line... "Why would you say so? I'd say there's a clear mismatch that causes a lot of the input power to be reflected back." (That's what went through my brain). For me to get a better understanding of the results, what makes you say so? BTW, Where did you get the footprint for SMA connector.. I drew them according to the datasheets, I can post images of the footprint if that's some help Also, when making test connection.. Noted! \$\endgroup\$
    – Aleix
    Jun 16, 2021 at 8:22
  • \$\begingroup\$ The periodic ripples are the interaction between the coupler directivity and the actual S_11 of the trace. \$\endgroup\$
    – MAM
    Sep 2, 2021 at 11:11

A big part of what you are measuring is the spectrum analyzer and cables. The "ringing" across frequency you see is due to reflections in either the spectrum analyzer itself, cables, connectors, or your circuit; with the reflections either adding or subtracting based on the frequency/phase - directly related to the length of your cable - yielding that sinusoidal pattern dependent on the phase relationship of the reflected power. The return loss you show of the terminated coupler and cables is not that great to begin with, leading me to believe your DUT is not quite as bad as you are measuring (but obviously still not that great). You really need to rent a network analyzer to get accurate measurements, which will give you the ability to calibrate out cables and connectors. This would at least give you the "smooth" line that you are expecting. Side note - U.FL cables are pretty terrible in my experience.

In terms of your circuit - check the data sheet for the blocking cap you are using - it is possible the self-resonant freq is too low and your cap is actually behaving like an inductor. If memory serves, for 0402 I used to use 18pF RF caps (hi-Q) as an RF bypass at GNSS frequencies. The best value to use to act as an RF short will change based on case size.

Getting a proper 50 ohm trace is not the hard part. In general the trace impedance is not what will get you as long as the trace is short... it is all the other parasitics and impedance transitions which produce reflections. cut out as many layers of ground as you can below any pads that are in parallel to your signal line. Take a look at your SMA connector layout... cut extra ground out around the center conductor all the way through the board, that can easily kill your performance for sure.

Good luck! For not being an RF person you are doing all the right things.

P.s. - if you really want to get in the deep end, start playing with an EM solver. Sonnet has a free version that will get you pretty far. A simulation should reveal a problem like this pretty quickly.


Just a short note regarding that prevalent "comb shape" (sinewave) on your spectral graphs: in my experience with a reflectometer (FDR) measuring antennas, this occurs as a product of the length of your probe cable and an impedance mismatch at the end of your probe cable, i.e. mismatch against the load or within the load.

The peaks are at every lambda/2 and valleys at every odd multiple of lambda/4, or vice versa - depending on the character of the mismatch (open/short). See also quarter-wave tricks.

Knowing the frequency spacing of the regular peaks in the comb, you can calculate the length of the cable, and vice versa.

cable_length [m] = ( 300 [MHz*m] * velocity_ratio ) / (2 * pole_freq_spacing [MHz] )

I hope the formula is correct... in the following antenna measurement chart, the peaks are spaced 85 MHz, and the cable length is quoted as 1 m - which would suggest a velocity ratio (cable contraction factor) of just 0.56... well why not :-) Normally I'm used to seeing 0.67 in a cheap RG58 or 0.8-0.85 in low-loss cables for more demanding applications... or maybe there is some signal path inside the analyzer that needs to be reckoned with.

example antenna measurement

Counter-intuitive to a newcomer, the point is, that the longer the cable, the denser your "comb" in the frequency-domain plot. The "cleanest" plots, free of this comb, can be taken using no cable = antenna feedpoint coupled straight to the FDR's line driver (or probe head). FDR's typically offer a calibration mechanism - not sure if this is to account for a non-zero length of the probe cable and an imperfect match...

An important point is that when using an FDR, you need to know how to interpret the results, and be aware of the "curse of the probe cable" :-) I keep seeing these combey graphs in antenna datasheets over and over - and I'm wondering if the vendors leave them in the datasheet as an exercise for the reader, a pitfall for the unwary, as an inside joke for those who can appreciate it, as a subtle way for the datasheet to inherently weed out the noobs from the initiated (= let the datasheet find and please its intended audience) or what :-)

If you're using a spectrum analyzer, rather than an FDR, I'm afraid I cannot offer any conclusions right off the bat... Possibly your analyzer's input mismatch interacts with the DUT's mismatch at the analyzer's probe, over the length of the probe cable, throwing half-wave and quarter-wave impedance transformation tricks. Heh possibly the analyzer's parasitic input capacitance takes effect towards the upper end of the spectrum.

Neil_UK has more of a clue than I have, and has already suggested to measure S[1,1]. This is why - it gets to the point and is relatively easy to interpret.

BTW, I'd like to praise you for asking the right questions and doing experiments in the right direction. Keep up the good work.


As some have alluded, it is likely that your trace is not that bad, rather what you are measuring is the poor matching and limited directivity of the coupler.

Now the most important thing to realise is that normalising the amplitude will do you no good! The errors of the directivity and matching have both magnitude and phase that change with frequency so you need vector error correction which is what VNA do.

If you insist with using scalar network analyser to measure abs(S11), then you must accept a far greater uncertainty bound in your measurements. The uncertainty comes from the fact that the error signal can interact with the "actual" abs(S_11) at any angle.

Here is the uncertainty in abs(S_11) for different values of coupler directivity. The lines on the graph are the directivity of the coupler and the x axis is the actual abs(S_11) of your trace. (Image credit anritsu)

enter image description here

So now you can see that in your case you can only make an accurate (~ +-1dB) abs(S_11) measurement when your coupler is around 250MHz based upon its datasheet. At low frequencies your trace looks well matched so it is likely what you are seeing as the ripples is the uncertainty due to the coupler.

Buy a nanoVNA and you should see better results.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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