Universal VFO 10 KHz-160 MHz with Retro Analog Scale (variable frequency oscillator)

Published Nov 19, 2022
 4 hours to build
 Beginner

A variable frequency oscillator (VFO) is a necessary component in any tunable radio transmitter or receiver.

display image

Components Used

ESP32 WROOM
WiFi Development Tools - 802.11 ESP32 General Development Kit, embeds ESP32-WROOM-32E, 4MB flash.
1
Si5351 PROGRAMMABLE ANY-FREQUENCY CMOS CLOCK
Si5351B is an I2C programmable any-frequency CMOS clock generator + VCXO (Voltage Controlled Crystal Oscillator).
1
Pushbutton Switches
Pushbutton Switches DPDT H=12.5mm PUSH SWSOFT SOUND
3
Resistor 2.2 kOhms
Metal Film Resistors - Through Hole 2.2K OHM 1/4W 1%
1
TFT Display 128x160 1.8 inch
Display Development Tools 1.8" Color TFT LCD w/microSD & Joystick
1
Rotary Encoder with Push-Button
1
Description

    A variable frequency oscillator (VFO) is an oscillator whose frequency can be tuned (i.e., varied) over some range. It is a necessary component in any tunable radio transmitter or receiver, and controls the frequency to which the radio is tuned. This time I will show you how to make a VFO that covers the range from 100 KHz to 160 MHz and uses a minimum number of components.
 

  The selected frequency is displayed on a beautifully designed retro scale in the style of ham radios from the previous century. About 2 years ago, In one of my previous videos (https://www.youtube.com/watch?v=DSxK0jwMZw4&t=535s) I made a small shortwave radio receiver with this VFO, but the current version has additional functions for changing the tuning step, as well as storing frequencies. These options drastically simplify the operation of the device.
 Otherwise, the device was originally designed by Japanese radio amateur JF3HZB, and the version that I present to you is modified by DJ7OO. I got the code from my friend Branko Zupan (http://users.triera.net/zupanbra/), on whose page you can find many projects and useful tips, especially in the field of Radio technology. For this project he has designed a custom PCB as well as an add-on Direct Conversion Receiver with the famous NE612 mixer IC. Also a different version of the PCB for this project is on DJ7OO's site. 
   So, if you want to make a PCB for this project, or for any other electronic project, PCBway is a great choice for you. PCBway is one of the most experienced PCB manufacturing company in China in field of PCB prototype and fabrication. They have a large online community where you can find a Open Source projects, and you can also share your project there. From my personal experience I can tell you that on this community you can find many useful projects with alredy designed PCBs, from where you can place an order directly.

   As I mentioned before, the device is extremely simple to make and contains only a few components:
   - ESP32 Dev. kit board
   - 1.8" TFT Display with 128x160 dots resolution (ST7735 chip)
   - SI5351 programmable clock generator board
   - Rotary encoder with push button
   - three buttons
   - and Output connectors
 

   Now let's see how the device works in reality.    Immediately after switching on, the start frequency that is previously defined in the code appears on the screen. Turning the rotary encoder changes the frequency. The tuning step, and thus the scale rotation speed, is controlled by the two buttons, and ranges from 10 Hertz to 1 Megahertz. With the the rotary encoder button we memorize the current frequency, and after the next power-on of the device, it will be the initial frequency. The oscillator also has the ability to memorize previously defined frequencies in the code, that we can call up with the MEM button. 
 

For the first few megahertz the signal has an approximately rectangular shape. Then by increasing the frequency, the shape of the signal becomes sinusoidal. Even at the highest frequencies, the shape is almost triangular and the amplitude of the signal decreases significantly.
  It is interesting to note that as part of the code, in the "dial_prm.h" header file, many parameters can be changed, starting from the colors, through the dial radius, up to the definition of Length and Width of Dial pointer, space between Main and Sub Dial etc...

  I plan to use this VFO in the construction of very simple AM and SSB radio receivers (mostly Direct Conversion receivers) that I will present to you in some of the following videos.
 And finally, the whole device is embedded in a suitable box made of PVC material with a thickness of 3mm and 5mm, and coated with colored self-adhesive wallpaper.
 

Codes

Downloads

Schematic Download
Comments
Ad