The emergence of inexpensive microcontroller boards, like the Arduino series, and signal synthesizers, like the Si5351 and AD9850, prewired and mounted as modules makes for easy construction of relatively complex projects. Display modules, complete with their controllers, are also available cheaply. This makes it a simple matter to just wire them together for easy construction of otherwise complex projects. For those experimenting with or repairing communication devices signal generators are essential. Building them can save money and allow customization. You can build test equipment to exactly suit your needs. Not to mention that you will learn a few things. Most importantly, you will be able to repair it if it breaks. When you don’t need it any more, you can use the parts for something else entirely!
My first such generator project in this series was the Easy Signal Generator Easy Signal Generator, my “EZGen1”. Just a Direct Digital Signal (DDS) board plugged into an Arduino Uno and controlled through the USB port by a computer. You had to have a computer connected to change frequency. A fixed output level was all that was available. Still a great tool for generating low distortion audio down to ridiculously low frequencies.
My next effort was to use a smaller controller board (the Arduino Nano) and small OLED display to control an Si5351 breakout board. I called this the EZGen2 or EZGenII. This has proven to be a very useful addition to the bench but required external attenuation for any level below the 2 milliwatt (+3 dBm across 50 ohms) that it produces at its lowest drive level (default) setting. I still use it a lot for prototyping generation and for a portable stable signal source (like calibrating Doppler RDF systems).
I often need a very low level signal to evaluate a receiver. Usually below -73 dBm (50 microvolts, the standard for S9 meter readings). Ideally the level should be able to be reduced to well below any receiver’s detection capability (like -150 dBm). Lofty goals, indeed, since it is quite difficult to provide shielding good enough to reduce the signal to less than a billionth of the original without significant leakage.
For this project I chose to try a simple potentiometer as an attenuation control. I used a 10 dB resistive network to isolate the Si5351 from varying loads, and followed the potentiometer with another resistive network for the bulk of the attenuation.
Rather than attempting to calibrate the attenuator knob, I chose to use an AD8307 logarithmic detector to measure the RF level at the wiper of the potentiometer. I had used this device earlier when building a power meter, had purchased several chips, and had made up a few modules for future projects like this one. The circuit that I used was the one that Wes Hayward and Bob Larkin published in the June 2001 issue of QST. It is has a very wide frequency range and develops a DC voltage that accurately tracks the logarithmic level of the RF signal to be measured.
The Nano reads this voltage, calculates the level that will be delivered at the EZGen3 output BNC, and displays the result, in both microvolts and dBm, on the SSD1306 OLED display.
The resistive network between the potentiometer and the output connector sets the overall attenuation to the proper range and provides a constant match. The values shown in the schematic set my range from -85 dBm (12.8 microvolts) down to -129 dBm (0.08 microvolts). That range was decided mostly by the 44 dB range that my potentiometer allowed.
Since I only wanted this to be a test bench instrument I included a 120 VAC to 5 VDC power supply. This was built from a salvaged “wall wart” mostly. I removed it from the plastic shell and plug and then strapped it into the (salvaged) aluminum case with a strip of aluminum flashing. I added a line fuse, too. Wall warts often use the transformer primary as a fuse. Ugh!
For this project I used a junked data switch found at a second-hand shop. After removing everything from the cabinet I cut a piece of scrap aluminum from a spare dishwasher decorative panel and covered the rear of the cabinet. I didn’t need all of those holes.
For quick-and-easy shielding I chose an Altoids tin to contain the Nano, the rotary encoder, the potentiometer, the SI5351, the AD8307,and most of the resistive networks. The encoder and the potentiometer shafts protrude through the bottom of the tin and through the front panel of the cabinet, mounting the assembly to the cabinet. The Nano is mounted on the back of the encoder, the Si5351 is mounted on a block of double-sided foam tape in addition to the solder connections to the Nano, and the AD8307 module is glued to the back of the potentiometer.
The 5 volt power is fed through a feed-through capacitor into the shielded area. The USB port of the Nano is accessible if the Altoids tin lid is lifted, thus programming in place is easy. R5 exits the shield so that half is inside, half outside the shield, and R6 is across the BNC output connector. All RF leads are as short as possible.
The firmware is an Arduino “sketch”. You can download the latest firmware version by clicking here. You can read the PDF document by clicking here. Tuning is handled by interrupts so is effective immediately whenever the frequency knob is turned. Otherwise the only things for the Nano to do is just read the level and feed the display. Level reading is done by averaging a thousand measurements at a time. Doing that calms the display to a comfortable rate and makes it as accurate as possible.
To tune the frequency, press the knob and turn to move the underline cursor to the position to change and then release it. Turn the knob either way to change the frequency by that increment. For example: Moving the cursor to the one kilohertz position allows you to change frequency in 1 kHz steps. Moving it to the MHz position tunes in 1 MHz steps.
The level control knob is a single 270 degree control and a simple twist of the knob changes the output level quickly. A big knob makes precise level adjustment easier. I’ve had no issue getting the exact level set immediately.
At the time that I built it, January 2020, the total cost was under $10 USD. That didn’t include the stuff that came from my junk pile like the wall wart, cord, knobs, and such. The electronics costs have probably doubled in the last 4 years, too. So call it about $25 now? Still, I learned a lot and I have been enjoying the generator more than I had imagined. Great for checking and tuning up my various receivers. Fast, too!
de ND6T