This is a project of a VFO (variable frequency oscillator) for use in homebrew equipement such as Direct Conversion and Superheterodyne Receivers or Ham Transmitters. Can be used as RF/Clock generator too.
Features:- Operation range from 10kHz to 120MHz.
- Tuning steps of 1Hz, 10Hz, 1kHz, 5kHz, 10kHz and 1MHz.
- Intermediate Frequency (IF) offset (+ or -) adjustable (see note below).
- For use as Local Oscillator on homebrew Superheterodyne or Direct Conversion radio receivers.
- For use as VFO for HAM radio transmitters.
- For use as a simple RF/Clock generator for calibration reference or clock generation.
- Works with Arduino Uno, Nano and Pro Mini.
- Uses a common 128x64 I2C OLED SSD1306 display and Si5351 module.
- I2C data transfer, only 2 wires to connect the display / Si5351 and arduino.
- High stability and precision for frequency generation.
- Simple yet very efficient and free.
I am updating the VFO Si5351 code, which will have new functions: maximum frequency increased to 225MHz, band preset and band indication, RX / TX function, generator function and maybe a bargraph for measurement. The above video shows the work in progress.
Schematics / wiring:- Open the scketch on Arduino IDE, install all the required libraries.
- Choose the preferences (see note) and compile the sketch and then load it to the Arduino Nano, Uno or Pro Mini.
- Follow the schematics to wire the Arduino, Display, Si5351 module, rotary encoder, etc.
- Power up the Arduino.
- Rotate the rotary encoder to tune up or down the frequency.
- Push the encoder button to change the frequency step tuning. The steps available are 1Hz, 10Hz, 1kHz, 5kHz, 10kHz and 1MHz.
-It is possible to change the followings items on sketch:
#define IF 0: Enter your IF frequency, ex: 455 = 455kHz, 10700 = 10.7MHz,
0 = to direct convert receiver or RF generator, "+" will add and "-" will subtract
IF offfset.
#define FREQ_INIT 7000000: Enter your initial frequency at startup, ex:
7000000 = 7MHz, 10000000 = 10MHz, 840000 = 840kHz.
#define XT_CAL_F 33000: Si5351 calibration factor, adjust to get exatcly 10MHz. Increasing this value will decreases the frequency and vice versa.
#define tunestep A0: Change the pin of encoder push button if you want.
******************************************************************************
Julio Cesar - CesarSound - ver 1.0 - Dec/2020.
Comments