1.5  Dual VFO switching    

This doesn't work with Icom rigs and other rigs with no access to background VFO settings....
                                                          *** you must read Learning guide 2.10 Icom --vfo mode ***

Storing settings for rapid VFO switching

Most modern radios have two 'VFOs'.

These are implemented in different ways:

eg: On my two radios:

  • IC7000        This has a single receiver and two VFO settings.


  • FTdx101D        This has two completely separate ide  ntical receivers.

               Several receiver parameters are duplicated., ie: each receiver has its own separate controls.

These include DNR. contour, notch, width, shift, RF gains, squelch, .AFgain.

These settings will change on band switching.


The two radios above reflect the two extremes of dual VFO systems.

The FTdx101D is the more complex to deal with.

For receiver parameters, the FTdx101D CAT manual shows separate commands controlling each receiver.

eg: RL0; requests a read of noise reduction level on the main receiver and RL1; on the sub.

Thus CAT commands do not act on the current receiver but must be directed to main or sub (A or B).

piWebCAT's controls act on the the current 'VFO' :   A or B.
piWebCAT directs commands to the correct receiver according to current selection.

I examined the CI-V command set of the Icom's current IC-7610 dual receiver transceiver.
I cannot find receiver specific commands.   All commands appear to work on the current receiver?

piWebCAT has one set of controls, a majority which are applied to the currently selected 'VFO' or receiver.

For the dual receiver FTdx101D, we have to load the settings for the 'new' receiver (VFO ) on switching to it.
(The settings will differ between bands, but because there are two separate receivers, they can differ
 on the same band.)

Loading all the settings for buttons (66 +  24 on the extra buttons popup) and sliders (27)  takes about 4 seconds.

This delay is a consequence of the more complex data path on a web-server based system.
To compensate for this 'speed problem', piWebCAT stores the latest settings for each VFO:

  • On loading from the radio, slider and buttons settings for each VFO applied to the controls and also stored.
  • Once both VFOs have been selected once, swapping between them uses the stored settings and so is rapid.
    (this works using cross-band or the same band)
  • Any button or slider actions update the stored data.
  • If a VFO is moved to a different band, then a reload occurs.

For settings that have separate values per VFO, set vx = 'V' in sliders, buttons, slidersicv, buttonsciv.

For setting that do not change with VFO change, set  vx = 'X'


The DNR setting on the IC-7000 is a single setting for both VFOs.
So if I change VFO (via CI-V or on the radio), the DNR level does not change;

If I activate the above described VFO specific storage for DNR level, then I create a problem:

eg: DNR = 4 on VFO A. I change to VFO B and set DNR = 9.

When I switch back to VFO A, piWebCAT restores its stored value of 4,  but DNR on the radio stays at 9.

We prevent this by setting vx = 'X' in the the slidersciv record. (rather than vx = 'V'.. which will store on change)

Please see section 2.10 Icom --vfo mode   

RF power level - band specific?

On initial load (for each VFO selection), the states of all controls are loaded from the radio.

Only the VFO A/B (receiver A/B) controls are stored for subsequent rapid deployment on VFO switching.
The FTdx101D does not store band-specific power levels but some radios may do this.
piWebCAT therefore reads RF power level from the radios at all VFO and band changes.