Wednesday, March 6, 2019

Driving A 900 MHz Quad Patch Array Antenna

A Circular Polarized Quad Patch Array for the 900 MHz ISM Band

Driving a patch array antenna is a tricky and multidisciplinary affair - a combination of electrics, magnetics and mechanics - where theory meets reality.  Patch antennas are useful between about 1 and 5 GHz.  Below that, they are too big and above that, too small to be practical for the manufacturing tolerances of a hobbyist.  For L, S and C-band, a radio amateur can use patches with good effect, using not much more than tin snips and a nibble tool.

902-928 MHz ISM Band LCP Quad Patch Antenna

The patch antenna theory can be explored with a simulation program such as NEC2:

You could make an array with any number of patches, but more than four would be a whole lot of hassle.  A SAR radar antenna may have 300 tiny little patches.  However, a two by two is about the limit of my patience.

Any piece of metal within half a wavelength of an antenna, becomes part of the antenna and an array antenna is the sum of its parts.  If you want to construct a phased array with circular polarization, then it is even more true.

To work with microwave antennas, you must have a fairly decent two port vector network analyzer (A KC901V costs only about $2500 on Aliexpress).  The Q of a microwave antenna is very high and reality will always differ from the design by a few percent.  Therefore, your design will have to be tuned and tweaked to get it right, since the overall bandwidth is only a few percent.

A patch antenna is a ridiculously sensitive thing.  You have to mount it very securely with nylon standoffs and use good quality connectors and cables, otherwise your results will not be repeatable. 

Let me say that again:

A patch antenna is a ridiculously sensitive thing.  You have to mount it very securely with nylon standoffs and use good quality connectors and cables, otherwise your results will not be repeatable. 

It may be good to say that a third time...

If you assemble a rough test patch and measure it, then quickly take it apart and put it back together without changing anything and measure it again, the centre frequency can be several MHz different - it can shift by more than the bandwidth of the patch antenna for no apparent reason.  Therefore, tuning a patch antenna requires a lot of patience and you got to assemble it with care: Nuts, bolts, connectors - the whole nine yards.  Otherwise you will waste your own time.

I have looked at many different patch array antennas and came to the conclusion that all of them are too complex to my liking and that there is room to simplify the design of the patch layout and the drive circuitry, to make one that is more easily tunable and manufacturable.

Impedance matching of a single patch is relatively easy.  At the edge it is 100 to 200 Ohm and at the centre zero Ohm.   In between those, you can get 50 or 75 Ohm for a coaxial cable drive, or you can work directly with the measured impedance on the edge, if fed with a microstripline.

I probe it for a 50 Ohm spot by drilling a few little holes 25 to 35% from the edge and pick the best one for a coaxial cable to a VNA and then, once tuned up, measure the edge impedance for a microstripline feed.  With a little experience and luck, the very first hole can be spot on.

A probe (pin) feed is fine if the patch is not ridiculously thick, with h < 3% of the wavelength.

 FR4 Patch Test Antenna

Microstriplines and patches can be designed with the Pasternack or Microwaves 101 calculators, which will provide a good starting point for your new tin snipping hobby:

In a single patch antenna, one can achieve circular polaration either by phasing the drive signal (by driving two sides with a 90 degree phase shift), or by perturbing the dimensions (to cause a current and field shift).  In this case, the phasing approach tends to yield better circular polarization - the mechanical trimming result is more elliptical.

Similarly, an array can achieve circular polarization by using multiple circular polarized elements, or by rotating and phasing the drive of the elements.  Again, the rotating and phasing approach is more circular and the other more elliptical.

Another problem with a patch antenna is that it is a very narrow band device.  If you tune a patch to 915 MHz (The centre of the ISM band), it may have a VSWR at that frequency of 1.2, but at the edges of the band, it may be 2 or 3, which is not so good.   The bandwidth of the patch can be increased by increasing the height above the ground plane (decreasing the capacitance), but that will reduce the centre frequency also, so you need to trim it slightly smaller.   The maximum usable height is about 3 to 5% of the wavelength.

Return Loss Plot of a Test Antenna

To get the phasing of the patches right, you need to use different length transmission lines.  With 4 patches, a successive shift of 90 degrees is required, which, if done with a single piece of line, will act like a quarter wave transformer, which may be an unwanted side effect.  Also, the length of the line is dependent on the frequency, so the phasing circuit will make the antenna even more frequency sensitive.

One way to increase the bandwidth of the array, is to tune each patch to a slightly different frequency (by changing the spacing with little nylon washers).   Intuitively, you can think of a Yagi or Log Periodic array, where each piece of wire is tuned differently, yet all the elements work together as one.  The same thing happens in a patch array with slightly differently tuned elements - the overall bandwidth of the array then opens up.

Therefore, instead of designing all four patches for exactly 915 MHz, one could tune them to 912, 914, 916 and 918 MHz, or 910, 913, 916 and 919 MHz and achieve better performance over the whole 902 to 928 MHz ISM band.

Alternatively, one could cut a notch in the left and right sides of a patch, which could increase the bandwidth from 3 % to about 10 % while still keeping it linear polarized, but cutting the notches will reduce the centre frequency a little bit and you may have to adjust the height by 1 mm to compensate.  Choices, choices...

Power Divider/Combiner
The patch feeds need to be divided/combined into one drive signal.  It can be done with a succession of Wilkenson dividers, but when you also need to create a phase shift and an impedance match for each patch, it becomes a rather complex and narrow band affair.

Unified Phasing, Power and Impedance Matching
When you need to do power dividing/combining, you also need to match to different impedances.  Two impedances can be matched with a quarter wave transformer, but that is a narrow band device.  A more broadband match can be achieved with three transformers in series.

If you squint at a series of quarter wave transformers, they resemble a tapered line and it was found that a tapered line of one or more quarter wavelengths, does indeed provide impedance matching with a significantly broader bandwidth than discrete 1/4 wave transformers.

The ultimate is the Klopfenstein Taper:  However, a longer linear taper works just as well in practice.

This leads to the following conclusion for a circular polarized array:
  • Place the 4 patches 1 effective wavelength apart (centre to centre).
  • To combine 4 transmission lines and get a 50 Ohm drive impedance, each line should be 200 Ohm (like 4 resistors in parallel) at the coaxial connector, OR
  • Make an H circuit and convert 50 Ohm to 100 Ohm to 50 Ohm using 6 striplines.
  • On the patch side, the transmission line should match to the patch impedance.
  • The first line is however long it needs to be and an odd multiple of 1/8th wavelength overall - to avoid making a 1/4 wave transformer.
  • To get a succession of phase shifts, each transmission line should be 1/4 wave longer than the previous. 
  • Each patch should be rotated by 90 degrees, compared to the previous. 
  • To improve the bandwidth, use long tapered lines and avoid the inadvertent creation of 1/4 wave transformers.
  • To reduce spurious transmissions from the microstriplines, do not make sharp corners.  Rather make 45 degree corners, or smooth S lines.

Simple Array Drive Solution
As O'l Albert Einstein said:

A thing should be as simple as possible, but no simpler.

The final drive result is a simple four legged cross of microstriplines, each leg of the spider longer than the previous by a quarter wavelength (At the specific de-tuned patch frequency).
Quad Patch Layout

Each microstripline leg should be tapered from 200 Ohm at the connector and pass underneath the patch with a feed probe to the 50 Ohm (~3 mm wide) point.  However, since a 200 Ohm microstripline is too thin to be practical, it would need thicker 3.2 mm board.  Therefore, rather create an H shaped circuit and convert 50 to 100 Ohm, combine them and convert to 100 Ohm again and then join these in the middle - I'll make a better sketch later.

Tweaking and Tinkering
A low cost patch array antenna can be built from FR4 PCB. At 1 GHz, the permittivity of this board is about 4.3.  To tweak your design, make a 50 Ohm strip, 3 mm wide and  5/8th wavelength long.  Solder two 1/8th Watt 100 Ohm resistors in parallel over the far end to terminate it and measure it with a VNA.  (Putting two resistors in parallel, reduces their inductance by half).  This way you can get a fudge factor for the permittivity, track width and wave length to tweak your designs with.

You can experiment with microstriplines and patch antennas using copper tape on single sided PCB and a (new!) pair of sharp scissors: or from my favourite high tech electronics store:

You will also need a large variety of nylon bolts, nuts and spacers for tuning purposes.  Digikey has a good selection:

This assumes that your VNA is tuned!

To tune a VNA, buy a decent quality ready made short coaxial cable from Pasternack - say 12 inches long, using the coaxial cable type that you usually use (SR402AL, RG58U or RG316U), with a N connector at one end and a (cheaper) BNC or TNC at the other end.  I used two BNC male connectors and short circuited the one, and soldered two 1/8th Watt 100 Ohm resistors in parallel over the other as a 50 Ohm load.

DIY VNA Tuning Plugs: Short and 50 Ohm Load

Then get your VNA manual and calibrate it with an Open, Short and Load.  I prefer BNC connectors for use in a lab, since they are easy to connect.  In the field, a TNC may be more secure.

For added Brownie points, you can mount the two connectors in a metal box and label it to make it easier to find your tuning kit again...

Slots and Cutouts
A smooth, regular sided patch - square or otherwise - tends to oscillate in a single mode and has a very narrow bandwidth of 2 to 3%.  By cutting little slots on the side or middle of a patch, multiple oscillation modes can be excited and then the bandwidth can become very wide indeed.  For example the famous U-slot of K.F. Tong can achieve 20 to 30% BW.  Mr Tong must have been a very patient guy, since he sat down and made 27 different shaped U-slots and measured them all!

Cutting a slot with a Dremel cutting wheel tool is a whole lot of fun - you get glass and metal powder in your clothes, hair, eyes and will itch for days after...  I came to prefer tin snips and a nibbling tool as a result:

Slot perturbations can cause cross polarization, which is fine if you actually want to have cross polarization - it is sort of midway between linear and circular.  For my application, I wanted pure circular polarization, so I tried to avoid slots and funny feeds and rather widened the BW with 4 patches of slightly different sizes, but it turned out to be too difficult to replicate.  I think I now have almost as many discarded PCB squares as Mr Tong.  Note that discarded 900 MHz pieces can be reused for 2.4 GHz patches, so there is an advantage to starting at the lower end of the spectrum...

Two small 20 mm slots, the width of the nibbling tool, made the patch design much less sensitive and widened the bandwidth about 10 times to 40 MHz, so that is what I eventually used:
  • W = 143 mm, L = 133 mm, h = 9 mm, Slots = 20 mm (by 5 mm)
  • Material = FR4, 1/32 inch single sided, copper side up
  • Spacers: 9 mm nylon, one near each corner
  • Connector feed: BNC, mounted on bottom ground plane
FR4 fibreglass PCB is easier to work than copper or tin sheet, since it flexes and doesn't bend permanently - so when you are done drilling, cutting and trimming, it is still flat and doesn't look like a corrugated roof sheet after a hurricane.  The only drawback is the itching from getting glass dust in your skin - a lab coat and a Dustbuster help a lot.  The patch is made from thin 0.8 mm board to reduce the effect of the dielectric and the ground plane from regular 1.6 mm board - for mechanical stiffness.

920 MHz Test Patch with 20 mm Slots

As you can see from the nibbling tool debris field under my chair, I tried several different configurations and found that bigger slots are certainly not better.   The small 20 mm edge notches successfully reduced the Q and made the antenna design repeatable.  If you follow the above instructions and copy this design within ~0.5 mm, it should work fine over the 902 till 928 MHz ISM band.

Slot Debris Field

Cleaning this kind of cruft up again, is quite a chore.

The test patch feed is a BNC wall mount socket directly under it in the ground plane board.  For an array antenna, use a double sided ground plane board and run a microstripline with a pin  feed up to the patch, or for a one-off home/lab use antenna, use RG316U coax.

Test Antenna BNC Feed

Since I am not a complete masochist, I avoid circular patches, since it is difficult to cut a circle with tin snips!

It is interesting to note that square, rectangular, triangular and circular patches are equivalent.  It is possible to make an antenna with exactly the same electrical specifications using any one of these shapes.

Once you made your spiffy new antenna, you may need to enclose it in a waterproof jacket.  The best way to do it, is to include the radome material in your experiments and fine tuning the whole sandwich right from the beginning.  By doing this, you can make the assembly very thin, with the radome in contact with the patch.

However, if you later make a radome add-on, then you may be relieved to know that provided that you keep the radome material at least 10 mm or so away from the patch, it will be reasonably transparent and won't affect the antenna significantly.

For airborne use, Polycarbonate or Glass Fibre reinforced Epoxy are good materials to consider for a radome.  For a ground antenna, ABS or Nylon may be good enough.

A decent radome needs a hydrophobic coating, to cause water to bead and run off:

It is quite easy to make a test microstripline, using a piece of single sided PCB and copper tape.

The Pasternack Microstripline Calculator is handy:
  • FR4 Fibreglass/Epoxy PCB Dielectric Constant = 4.3
  • Width = 3 mm
  • Height = 1.6 mm
  • Width/Height = 1.875
  • Effective Dielectric Constant = 3.257
  • Impedance = 51.36 Ohm
The effective Dielectric Constant gives the Velocity factor:
  • VF = 1/sqrt(3.257) = 0.555
At the speed of light, the wavelength of 915 MHz is 328 mmMultiply that with VF for the effective wavelength in the microstripline Le = 182 mm.  This is the value to use for length calculations of 1/4 wave transformers and tapers.

Microstripline Test Piece

With a sharp pencil and even sharper scissors, cut a 5/8th wavelength, 113 mm long, 3 mm wide strip and stick it to the PCB.  Mount two 100 Ohm resistors in parallel on one end and a BNC connector on the other end.  Glue the BNC on with epoxy first before you solder it, else it will lift the tape.

Why 5/8th wavelenth?  Avoid an exact 1/4 wave transformer for this test.

 Microstripline Impedance

With your VNA, you can now measure the impedance, or make a Smith Chart.

Microstripline Smith Chart

If your hands were steady, it will measure ~50 Ohm, proving that the Pasternack calculator works well enough (OR, that my low cost Chinese VNA works well enough!).

Air Dielectric Power Divider/Combiner
Note that one cannot reach 200 Ohm with 1.6 mm FR4 PCB.  A 3.2 mm board can work, but 3.2 mm board is heavy and hard to work with and if you saw it, then you end up with itch powder all over the place again.

An air dielectric taper would be good for 200 Ohm, at 6 mm high, 2 mm wide, but the 50 Ohm side would be 'too wide' - 100 Ohm would be more practical, so one may need to do the impedance conversion in multiple stages (or use a sloped transmission line, as explained later on).

Tapered Power Divider

A suspended air gap power splitter is a hassle to make, but it can solder directly to the pin of a panel mounted BNC connector, so making a little 4 bladed fan does have merit.  When a strip line gets too wide, it starts to radiate, like a patch antenna, so one has to be reasonable with the maximum width of the taper.

 Tapered Power Divider Test Set

To make a 200 Ohm to 100 Ohm taper line with copper tape on FR4 board requires great care and dexterity.  With 6 mm spacing, 200 Ohm is 2 mm and 100 Ohm is 10 mm wide. A quarter wave at 915 MHz with 0.555 Velocity Factor is 46 mm and with a VF of 0.666, it is 55 mm.  So I erred on the long side for wider bandwidth and cut a piece of blank board 110 mm long and 30 mm wide for the divider with a somewhat larger single sided board as earth plane and put the connector in the middle.

 Power Divider Smith Chart

Four 100 Ohm resistors were soldered on the ends of the tapers to test the circuit.  The result works quite well.  The impedance varies between 38 and 55 Ohm and is 48 Ohm in the middle of the band.  The VSWR varies between 1.1 and 1.4 over the whole band.

The taper lines create a good wide band device which is not critical and which can be replicated without undue trouble.  A wide band four way power divider/combiner like this, can cost hundreds of dollars when you buy it off the shelf.

Using strips of PCB and copper tape, with a whole lot of patience and a big mug of hot chocolate, one can make a tinker toy kit, to hook up four patches to form an array antenna.

More Accurate Dielectric Constant
In order to make reasonably accurate delay lines, it is useful to have a more accurate value for the dielectric constant and velocity factor.  One could use impedance controlled PTFE/Ceramic board, but a typical Radio Amateur will not have the pocket money for that.

One way to measure and calculate the dielectric constant is with a microstripline resonator circuit.  The VNA can then scan and measure the resonant frequency and then one can recalculate the dielectric constant:

First, a handful of formulas that you need to figure out:
L = c/f
VF = 1/sqrt(E)
Le = L x VF
Le = L/sqrt(E)
E = (L/Le)^^2

Once you made peace with the above, assume for FR4 1.6 mm board E = 4.3 at f = 915 MHz and c = 299792458 m/s

L = 299792458 / 915000000 = 0.328 m
Le = 0.328 / sqrt(4.3) = 0.158 m

Radius of the test resonator:
2 x Pi x r = 0.158 m
r = 0.158 / (2 x Pi) = 0.0251 m

From Pasternack's microstripline calculator and the test way above:
50 Ohm stripline on 1.6 mm FR4 = 3 mm wide

Make the above resonator and measure the real resonance frequency fr.
For example fr = 920 MHz

Finally, calculate the more accurate dielectric constant Er and Velocity Factor VF:
L = 299792458 / 920000000 = 0.326 m
Er = (0.326 / 0.158) ^^2 = 4.26
VF = 1/sqrt(4.26) = 0.485

Another way, is to go back to the microstripline test piece way above, remove the 50 Ohm load, put a second connector on it and measure S21 with the VNA and look at the 'Unwrapped Phase Trace':

Making a circular resonator may be more fun though!

Either way, once you have a better idea of the actual dielectric constant and velocity factor of the striplines on your batch of printed circuit boards, the next step is to make a set of delay lines that will transform the impedance from 100 Ohm to 50 Ohm and delay the signal by 0, 90, 180 and 270 Degrees respectively, for each of the four patches.

To transform the impedance from 100 Ohm to 50 Ohm, I made four microstriplines on 1.6 mm board of length 55 mm, 1.5 mm at one end and 3 mm at the other end.  This worked, but was a whole lotta hassle...

Coax Phasing
Eventually, I made the delay lines from RG316U (a.k.a. RG316D) coaxial cable, fed through from the back of the ground plane.  The velocity factor of RG316U is 0.795, so the effective wavelength Le = 228 mm.  This is good for a one off lab/home antenna.  Microstriplines are better for mass production.

The first cable is 80 mm and each next one is a 1/4 wave longer:
1) 80 mm
2) 137 mm
3) 194 mm
4) 251 mm

You could cut each cable 15 mm longer than that and strip 5 mm at one end and 10 mm at the other end.  The important thing is the exact difference in length between them, not the overall length.

Sloped and Tapered Power Divider
I finally made an even simpler power divider, consisting of four sloped transmission lines.  If one would glue or tie the end of a RG316U coax to the reflector board, then the centre is 1.2 mm above the board.  I then placed four pieces of 65 mm SWG20 copper wire, sloped from the coax to the end of the BNC connector, 6 mm above the board.

A thing should be as simple as possible,
but no simpler.
-- Albert Einstein

SWG20 wire is 0.9 mm diameter and at 6 mm height, is 230 Ohm.  Addition of a thin triangle of copper foil, 5 mm wide at the bottom coax end at 1.2 mm height above ground, transforms 50 Ohm to 200 Ohm.  Four 200 Ohm lines in parallel, is 50 Ohm at the connector.

Sloped Wires With Copper Triangles

Fold copper tape around the 20 SWG wire, mark the triangle with a pencil and trim it with scissors - super easy for a one off home/lab experimental build.  The PCB methods are easier for a factory build.

Sloped Tapered Power Divider

Clearly, there is more than one way to do it, but I particularly like the sloped and tapered design, since it is the simplest and it keeps the transmission lines further away from the patches.  I think this one will do O'l Einstein proud.

After putting the whole kit and kaboodle together for the umpteenth time, the centre frequency was 902 MHz, which is a few MHz too low to my liking.  All four patches therefore need to be trimmed a couple mm smaller all around again.  I'll do it another day!

 900MHz Quad Array VSWR

The VSWR plot shows that the slots opened up the bandwidth quite a bit.

 900 MHz Quad Array Impedance

The impedance match and return loss is actually quite good.  It shows that the tapered transmission lines do their job very well.

 900 MHz Quad Array Return Loss

A Smith chart is always a good summary of the whole ball of wax.

900 MHz Quad Array Smith Chart

Parasitic Patches
I have read numerous articles that alledge that stacking a parasitic patch on top of a radiating patch, will increase the bandwidth.  However, when I tried it, it halved the bandwidth!

So who does one believe now?  I believe my VNA:  To measure, is to know.

I guess that to really open the BW, the top patch will have to be a little smaller than the driven patch, not the exact same size as on my first try.  I'll give this another spin some day.

To Explore Further
  • Trim the patches 1 mm smaller on each side (it is difficult to cut off only a little bit), to move the frequency up by a few MHz.
  • Try a patch with two slots on each side - that should open up the bandwidth a little more.
  • Make the power divider from two pieces of PCB, instead of wire and tape, to make it stronger.
Now it just needs to get cooler, so I can measure the antenna pattern outdoors.  At the moment it is 11 pm and still 37 Celsius here in the desert.

OK - copying and improving this design will sure keep you busy and out of trouble with your significant other for a while!

La voila!


Monday, December 17, 2018

Annoying Adobe Updater

The most annoying thing on my Mac is (was!) the Adobe Flash Updater.  This annoying program will pop up and steal the focus and it doesn't actually work.  It never succeeds in updating the Adobe Flash plugins.

The only way to do an update is to go to the Adobe web site with a web browser and download their apps again and install them manually.

Man will only be free, 
once the last computer has been strangled 
with the power cable of the last router.
— With apologies to Didero.

There are many pages on the wild wild web that suggest how to suppress this atrocious thing, but I have not seen a method that actually works.  So I hunted all Adobe updaters down with the top, kill and  find commands and then rooted them out with brute force:
$ sudo su -
# find / -name "Adobe*app"

# cd /Library/Application\ Support/Adobe/ARMDC/Application/
# mv "Adobe Acrobat" "Adobe Acrobat Updater.bad"
# cd /Applications/Utilities/
# mv "Adobe Flash Player Install" "Adobe Flash Player Install Manager.bad"

So there!

What continues to amaze me, is that there are people working at software houses like this, who write the most atrocious bug ridden software and then have the nerve to inflict it on the world - Have they no shame?



Friday, December 14, 2018

GQRX SDR on Ubuntu Linux Server 18.04

GNU Radio on Linux

Software Defined Radio requires a reasonably fast computer and won't work properly on a virtual machine.  The heart of Free SDR is of course GNU Radio, from here and here

I like the GQRX program which I use with the RTL-SDR and Great Scott Gadgets HackRF One and these are all very well supported on Linux and Mac as described here

 Gqrx SDR 2.6 with RFSpace Cloud-IQ
While I can make this work on my Mac, whenever Apple releases a large OS update, I have to re-install the whole house of cards all over again.  This gets very tiring after a while.

So to get this lot working and keep it working, I bought a nice new Intel NUC and installed Ubuntu Linux Server 18.04 LTS on it.

This is a long term support (10 year) Linux version which means that it will get security updates, but the essentials will remain more or less the same, so my GNU Radio software should keep working until 2028 or beyond and not get broken every few months by Apple.  Since I only use it every few months, it meant every time I wanted to use it, it was broken - sigh...

Ubuntu Linux Server Download

The advantage of a server version, is that it contains only the essential software packages to get a computer running efficiently - no bloatware.  You are therefore assured of getting some raw speed.

However, since I am not a complete masochist, I install the light weight Desktop Environment XFCE on it, so that I can do things without having to resort to ASCII art.

Download the 18.04  LTS server ISO file from here

On the Mac, open a terminal, set user to root and copy the ISO file to a USB stick as described here  Instead of dd, you can use cat also, it works just as well.  (Even head or tail will do, if you can make head or tail of the syntax).

A word of caution: Never, never, never write to /dev/sda or /dev/disk1 since that will destroy your computer.  Watch the ins and outs.

Basic Installation

The Linux server software installs in seconds - in the blink of a lazy eye.  Stick the USB widget in the NUC and boot up.  Create a user account and looong password and follow the defaults to use the whole disk, then reboot.  As easy as borscht.

You will now have a lightning fast machine that boots up to a beeyoootiful black screen and prompt, waiting patiently on your beck and call.

Install the Actually Useful Stuff

$ sudo su -
# apt install xfce4 mplayer firefox geany mousepad vlc x264 ffmpeg gstreamer1.0-plugins-* libreoffice gimp pdfshuffler xournal evince links lynx xnec2c xnecview

Something in the above will automatically pull in the build-essential package, so the compiler and headers will be there too.  With the above tools, you can control the world.

Go get some coffee, then:
# reboot

Login again and launch XFCE:
$ startx

Click the Default Config button and Mark's your Uncle.  Now you need neither Timmy nor Saty anymore.

Static IP Address

In order to use the NUC remotely over ethernet, it will help if it has a static address, so you know how to reach it.  You can configure this in the rc.local file, which is the last process to run at computer startup.  This is the best place to put user additions to the system, since at this point, everything is up and running and stable.

First see what the name of the ethernet port is:
# ip link show
# ip addr show

It could be enp0s25 or some equally silly device name.  Also look at the address given by the DHCP server and pick a new one that is similar but not in the DHCP allocation range.

Create the /etc/rc.local file:
# cd /etc
# nano rc.local
Add this:
#! /bin/bash
ip addr add dev enp0s25

Then make it executable and enable the rc-local process:
# chmod +x rc.local
# systemctl enable rc-local
# reboot

The machine will now have two IP addresses on the same port.  One given by the DHCP server and the other statically assigned.  Both should work.

Install GQRX

Install the GQRX repositories:
# add-apt-repository -y ppa:bladerf/bladerf
# add-apt-repository -y ppa:myriadrf/
# add-apt-repository -y ppa:myriadrf/
# add-apt-repository -y ppa:gqrx/gqrx-sdr
# apt update

Finally, install gqrx:
# apt install gqrx-sdr

You can now run the Volk optimizer to get even more speed:
# apt install libvolk1-bin
# volk_profile

Remote Access with the Secure Shell

If you install the Quartz X server on your Mac, then you can open an xterm and launch a program on the NUC.  It will then transparently pop up on the Mac desktop:
$ ssh -X user@ mousepad

Note that on this server version, the SSH daemon sshd runs at startup and since it has its own small X server and client built in, you can run X programs remotely with ssh, without actually running X on the server, but you need X, Xorg, or Quartz, on your desktop/laptop computer.

If the above mousepad example works, plug your SDR widget into the NUC and launch GQRX:
$ ssh -X user@ gqrx

Now you can run the NUC in your radio shack with a screen, keyboard and rodent attached, or you can stick the NUC and SDR gadget inside a NUMA weatherproof box and put it on a mast with a satcom antenna, then access it remotely over ethernet from the comfort of your radio shack, or your living room couch, over SSH with your laptop machine.

WiFi Interface

The NUC WiFI interface required some subtle attention to make it work. This young lady's guide was helpful:

First check if the device is detected and available:
# ifconfig -a
wlp58s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether d4:6d:6d:d8:c7:7d txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Check if the firmware is installed:
# dmesg | grep firmware
[ 15.242446] iwlwifi 0000:3a:00.0: loaded firmware version 34.0.1 op_mode iwlmvm

Bring the interface up:
# ip link wlp58s0 up

Look for networks:
# iw dev wlp58s0 scan
BSS 0e:b6:d2:a0:ef:12(on wlp58s0)
last seen: 5690.766s [boottime]
TSF: 9933444402819 usec (114d, 23:17:24)
freq: 2437
beacon interval: 100 TUs
capability: ESS Privacy ShortSlotTime (0x0411)
signal: -78.00 dBm
last seen: 1292 ms ago
Information elements from Probe Response frame:
SSID: yourssid

Install wpa_supplicant, since the default iw tool suffers from a segmentation fault:
# apt install wpasupplicant
(Note that the Ubuntu wpasupplicant install package doesn't have an underscore)

Create a configuration file:
# wpa_passphrase yourssid yourasciipassphrase

Write it to the configuration file:
# wpa_passphrase naila 037649906 > /etc/wpa_supplicant.conf

Verify that it actually works by running wpa_supplicant in the foreground:
# sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlp58s0
Successfully initialized wpa_supplicant
wlp58s0: SME: Trying to authenticate with 54:b8:0a:1f:67:90 (SSID='naila' freq=2457 MHz)
wlp58s0: Trying to associate with 54:b8:0a:1f:67:90 (SSID='naila' freq=2457 MHz)
wlp58s0: Associated with 54:b8:0a:1f:67:90
wlp58s0: WPA: Key negotiation completed with 54:b8:0a:1f:67:90 [PTK=CCMP GTK=TKIP]
wlp58s0: CTRL-EVENT-CONNECTED - Connection to 54:b8:0a:1f:67:90 completed [id=0 id_str=]


Run it again with the -B option in the background:
# sudo wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlp58s0
Successfully initialized wpa_supplicant

Get an IP address with DHCP:

# dhclient wlp58s0

Test the connection:

# ifconfig -a
wlp58s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet netmask broadcast
inet6 fe80::d66d:6dff:fed8:c77d prefixlen 64 scopeid 0x20<link>
ether d4:6d:6d:d8:c7:7d txqueuelen 1000 (Ethernet)
RX packets 75 bytes 7048 (7.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 22 bytes 3060 (3.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Hermans-MacBook-Pro:~ herman$ ping
PING ( 56 data bytes
64 bytes from icmp_seq=0 ttl=64 time=5.176 ms
64 bytes from icmp_seq=1 ttl=64 time=1.836 ms


Put the following in /etc/rc.local and put a few sleeps in there to allow the magical fairy dust to settle:
ip link wlp58s0 up
sleep 1
sudo wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlp58s0
sleep 5
ip addr add dev wlp58s0

La voila!


For the next decade, only do security updates (or no updates at all if it is not hooked to the wild wild web).  DO NOT do feature updates.   This way, the system should keep working forever and ever, the same as the day you originally installed it.

Happy RF Hacking!


Tuesday, November 13, 2018

Care and Feeding of a Parabolic Reflector

If you want to listen to Jupiter sing, bounce a message off the Moon, or bounce off aircraft, random space junk, or meteor trails, talk to a Satellite, or a little unmanned Aircraft, you need a very high gain antenna.  An easy way to make one, is from an old C-band satellite TV, Big Ugly Dish (BUD).

Considering that the amount of space junk is ever growing, Junk Bounce Communications (TM) can only improve.  An advantage of Junk Bounce is that it works at any frequency, from UHF up to K-band, so orbiting space junk could become the new ionosphere, a neat radio wave reflector around the planet!

To use an unknown dish, you need to find its focal point and then make a little antenna with a good front to back ratio, to use as a feed.

Focal Length

The focal point of a parabola is easy to find using some forgotten high school geometry:
  • Measure the diameter (D) and the depth (d) of the dish.
  • The focal length F = D^2 / 16 x d
Note that an offset feed dish is only half a parabola.  It is best to use a circular dish with centre feed.  There are millions of these things lying around, pick a good one.

When it is free, take two.
-- Ancient Jewish proverb.

Some people may even pay you to please take their old BUD...

Feeding a Hungry Dish

Most satellites are rotating slowly, to improve their stability - the space station is an exception.  This means that a ground antenna needs to be circularly polarized, otherwise the signal will fade and fluctuate, twice, with each revolution.  This requires either a helical antenna, or a turnstile Yagi antenna.

A Yagi antenna tends to have a very low impedance, while a helical antenna tends to have a very high impedance.  The parasitic elements of a Yagi loads the active element, much like resistors in parallel.  One can use the same effect with a helical antenna, to reduce its impedance to something closer to a 50 Ohm co-axial feed cable.

A multifilar helical antenna can be tweaked to almost exactly 50 Ohm, by driving the one filament and leaving the other ones floating, just like Yagi director elements.  The more floating metal parts, the lower the impedance gets.

Bifilar Helical Feed for WiFi ISM Band

An easy(!?) way to make a small helical feed antenna for the Industrial Scientific & Medical (ISM) S-Band is with semi-rigid coaxial cable of 2.2 mm diameter.  A semi rigid co-ax is a thin copper pipe, which is easy to form with your fingers, without any resulting welts and blisters (3 mm is more stiff, but still doable, while 3.6 mm is already hard to bend and twist by hand).

Bifilar Helix Model

The reflector should be circular and about 3 times the diameter of the helix - roughly 100 mm or more will do.  For the model, I made a square patch, 1 mm below Z = 0 - since it is easier to define in NEC.

Twist and Shout

Cut two filaments with a Dremel cutting disk, grind and file the ends till they are exactly the right length and then bend them carefully into a circle.  When the circle is as round as you can get it, slowly pull the two ends sideways until they are 49 mm apart.  Copper recrystallize at room temperature, so take your time.  If the wire turns hard - leave it till the next day - then it will be soft again.

Bifilar Helix

I mounted the filaments into little wood dowels and glued one to a circular FR4 PCB reflector - the bottom of a coffee tin will work too. Note that the dowels will not be parallel - the ends of the wires should line up, which means that the two dowels will seem slightly off kilter.

The top cross bar could also be a straight piece of coax, since the current at that end is zero. Therefore, you could make a bifilar helix out of a single piece of wire, but bending and stretching it precisely is quite hard, which tends to crack it at the 90 degree bends.  I fixed the one below, with solder.  Pick your poison!

One Piece Helix

The outside of the one driven element must be soldered to the centre of a 50 Ohm feed line and the screen of the feed line must be soldered to the reflector.  It always requires some improvisations to make a helix, which is a large part of the 'fun'.

The other parasitic element will just be standing there above the ground plane, seemingly doing nothing, but it does affect the antenna pattern and impedance, so it is an important working part of the antenna.

Mount the feed at the end of a strong 1/2 inch wooden dowel rod, at the focal point of the dish.  I cut the FR4 reflector and the slots in the dowel with a Dremel cutting wheel, a small hacksaw and a file.  It required a jig made from multiple clamps and funny putty to hold everything square while the epoxy glue cured.  Another way is to put it together using little triangles and hot glue, then use epoxy on the other side, finally remove the hot glue and epoxy the rest.  This is the easy part...

 Helix Mounting Jig

I got the dowels at a gift shop - I bought a couple of little flags, kept the sticks and discarded the flags. That was very unpatriotic of me, but flag poles are commonly used for covert radio amateur antennas!

Completed Helical Feed 

If you zoom in on the picture, you'll see that the coax goes to one end of the helix.  The other end is left floating.  Tie the RG316 coax to the rod with waxed nylon lacing twine (Otherwise known as Johnsons dental floss!).  I glued a BNC connector into the disc.  BNC is not the best for ISM microwave frequencies, but it is easy to work and experiment with.

The base disc was cut from a bread board with a jig saw.  I marked the hole pattern with nails lightly tapped with a hammer through the dish mounting holes.

Paint the antenna feed with Conformal Coating (I used an Italian V66 conformal PCB spray), or any other kind of clear varnish to make it last a while.  Do not use coloured paint, since you don't know what was used to make the pigment.  If it is a metal salt, or carbon black, then the paint will ruin the antenna.


An end fire helix is naturally circular polarized.  This little one is RHP, but when it reflects off the dish, the phase shifts 180 degrees and it becomes LHP.  So depending on what exactly you want to do with your feed, you got to be careful which way you wind it.

If you get confused, get a large wood screw.  A common screw is Right Handed.

Helix Design

From the famous graph of Kraus, we get the following:
  • Frequency: 2450 MHz helical array
  • c=299792458 m/s
  • Wave length = 2.998x10^8 / 2450 MHz = 0.122 m
  • Axial Mode:
    • Circumference = 1.2 x 0.122 = 0.146 m
    • Diameter = 0.146 / pi = 0.0465 m
    • Pitch = 0.4 x 0.122 = 0.049 m
    • Turns = 1
  • Length of filament: sqrt(circumference^2 + pitch^2) x turns = 0.154 m

NEC2 Model

Here is the NEC2 model of the bifilar WiFi ISM band helical feed:

CM Bifilar 2.450 GHz ISM Band Helical Antenna with Parasitic Element
CM Copyright reserved, Herman Oosthuysen, 2018, GPL v2
CM 2450 MHz helical array
CM c=299792458 m/s
CM Wave length = 2.998x10^8 / 2450 MHz = 0.122 m
CM WL/2 = 0.061 mm
CM WL/4 = 0.030 mm
CM Axial Mode:
CM Circumference = 1.2 x 0.122 = 0.146 m
CM Pitch = 0.4 x 0.122 = 0.049 m
CM Turns = 1
# Helix driven element
# Tag, Segments, Spacing, Length, Rx, Ry, Rx, Ry, d
GH     1     100   4.90E-02  4.90E-02   2.3E-02   2.3E-02   2.3E-02   2.3E-02   2.20E-03
# Parasitic helix element, 180 degrees rotated
GM     1     1     0.00E+00  0.00E+00   1.80E+02  0.00E+00  0.00E+00  0.00E+00  0.00E+00
# Ground plane
SM    20    20 -5.00E-02 -5.00E-02 -1.00E-03  5.00E-02 -5.00E-02 -1.00E-03  0.00E+00
SC     0     0  5.00E-02  5.00E-02 -1.00E-03  0.00E+00  0.00E+00  0.00E+00  0.00E+00
EK -1
EX  0   1   1   0   1   0
FR  0   41   0   0   2.35E+03   5
RP  0   91  120 1000     0.000     0.000     2.000     3.000 5.000E+03

Radiation Pattern

The helix made from 2.2 mm semi-rigid coaxial cable, has a good front to back ratio of about 6 dB and a nearly flat frequency response over the 2.4 GHz WiFi band.

Execute the simulation with xnec2c:
$ xnec2c -i

Radiation Pattern

The parasitic element does its thing remarkably well, resulting in an impedance of 48 Ohm (inductive), which is a near perfect match to a 50 ohm coaxial line.  The imaginary impedance doesn't matter much - it just causes a phase shift.

Smith Chart

The actual antenna was measured with little KC901V, 2-port network analyzer and it looks pretty good. No additional impedance matching is required for a 50 Ohm coaxial cable.

Note that the frequency is very high and the wavelength is very short.  Therefore, if you change anything by as little as half a millimeter, the results could be completely different.

If you want to use a different size semi rigid co-ax from your cable junk box to make the helix, then you will need to spend a couple hours tweaking the helix parameters (width and spacing), to get the impedance back to about 50 Ohm again.

Other Antenna Designs With Circular Polarization

While the helix naturally does circular polarization, there are other ways to achieve the same:
  • A corner reflector with a skew mounted dipole.
  • A twisted Yagi antenna with the reflector, driven element and director at 45 degree angles w.r.t. each other - a discrete version of a helix.
  • A crossed Yagi antenna, with a 1/4 wave delay line between the driven elements, a.k.a. a turnstile antenna.
  • A patch antenna with two truncated corners.
  • A quad patch array with each patch rotated by 90 degrees.
  • A crossed monopole antenna, or an F antenna.
There are more ways to distort the EM wave and cause elliptical or circular polarization, just use some imagination.

Radio Transceiver

You can use this antenna with a HackRF One software defined radio, from Great Scott Gadgets:

You can buy one at my favourite toy store, Sparkfun Electronics:

GQRX Software Defined Radio

The HackRF One radio works with GNUradio and GQRX :  It is a very nice half-duplex radio and can tune up to 6 GHz and is good for VHF to microwave experiments.

Junk Bounce Communications (TM)

To bounce pings off space junk, you could point your BUD straight up like a bird bath and use two radios (This sure is not a cheap hobby!), with a directional coupler (Note that the HackRF is half duplex - it cannot receive itself and for transmit, you obviously need an RF amplifier).  Once you got meaningful results, you could find a ham partner some distance away to exchange pings, chirps, or short messages.  If you are very dedicated then you can track and bounce messages off the space station for several minutes on a pass.

If you send a continuous stream of pings up into the sky, then you should receive an echo from a UFO every few minutes.  Only an engineer will find this exciting, while the missus will pretend that it is a great achievement (She knows you are crazy and will be real happy that you are staying in your radio shack and out of her hair).

To bounce off the moon, one would need a whole backyard full of BUDs in a multi-antenna array.  I don't think the missus will appreciate that very much, so I'll leave this idea to someone else...

La voila!


Monday, September 24, 2018

Tactical UAV Communications

I started to write a book on Tactical UAV Communications and Mission Systems.  The book seems to have a life of its own and it grows in fits and starts.  It is based on my own experience working on very expensive toys in various shapes and sizes, fixed and rotary wing, in multiple places around the globe.

Sokol Altius

The few aircraft and other pictures in the book are all of UAVs and equipment that I didn't work on, since I am not allowed to show you anything that I actually did!  These pictures serve as illustrations for educational purposes only and provide a little free advertisement to the companies concerned.

Some chapters in the book are based on articles that were already published on this web site, while others are new.

Here is an early PDF copy for those who are interested: UAV-Comms.pdf

I moved the latest copy to a Linode nano server running Slackware Linux, which works a whole lot better than the previous FTP server, but the book formatting is a bit rough.  I write it with Mac Pages and it is annoyingly bad with keeping pictures and their headings together.

The latest update (27 June 2019) of Pages claims that one can now create a text box and then put a picture and text inside the box and then they will actually be kept together.  I'll sure try it - I do hope that after a 100 odd years of trying Apple finally got it right...

La voila!


Wednesday, July 25, 2018

Patch Antenna Design with NEC2

The older free Numerical Electromagnetic Code version 2 (NEC2) from Lawrence Livermore Lab assumes an air dielectric.  This makes it hard (but not impossible) for a radio amateur to experiment with Printed Circuit Board Patch antennas and micro strip lines.

Air Spaced Patch Antenna Radiation Pattern

You could use the free ASAP simulation program, which handles thin dielectrics, you could shell out a few hundred Dollars for a copy of NEC4, You could buy GEMACS if you live in the USA, or you could add distributed capacitors to a NEC2 model with LD cards (hook up one capacitor in the middle of each element.), but that is far too much money/trouble for most.

More information on driving an array antenna can be found here:

Air Dielectric Patch 

The obvious lazy solution is to accept the limitation and make an air dielectric patch antenna.

An advantage of using air dielectric, is that the antenna will be more efficient, since it will be physically bigger and it will have less loss, since the air isn't heated up by RF, so there is no dielectric loss.

An air spaced patch can be made of tin plate from a coffee can with a pair of tin snips.  A coffee can doesn't cost much and it comes with free contents which can be taken orally or intravenously...

Once you are done experimenting, you can get high quality copper platelets from an EMI/RFI can manufacturer such as Tech Etch, ACE UK and others.

Wire Grid With Feed Point

This grid is not square.  The length is slightly shorter than the width, to avoid getting weird standing waves which will disturb the pattern.   Making these things is part design and part art.  You need to run lots of experiments to get a feel for it.  It may take a few days.  You need lots of patience.  If the pattern looks like a weird undersea creature, then it means that the design is unstable and it will not work in practice.

Find the range where the radiation pattern looks pleasing with a well defined rounded main lobe and the gain is reasonable and go for the middle, so that you get a design that is not ridiculously sensitive and can be built successfully.  It doesn't help to design an antenna with super high gain and then when you build it, you only get a small fraction thereof, due to parasitic and tolerance effects - rather design something that is repeatable and not easily disturbed.

If you cannot find suitable tin plate, then you could try 1/32nd inch FR4 (0.8 mm) and then keep the gap to the ground plane relatively big, so that the effect of the little bit of dielectric is minimized, but if you don't build exactly what you modeled, then making a numerical model is not very useful...

Ground Plane

To model a patch antenna, you need to design two elements, the patch and the ground plane.  The ground plane needs to be a bit bigger than the patch.  The distance between the two is extremely critical and it is important that you can easily vary the gap to find the sweet spot where you get the desired antenna pattern.  With a patch antenna, varying the height by only one millimeter, has a large effect on the pattern.

The NEC ground plane GN card is always at the origin Z = 0.  If you model the patch as a grid of wires, then changing the height above this ground is a very laborious job.  A grid with 21 x 21 wires has 84 values of Z.  You need a programmer's editor with a macro feature to change all that, without going nuts in the process.  It would be much easier if the antenna grid could be kept still and the ground plane shifted up or down instead.

It turns out that the Surface Patch feature of NEC can be successfully misused as a ground plane.  Make a ground plane with GN 1 and make a surface patch and compare the radiation patterns - you'll see they are the same.

Normally, something modeled with SP cards must be a fully enclosed volume, but it works perfectly as a two dimensional ground plane if the antenna is always above it, with nothing below.  The height of a multi patch surface 'ground plane' can be altered by changing only three values of Z, which is rather easier than the 84 Z heights in the wire grid.

Wire Grid

You could model the patch using SP cards, but then you need to define all 6 sides of the 3D plate, which is just as much hassle as making a wire grid with GW cards.  You could also make a wire grid by starting with one little two segment wire and careful use of GM cards, to rotate it into a little cross and replicate it to the side and down, but then it becomes hard to figure out where to put the feed point, since the tag numbers of the wires become unknown after using GM cards.

In the end, I modelled the example patch grid using GW cards, since it is rather mindless to do and then defined the feed point on wire #16.  If you used the replication method, then define a tiny 1 segment, 1 mm long vertical wire, with the (x,y) co-ordinates calculated to be exactly on a grid wire, without having to know what the tag number of that wire is.  For this method, I assign a high number (1000) to the tiny feed wire tag, so I can tie a transmission line TL card to it.

You will see the logic in this approach once you try to make a multi patch array by rotating and translating the first patch with multiple GM cards and then sit and stare at the screen and wonder where the heck to put the feeds.

Parallel Plate Capacitor

A patch antenna is a parallel plate capacitor.

 Smith Chart - Capacitive Load

Whereas a Helical Antenna is inductive, a Patch is capacitive and you got to live with it.  The impedance on the edge is very high and can be made more reasonable by offsetting the feed point about 30% from the edge, but whatever you do, it will be capacitive, on the edge of the Smith chart.  For best results, you may need to add an antenna matching circuit to a patch array antenna.

Design Formulas

Designing an air dielectric patch antenna turned out to be very simple.  Whereas a PCB patch requires a complex formula to describe it, due to the edge effects that are through the air, vs the main field that is through the dielectric - with an air spaced patch, everything is through air and all complications disappear in a puff of magic.

Where c is the speed of light and f is the design frequency:
  • The wavelength WL = c / f
  • The width of the patch W = WL / 2
  • The length of the patch L = 0.49 x W
  • The feed point F = 0.3 x L
The height above ground is best determined experimentally and will be a few millimeters.

If you start with say a 10 mm gap and gradually reduce the height, then after a while you will find a spot where the calculations explode and the radiation plot becomes a big round ball (cocoanec), or just a black screen (xnec2c).  This is the point where the antenna resonates.  For this patch, it happens at 5 mm height.  The optimal pattern is achieved when the gap is one or two mm wider than that, at 6 or 7 mm - simple.

The design frequency should be 3% higher than the desired frequency.  

When you build an antenna, there are always other things in close proximity that loads it: Metal parts, glue, spacers, cables, etc.  All these things will make the antenna operate at a slightly lower frequency than what it was designed for.  Therefore design for a slightly higher frequency and then it will be spot on.  The Ham Radio rule of thumb is to design for the top end of a radio band, but that may not be high enough for a narrow band like this.

In this case, the ISM band is 900 to 930 MHz, so the mid point is 915 MHz and 1.03 x 915 = 942 MHz, so that is what I would design to. 

PCB Dielectrics Modeled With NEC2

If you really want to make a Printed Circuit Board (PCB) antenna, then you need to use a special type of Teflon (PTFE) PCB that has a controlled dielectric value.  Ordinary fibre glass and epoxy resin FR4 has a relative permittivity that varies wildly from 4.2 to 4.7, this is too much for consistent reproducible results.  Read this for details:

You need to find a PCB house, look at the available materials and then design the antenna accordingly.  For microwave RF applications, pure PTFE on a fiberglass substrate, with a relative permittivity ε0 of 2.1 and Loss of 0.0009, is the best available in wide commercial use.  Calculate the capacitance of a little elemental square with the simple thin parallel plate formula:
C = ε0A/d

You can simulate the dielectric in NEC2 by attaching a load (LD) card with a small capacitor as calculated above to the middle of each element - calculating all the co-ordinates will keep you busy for a while!   The NEC2 simulation result should be quite accurate when you add all these little parasitic capacitors.  The easier way to handle it is to create one little element and then use GM cards to rotate and replicate the elements in two dimensions to make a patch, without having to calculate hundreds of x,y co-ordinates, which would drive any sane person up a wall.

Signal speed is inversely proportional to the square root of the dielectric constant. A low dielectric constant will result in a high signal propagation speed and a high dielectric constant will result in a much slower signal propagation speed.  This has a very large effect on the dimensions of the antenna.

The problem is that you can only vary the patch to ground spacing in a few discrete steps, since it is determined by the thickness of the chosen PCB, which is typically 0.2, 0.8, 1.6 or 3.2 mm.  You can vary the length and width in the simulation using a geometry scale GS card, but scaling will also change the spacing, so then you have to modify the position of the ground plane to get the model back to the fixed thickness of the PCB.  Nothing is ever easy with this clunky old program, but it is free, so that is fair enough.

Example Patch Antenna

Here is a set of NEC2 cards for an air dielectric 33 cm Ham band or 900 MHz ISM band patch antenna made from a tin or copper rectangle, a few mm above a somewhat larger ground plane:

CM Surface Patch Antenna
CM Copyright reserved, GPL v2, Herman Oosthuysen, July 2018
CM 940 MHz (915 + 3%)
CM H=7 mm, W=160 (80), L=156 (78)
# Active Element: 21x21 Wires in a Rectangle
# X axis
# GW Tag NS X1 Y1 Z1 X2 Y2 Z2 Radius
GW 1  21 -8.00E-02 -7.80E-02 0.00E+00 +8.00E-02 -7.80E-02 0.00E+00 1.00E-03
GW 2  21 -8.00E-02 -7.02E-02 0.00E+00 +8.00E-02 -7.02E-02 0.00E+00 1.00E-03
GW 3  21 -8.00E-02 -6.24E-02 0.00E+00 +8.00E-02 -6.24E-02 0.00E+00 1.00E-03
GW 4  21 -8.00E-02 -5.46E-02 0.00E+00 +8.00E-02 -5.46E-02 0.00E+00 1.00E-03
GW 5  21 -8.00E-02 -4.68E-02 0.00E+00 +8.00E-02 -4.68E-02 0.00E+00 1.00E-03
GW 6  21 -8.00E-02 -3.90E-02 0.00E+00 +8.00E-02 -3.90E-02 0.00E+00 1.00E-03
GW 7  21 -8.00E-02 -3.12E-02 0.00E+00 +8.00E-02 -3.12E-02 0.00E+00 1.00E-03
GW 8  21 -8.00E-02 -2.34E-02 0.00E+00 +8.00E-02 -2.34E-02 0.00E+00 1.00E-03
GW 9  21 -8.00E-02 -1.56E-02 0.00E+00 +8.00E-02 -1.56E-02 0.00E+00 1.00E-03
GW 10 21 -8.00E-02 -7.80E-03 0.00E+00 +8.00E-02 -7.80E-03 0.00E+00 1.00E-03
GW 11 21 -8.00E-02 +0.00E+00 0.00E+00 +8.00E-02 +0.00E+00 0.00E+00 1.00E-03
GW 12 21 -8.00E-02 +7.80E-03 0.00E+00 +8.00E-02 +7.80E-03 0.00E+00 1.00E-03
GW 13 21 -8.00E-02 +1.56E-02 0.00E+00 +8.00E-02 +1.56E-02 0.00E+00 1.00E-03
GW 14 21 -8.00E-02 +2.34E-02 0.00E+00 +8.00E-02 +2.34E-02 0.00E+00 1.00E-03
GW 15 21 -8.00E-02 +3.12E-02 0.00E+00 +8.00E-02 +3.12E-02 0.00E+00 1.00E-03
GW 16 21 -8.00E-02 +3.90E-02 0.00E+00 +8.00E-02 +3.90E-02 0.00E+00 1.00E-03
GW 17 21 -8.00E-02 +4.68E-02 0.00E+00 +8.00E-02 +4.68E-02 0.00E+00 1.00E-03
GW 18 21 -8.00E-02 +5.46E-02 0.00E+00 +8.00E-02 +5.46E-02 0.00E+00 1.00E-03
GW 19 21 -8.00E-02 +6.24E-02 0.00E+00 +8.00E-02 +6.24E-02 0.00E+00 1.00E-03
GW 20 21 -8.00E-02 +7.02E-02 0.00E+00 +8.00E-02 +7.02E-02 0.00E+00 1.00E-03
GW 21 21 -8.00E-02 +7.80E-02 0.00E+00 +8.00E-02 +7.80E-02 0.00E+00 1.00E-03
# Y axis
# GW Tag NS X1 Y1 Z1 X2 Y2 Z2 Radius
GW 22 21 -8.00E-02 -7.80E-02 0.00E+00 -8.00E-02 +7.80E-02 0.00E+00 1.00E-03
GW 23 21 -7.20E-02 -7.80E-02 0.00E+00 -7.20E-02 +7.80E-02 0.00E+00 1.00E-03
GW 24 21 -6.40E-02 -7.80E-02 0.00E+00 -6.40E-02 +7.80E-02 0.00E+00 1.00E-03
GW 25 21 -5.60E-02 -7.80E-02 0.00E+00 -5.60E-02 +7.80E-02 0.00E+00 1.00E-03
GW 26 21 -4.80E-02 -7.80E-02 0.00E+00 -4.80E-02 +7.80E-02 0.00E+00 1.00E-03
GW 27 21 -4.00E-02 -7.80E-02 0.00E+00 -4.00E-02 +7.80E-02 0.00E+00 1.00E-03
GW 28 21 -3.20E-02 -7.80E-02 0.00E+00 -3.20E-02 +7.80E-02 0.00E+00 1.00E-03
GW 29 21 -2.40E-02 -7.80E-02 0.00E+00 -2.40E-02 +7.80E-02 0.00E+00 1.00E-03
GW 30 21 -1.60E-02 -7.80E-02 0.00E+00 -1.60E-02 +7.80E-02 0.00E+00 1.00E-03
GW 31 21 -8.00E-03 -7.80E-02 0.00E+00 -8.00E-03 +7.80E-02 0.00E+00 1.00E-03
GW 32 21 +0.00E-00 -7.80E-02 0.00E+00 +0.00E+00 +7.80E-02 0.00E+00 1.00E-03
GW 33 21 +8.00E-03 -7.80E-02 0.00E+00 +8.00E-03 +7.80E-02 0.00E+00 1.00E-03
GW 34 21 +1.60E-02 -7.80E-02 0.00E+00 +1.60E-02 +7.80E-02 0.00E+00 1.00E-03
GW 35 21 +2.40E-02 -7.80E-02 0.00E+00 +2.40E-02 +7.80E-02 0.00E+00 1.00E-03
GW 36 21 +3.20E-02 -7.80E-02 0.00E+00 +3.20E-02 +7.80E-02 0.00E+00 1.00E-03
GW 37 21 +4.00E-02 -7.80E-02 0.00E+00 +4.00E-02 +7.80E-02 0.00E+00 1.00E-03
GW 38 21 +4.80E-02 -7.80E-02 0.00E+00 +4.80E-02 +7.80E-02 0.00E+00 1.00E-03
GW 39 21 +5.60E-02 -7.80E-02 0.00E+00 +5.60E-02 +7.80E-02 0.00E+00 1.00E-03
GW 40 21 +6.40E-02 -7.80E-02 0.00E+00 +6.40E-02 +7.80E-02 0.00E+00 1.00E-03
GW 41 21 +7.20E-02 -7.80E-02 0.00E+00 +7.20E-02 +7.80E-02 0.00E+00 1.00E-03
GW 42 21 +8.00E-02 -7.80E-02 0.00E+00 +8.00E-02 +7.80E-02 0.00E+00 1.00E-03
# Ground plane
# H = 5 mm, Feed = 16
# Frequency 940.000 MHz
# Resonance; the calculation explodes
# H = 7 mm, Feed = 16
# Frequency 940.000 MHz
# Feedpoint(1) - Z: (0.116 + i 133.600)    I: (0.0000 - i 0.0075)     VSWR(Zo=50 Ω): 99.0:1
# Antenna is in free space.
# Directivity:  7.68 dB
# Max gain: 12.54 dBi (azimuth 270 deg., elevation 60 deg.)
# SM NX NY X1 Y1 Z1 X2 Y2 Z2
# SC  0  0 X3 Y3 Z3
SM 25 25 -1.00E-01 -1.00E-01 -7.00E-03  +1.00E-01 -1.00E-01 -7.00E-03
SC  0  0 +1.00E-01 +1.00E-01 -7.00E-03
# Frequency 850.000 MHz - 3 dB down
# Feedpoint(1) - Z: (0.176 + i 129.320)    I: (0.0000 - i 0.0077)     VSWR(Zo=50 Ω): 99.0:1
# Antenna is in free space.
# Directivity:  7.42 dB
# Max gain: 9.54 dBi (azimuth 270 deg., elevation 60 deg.)
# Frequency 940 MHz
FR     0     1     0      0   9.40E+02
# Excitation with voltage source
# EX 0 Tag Segment 0 1Volt
EX     0     16     11      0         1
# Plot 360 degrees
RP     0    90    90   1000         0         0         4         4      0

Now you can go and get a coffee can and tin snips and have fun.  The trick is to space the tin plate with paper or plastic washers and glue it to the ground plane with two or four hot glue blobs on the corners, then after hardening, remove the spacers.

For more information on what exactly to do with the contents of the coffee can, you can read this

Once you have the first rectangular patch working in simulation, you can explore cutting the corners, or making slots in it, to get circular polarization for Satcom or mobile use.  You could also try drilling holes in two opposing corners and using those for little nylon bolts.  That could provide robust mounting and circular polarization, in one swell foop.

Once you built the widget, you need to measure it to see how close you got to your model and how you should tweak things.  It is very seldom that the first try is good enough. The aliexpress web site lists many different VNA models from $300 to $3000, which is orders of magnitude less than a couple decades ago.  I got a Measall KC901V, and I am very happy with it.

Patch Antenna Calculators

There are various patch antenna calculators on the wild wild web, for example:

A calculator can quickly create a starting point for experiments.

To hook the antennas together, you can use microstriplines, which can be calculated with this one:

However, at a height of 7 mm, the stripline tracks would need to be impractically wide.

If you put four patches in parallel, then the impedance becomes 90/4 = 22.5 Ohm, which is not a good match to a 50 Ohm co-ax.  For a good match, you can instead uptransform each patch with a taper (height 7 mm) from 90 Ohm (14 mm) to 200 Ohm (2 mm), so that when you combine them, you get 50 Ohm.

Where to put the taper?  A wide 14 mm track is a bit impractical, while a thin 2 mm track is a bit lossy, so how now brown cow?

One solution is to use two impedance tapers:
The impedance of the start and end of the transmission line is important, but what exactly it is in the middle, doesn't matter.  Therefore, at the patch, taper from 14 mm to 5 mm, run the track to the connector in the middle and then taper from 5 mm to 2 mm.  It is always a give and take - trade off one thing for another and try again!

Note that it is important that you run the tracks in a kind of swastika with the 50 Ohm connector in the middle of the panel, such that each branch is progressively 1/4 wavelength longer, to provide the required 90, 180, 270 degree phasing.  However, don't make 90 degree corners - make them rounded, or 45 degree sections - else the corners will radiate and cause reflections.

Note that 93 Ohm coaxial cable is available from Pasternack, so you could use it instead of strip lines:

However, if you decide to use coax, then you can just as well probe the patch with a network analyzer till you find the exact spot where it is 50 Ohm and run garden variety RG316U coax - choices, choices...

Eventually, just to prove it, I got busy with tin snips on thin 0.8 mm FR4 since it is easy to work with and made a bunch of patches and measured them all - too big, too small, too big, too small - aaargh!

The little bit of FR4 epoxy has a significant effect on the resonant frequency and I had to make the patch about 20 mm smaller than the original design.  This exercise showed that to make a properly tuned patch you must have a reasonably decent VNA and a lot of patience.

On the right is an example that is almost the right size - about 1 mm too small - with a usable bandwidth from 908 to 938 MHz, which is 8MHz too high.  The 50 Ohm co-ax feed is soldered in from the bottom.   I made a 6 mm hole in the reflector, soldered the braid there and a 2 mm hole in the patch for the centre wire.  For these tests, the patch is held down with wads of 'chewing gum' (Faber-Castell Tack-It).

Circular Polarized Patch Array

With careful use of GM cards, one can replicate and rotate the patch and create an array of 4, 9 or 16 patches and then tie them together in series with 1/4 wave transmission line TL cards (the skew faint lines between the feed points on the below picture).  One can make the EM field rotate right or left depending on whether one feeds it at patch 1 or at patch 4.

One can daisy chain patches like this in a model, but for the real thing, I would hook them in parallel with a star of striplines or coax to ensure that the transmit power level is the same on each patch.

Coax delay lines are good for a one off test, while microstriplines are good for replication.  In the end, the whole assembly will be only as accurate as your test tools and your patience allow.

A 24 dBi Quad Patch Array Simulation

Obtaining 24 dBi from only four patches is very good - very well optimized.  Typical commercial quad patch antennas will yield 17 to 21 dBi, which is probably what you will get when you actually build it.

A simulation helps very much to figure out what should work and what won't, but to measure is to know!

A problem with using 9 (3 x 3) or 16 (4 x 4) patches, is the law of diminishing returns: Losses and radiation from the transmission lines will become significant and will distort the patterns from the patches.  Therefore, the NEC model may look great, but the practical results may disappoint.

A large patch array with nine or sixteen patches, could create a very high gain assembly - a pencil beam - the complete design of which would require an export license, due to the Wassenaar agreement on dual use items.  Therefore I'll rather just stop here with this article and not provide the complete design, before a black helicopter starts to follow me around.

La Voila!