Hi

In this Instructable I'll show you how I built a low-cost antenna analyser which can measure an antenna and display its VSWR over any or all of the HF frequency bands. It will find the minimum VSWR and corresponding frequency for each band but also will display a realtime VSWR for a user-selected frequency to facilitate antenna adjustment. If sweeping a single frequency band, it will display a graph of VSWR versus frequency. It also has a USB port on the back for outputting frequency and VSWR data, to allow more refined graph-plotting on a PC. The USB port can also be used to reflash the firmware if needed.

I recently got into amateur radio (because I liked the idea of peer-to-peer communication over huge distances without infrastructure) and rapidly made the following observations:

1. All of the worldwide communications that interested me take place on the HF bands (3-30 MHz)

2. HF transceivers are very expensive and will break if you don't drive them into a reasonably well-matched antenna

3. You are generally expected to rig up your own HF antenna from bits of wire strung across the garden (unless you want to spend even more money than you spent in 2).

4. Your antenna might be a bad match but you won't know till you try it.

Now a purist would probably say that one should first test the antenna on very low power at the frequency of interest and check the VSWR on the rig's meter to assess the quality of the match. I don't really have the time to muck about with that sort of thing for every frequency I might want to use. What I really wanted was an antenna analyser. These devices can test the quality of the antenna match at any frequency over the HF bands. Unfortunately they are also very expensive, so I set about considering whether I could make my own. I stumbled upon the excellent work carried out by K6BEZ (see http://www.hamstack.com/project_antenna_analyzer.html), who investigated the use of an Arduino to control a cheap direct digital synthesiser module (DDS). He soon abandoned the Arduino on cost grounds, preferring to use a PIC. Well, in 2017 you can buy an Arduino Nano for about £3.50, so I thought it was time to revisit his work, pick up where he left off and see what I could come up with (note that I'm not the only one who has done this: there are some very nice examples to be found on the internet).

Update (29/7/2018) - this work has been built upon considerably by bi3qwq, from China, who has made some really nice improvements to the user interface, which he has kindly shared. He's designed a very professional PCB (with a great calibration resistor feature) and done a really good looking build. To top it all he has prepared a schematic, which I know will delight many of those who have commented previously. Please see the comments section for more information.

Update - I've been getting into 60 m recently, which the original sketch didn't cover. So now I've uploaded firmware version 7, which adds the 160 m and 60 m bands. These aren't add-ons; they are fully integrated into the operation of the analyser. It was fortunate that I could find an u8glib font that was still legible but allowed me to display ten bands simultaneously on that little screen (although it wasn't monospace, which caused some grief). I have estimated calibration values for the new bands, based on interpolation / extrapolation of the existing calibration values. I then checked these out with fixed resistors and they give pretty good results.

Update - as several people have asked about schematics, the fundamental Arduino / DDS / VSWR bridge circuit is largely unaltered from K6BEZ's original work. Please check out the above URL for his original schematic on which I based this project. I've added an encoder, an OLED screen and fully developed firmware to make for an effortless user experience.

Update - This system uses a very low voltage DDS signal source in conjunction with a resistive bridge containing diode detectors. Thus the diodes are operating in their non-linear regions and my first version of this system tended to under-read VSWR. As an example, a 16 ohm or 160 ohm impedance load should show a VSWR of about 3 in a 50 ohm system; this meter indicated a VSWR closer to 2 in this situation. I therefore carried out a software calibration using known loads which seems to be an effective fix for this problem. This is described in the penultimate step of this instructable and a revised sketch has been uploaded.

Update - on-board graphing facility added to single sweeps as it was too useful to leave out, particularly when tuning antenna lengths for minimum VSWR : a graph gives you an instantly visible trend.