DIY RF Field Strength Meter / Detector With Audible, Visual, And Digital Indicators (Based on 555 Timer And Simple Parts)
This was a little rabbit hole. On some amateur radio forum somewhere someone mentioned the MFJ-802B RF Field Strength Meter. This piqued my interest because I had not realized that a field strength meter was a consumer accessible device. Turns out there are all sorts of RF meters and detectors available to purchase. Who knew?
This collided me into the homebrew versions of RF detectors. One that caught my eye, and inspired this project was βThe Squeakieβ by VK3YE. It requires a handful of components, all of which I had. I built it mostly to spec on a breadboard, adding only an extra trimpot to control the volume. Then I soldered it onto perfboard and it, after a bit of troubleshooting, worked exactly as advertised. In short, it squeaks at a proportionally higher pitch when it encounters radio waves. This means it is useful as an audible RF field strength meter. You could use it to detect RF while fox-hunting, or to test the radiation pattern of an antenna, or to annoy your significant othersβ¦ In short, it is a voltage-controlled oscillator that increases in frequency in the presence of an RF signal.
![](../themes/icons/grey.gif)
So I built The Squeakie, and sure enough one tap on my HT, and the little guy was shrieking. Below gives you a rough sketch of how I positioned and connected everything. This perfboard is of the type that all of the holes in each individual row are interconnected (and represented by the printed lines on the page).
![](../themes/icons/grey.gif)
So how exactly does The Squeakie work? My modification of VK3YEβs Field Strength meter is shown in part below (circuit constructed with Multisim).
![](../themes/icons/grey.gif)
Letβs start with D1, which is the switching diode 1N4148. In this application, the diode is acting as a rectifier, transforming an RF signal coming from the antenna into direct current.
Next letβs discuss the 555 Timer IC. This circuit is set up in βastableβ mode, which means that the 555 timer is going to oscillate between an output of VCC and zero volts indefinitely with a regular and predictable voltage-dependent frequency. The tying of the threshold (pin 6) and trigger (pin 2) together puts the 555 in a permanently unstable state flipping between βonβ (with a voltage equivalent to that seen on pin 8, i.e. VCC) and βoffβ (zero voltage) producing an endless square wave.
Resistors R1 and R2, along with capacitor C3 work together to produce the frequency of the 555 Timer output. In the situation where VCC is the only voltage source, the threshold/trigger flip-flop produces a stable oscillation. But in our circuit, the antenna acts as an additional voltage source in the presence of RF, adding to the VCC, and resulting in more swift oscillations (i.e., an increase in frequency of the output square wave signal).
The VCC crosses the R5 resistor, 20k⦠potentiometer, and the R4 resistor , which act as an adjustable voltage divider, creating a forward bias on the 1N4148 diode. The 20k POT can be adjusted to increase or decrease the voltage either toward the diode or toward ground, and in turn, change the frequency of the timer output. An additional voltage supplied by the antenna and rectified by the diode will increase that frequency.
The output voltage, rhythmically oscillating between VCC and zero volts, will cross through an electrolytic capacitor and to an 8β¦ 0.5W loudspeaker whose volume is controlled by a 200β¦ potentiometer. Running in parallel to the loudspeaker is also an LED thatβs brightness will be increased or decreased with the frequency (and duty cycle) of the timer. And also an output lead to provide a readable input to a microcontroller is also available. In this case I used an Arduino Nano as well as a 1602 LCD screen.
![](../themes/icons/grey.gif)
The above EasyEDA schematic shows my entire finalized project. Or I supposed at least version 1.0. This includes placement of a DPDT switch (SW1) to switch from the Nano to the loudspeaker. A second switch (SW2) to switch the output to the Nano on or off. Three 2-port terminal blocks for the voltage source, antenna, and loudspeaker. The Arduino Nano and itβs connections to the 1602 LCD screen. And finally, the code I programmed for the Nano that would convert the output reading of the RF meter into a corresponding number. Iβll talk more about the code later on.
Below shows the entire breadboarded project, fully operational. In my version, not only does it squeak in higher frequencies (and have an adjustable volume) in the presence of RF above ambient background noise, it also brightens an LED proportional to RF signal strength, and displays a relative numerical meter reading. The antenna is just a length of wire tied into the positive port of the terminal block.
![](../themes/icons/grey.gif)
And just a close-up of the placement of the components. You will notice that the readout number is much less bright than the words βRF Strengthβ. I think this is due to the very quick oscillations of the device, of which I tried to account for somewhat in my rudimentary code. Hey, what can I say? It needs work.
![](../themes/icons/grey.gif)
I did go ahead and convert my EasyEDA schematic into a PCB through JLCPCB. Remember, I do not accept sponsorship from anyone. I actually cannot believe how easy it is to acquire a circuit board from this company.
![](../themes/icons/grey.gif)
The unpopulated rendering of the PCB is shown below. And the partially populated board is above.
![](../themes/icons/grey.gif)
And an exact Bill of Materials below.
![](../themes/icons/grey.gif)
And finally the code!
#include <LiquidCrystal.h>
int rs=7;
int en=8;
int d4=9;
int d5=10;
int d6=11;
int d7=12;
LiquidCrystal lcd(rs,en,d4,d5,d6,d7);
int maxVal = 0;
uint32_t lastSample = 0;
void setup() {
Serial.begin(9600);
lcd.begin(16,2);
}
void loop() {
if (millis() - lastSample > 1000) {
lastSample = millis();
Serial.println(maxVal);
maxVal = 0;
}
int reading = analogRead(1);
if (reading > maxVal) {
maxVal = reading;
}
lcd.setCursor(0,0);
lcd.print("RF Strength: ");
lcd.print(maxVal);
lcd.clear();
}
What can I say? The firmware sure isn't pretty, and it doesn't even give you great results. But it does kinda work. I will probably spend some time working out different ways to produce more meaningful results from the readable Nano lead of this device.
This was a great and instructive project to work through for me. It also lends itself to a really easy soldering project for hams, or students, or individuals, particularly if you only build the part with the loudspeaker, or even the original βThe Squeakieβ. I think it is putting me one step closer to building my own receiver, which is something I have made a few attempts at so far.
May we meet again!
KM1NDY