This module is an analogue and digital SWR and power meter/monitor, designed to replace analogue SWR and power metering in an AM Transmitter project. Of equal importance was the ability to detect high SWR and raise an interlock (a control line) to inhibit transmitter power in the presence of unreasonably high SWR. I make no claim to either SWR or power accuracy; my version is an indicative tool and an interesting experiment, not an accurate test equipment, although it could be made into same with some skill and patience.
Various couplers could be used in a module such as this. I built the Bruene Bridge directional coupler described in ‘A PIC16F876 based, automatic 1.8 – 60 MHz SWR/WATTmeter‘, a project from “Il Club Autocostruttori” of the Padova ARI club‘ by IW3EGT and IK3OIL. Each coupler type has its own strengths and peculiarities. All are fairly similar, all will require some effort to calibrate, depending on how fussy you are.
The Arduino script is here.
Calibration has always caused me some frustration with these kinds of meters. SWR is easier than power because it is a ratio and the absolute values don’t matter so much (within a certain range). However, power is an absolute value which you have to determine by mapping arbitrary milliVolt readings into an absolute power measure. There is no logarithmic detector such as an AD8307 between the coupler and the Arduino in my module, and I didn’t want to add one, so I came up with an approximation in software.
I used the forward and reflected milliVolt readings and the corresponding RF power level (as measured from the transmitter into a load using a ‘scope) and mapped these pairs (milliVolts, power in watts) into an approximation using an online curve fitting calculator. I coded the resulting expression. It gives power readings within 5% in the range 10 to 100 watts which is good enough for my transmitter project.
This design is primarily intended to be used to detect high SWR and raise a control line in an AM transmitter project — it is not a precision instrument. It is not even particularly accurate. SWR and RF power meters have a long history and there are many fine examples available, I strongly suggest you look around to find one that suits your exact purposes. OZ2CPU has a nice QRP power meter although you will need to either use his PIC and firmware or find a script of your own for an Arduino MCU. And for a really high performance option that is fast enough to double as a monitor scope, see this project from TF3LJ.
Note that the time taken to detect and raise this interlock is dependent on several factors including the processing speed of the Nano; it is in the 10s of milliseconds range; this may not suit or even protect your transmitter!
I added a few features to the code. The displays dim after a configurable period of inactivity. The ‘High SWR’ interlock resets when the SWR drops below the threshold. Analog reads from the forward and reflected coupler ports are buffered and averaged. And all of the constants in the scrips are #define‘d for convenient configuration.
Comments, feedback, improvements, stories welcome.