Frequency stability has always been a challenge to VFO design. Inexpensive synthesizer chips have made wide coverage available with absolute stability but how should we tune them? Stand-alone microcontrollers do the complex programming for us, even driving displays. but we still need to interface with the controller.
Rotary encoders and push-button switches are popular. Most inexpensive encoders are mechanical switch assemblies with detents and 20 positions per turn. They make a physically compact package which is simple and reliable and can emulate the familiar dial mechanism.
A linear potentiometer can provide a voltage corresponding to its dial position, just like we do with varactor tuning, but applied to the digital controller and read by the analog-to-digital converter. The most common A/D converters have 10 bit resolution. That means that there are 1024 positions that can be resolved in the range of the control, whether it is a single turn 270 degree pot or a 10 turn device. If we were to use that control to tune just 10 KHz then the best that we could resolve would be about 10 Hz. Not too bad. Certainly good enough for SSB or CW. The problem is that a 10 KHz band is only enough spectrum for three or four SSB conversations.
The 10 Hz resolution can be improved slightly if the analog voltage from the control is oversampled. That means that we measure it, let's say 100 times instead of just once, then average these samples. That smooths things out a bit. We still have the temperature drift of the variable resistance and the small changes in the applied voltage to account for. Again, with just a 10 KHz tuning range it is quite good enough for SSB and CW.
If we don't want to restrict our band to 10 KHz then we have choices to make. We could increase the range to 100 KHz but that would mean having a very touchy tuning control and 100 Hz resolution. Even SSB would be annoying but imagine CW jumping around 100 Hz. So a compromise would be a coarse frequency control and a fine tuning control. Switches or encoders to switch range, the potentiometer to tune within that range. That works. Another idea is to use the end positions of the tuning control as range-selecting switches. You lose some of your tuning range to those new “switch” areas. It works quite well, though.
If you want to use a digital mode, especially PSK or a JT mode, the previous tuning methods are not usable. It's not the fault of the synthesizer chip, it is the analog control. Better to use an encoder. Or switches. Or...you can use a computer to directly control the transceiver. That's the best idea for digital modes since you are probably using a computer anyway.
I've developed another option. I call it Shuttle Tuning since I couldn't think of anything better. It is an exponential differential tuning method but that name just doesn't slide off the tongue!.
Back in the days of video tape, editor boards had a “Shuttle” knob that allowed the operator easy Fast Forward and Rewind control, shuttling the tape back and forth. It had stepped rates so that the editor could run through yards of tape quickly and zero in on a single frame.
With Shuttle Tuning the knob sits idle in the center of its range. With the pointer straight up, at this point, tuning is stable and there is no frequency change. There is a safe zone there, several degrees where it is idle. Turn it left (counter-clockwise) and it slowly starts tuning lower in frequency one Hertz at a time. Turn it right (clockwise) and it tunes higher in frequency. Turn it further and it tunes faster. You can program the rate change to what suits you. I can tune the 300 KHz 40 meter band in less than 13 seconds, end to end. To the individual Hz! As you approach the target frequency you slow the tuning rate by turning the knob closer to the center (idle) position.
Instead of twirling the knob, you twist it. It is like a throttle control. Power tuning. The synthesizer is as stable as its reference crystal. Most have less than 10 Hz drift from cold start and about 1 Hz after a few minutes. TCXO references are available to improve that stability 10-fold and GPS references are now quite affordable for the truly particular among us.
I can now tune in WWV and listen for days using zero-beat. I never need to touch the tuning knob.
I have some very small and simple Arduino “sketches” that I have used on both AD9850 and Si5351 synthesizer chips. These same programs also display the frequency to single Hz and show an “I” when the knob is in the idle position. That idle indicator can be replaced with tuning direction arrows if you wish. The algorithm is small enough to easily fit within most any program. It requires no library to support it, no interrupts. It uses just a single wire to read the control voltage and works best with a single turn control. It's not affected by resistive drift and is quite tolerant of voltage variations.
The parameters of this tuning mode can be changed by the user. The length of time between making new steps, the width of the idle zone, even the rate of the speed change are all just parts of the Arduino sketch. These can be tailored to taste in minutes by connecting a usb cable to the Arduino.
Want to see what's on the band? Just turn the knob a bit and it starts scanning. You can take your hand away and do something else while it keeps moving up (or down) frequency. Find something interesting and you put it back to idle. Can't do that with a store-bought appliance.
Most of my Shuttle Tuned VFOs have used Arduino “Nano” modules, the little thumb-sized boards with a usb connector on them. The synthesizer chips came on break-out boards that made them easy to use. The LCD displays have all been the 16 character, 2 line standard units. I prefer the I2C variety since they use fewer wires and are easier to bread board. I also use that method on the “Raduino” synthesizer module that comes with the BITX semi-kit from VU2ESE. Each of these projects is inexpensive, costing about the same as a good variable capacitor alone.
Some Shuttle Tuned software can be viewed and downloaded in the software documentation pages here.
Most modern transceivers use rotary encoders for tuning. By not having detents, the user is unaware that there are no gear reductions and such behind the panel, just a small sensor unit. Reliability is increased by using optically-based encoders but the cost of these encoders usually places them beyond what hobbyists are willing to pay.
Switch-based encoders can often be found for less than $1 USD each, usually panel-mounted using the same sized hole that a potentiometer uses, and have an additional switch that is activated when the shaft is pushed. All of these features combine to make a very attractive control.
Without relying upon extremely stable voltage sources or measurements, encoders provide an inherently stable frequency control. The working parts within are two single-pole single-throw (SPST) switches arranged with a 90 degree operational overlap. By examining them when the shaft is rotated, it can be determined which direction it is being turned. The Arduino controller can be optioned to apply a low current pull-up voltage on two of the pins. A ground reference is applied to the common return so that, when a switch is closed, the change in voltage will register the change. The third switch can be sensed by the Arduino using the same method.
Wiring consists of the common ground return lead connected to one side of the push switch and the common of the encoder switches. Three sensing leads then connect to the Arduino. If the program uses an external interrupt feature, it can instantly detect any change and make the tuning procedure transparent.
A bit of software magic can determine the amount of frequency change and the direction of change. The amount of change can be selected by pressing in the tuning knob and turning it one way or the other while displaying the tuning increment using an underline-style cursor. Releasing the knob press then enables the actual tuning. Very fast and intuitive.
Some encoder-tuned sketches can be viewed and downloaded from the software documentation pages here.