Transverter and VFO
If you are interested in keeping a simple method of indexing the VFO
assignments, the ARRL bandplan can be used as suggested in the UHFA.CFG example.
CTRL ALT are the key modifiers used to select VFOs. CTRL ALT A
selects the 50 MHz VFO, which is VFO 0 (zero) and is associated with
Transverter 0 (zero). This works because the keyboard variables are
assigned to work this way.
The DSP-10 is a TWO meter (144 MHz) transceiver, and the default
configuration file assigns transverter 1 as "no external
transverter." This file also assigns VFOs 16. 17,18,19 and
20 to 144 MHz as the default. These VFOs correspond to the keyboard
commands CTRL-ALT-B, CTRL-ALT-1, CTRL-ALT-2, CTRL-ALT-3
,CTRL-ALT-4 and CTRL-ALT-5. Six meters is assigned to VFO 0 (zero) ,
and to a fictitious Transverter 0 (zero) as the default, VFO 9 and
Transverter 9 is assigned to 10 GHz transverter and VFO 15 and
Transverter 15 are assigned as the Audio Processor. This last VFO and
Transverter are a special case and should not be moved or modified.
The four default transverters (0, 1, 9 & 15) were selected as
examples that cover many of the standard transverter situations of up
converter (#0), no converter (#1), down converter (#9), as used in
receive. These transverters can be copied to other numbers and
If you have a few different transverters you want use, then all that is
needed is to assign a transverter and VFO for each of them.
If we want to set up transverter definitions for 1296, 2304. 10368 and
24192 then from the table below,we will choose CTRL-ALT-E, CTRL-ALT-F,
CTRL-ALT-I and CTRL-ALT-J, corresponding to 5,6,9 and 10. This
will make the ARRL band plan VFO keys correspond to VFOs with the same
numbers as the transverters. Note that this is not a requirement.
Transverters can take any number from 0 to 20, and there can be
multiple transverters for a single band. Likewise there can be any
number of VFOs assigned to a single transverter.
|CTRL ALT A
|CTRL ALT B
|CTRL ALT C
|CTRL ALT D
|CTRL ALT 9
|CTRL ALT E
|CTRL ALT F
|CTRL ALT G
|CTRL ALT H
|CTRL ALT I
|CTRL ALT J
These definitions assume a 144 MHz IF frequency and common
*** Transverter definitions (memch_tvtr) ***
tvtr 0 |50 MHz| 0 -1 -94000000.0 1 | | 20.000 0 0 0.0
tvtr 1 |144 MHz| 0 -1 0.0 1 | | 0.000 0 0 0.0 0
tvtr 5 |1.2 GHz| 0 -1 11520 00000.0 1 | |
30.000 0 0 0.0 0
tvtr 6 |2.3 GHz| 0 -1 2160000000.0 1 | |
30.000 0 0 0.0 0
tvtr 9 |10 GHz I| 0 -1 10224000000.0 1 | |
28.000 0 0 0.0 0
tvtr 10 |24 GHz J| 0 -1 24048000000.0 1 |
| 18.000 0 0 0.0 0
tvtr 15 |Audio In| 0 1 0.0 1 | | 0.000 0 0 0.0 0
The transverter gains have been assumed to be 20.0, 0.0, 30.0 dB,
*** VFO definitions (memch_vfo) ***
vfo 0 0 0 144125000.0 1 0 0.0 0 0 0 0 (50.125
vfo 1 1 0 144200000.0 0 0 0.0 0 0 0 0 (144.2
vfo 5 5 0 144100000.0 1 0 0.0 0 0 0 0
(1296.1 MHz USB)
vfo 6 6 0 144100000.0 7 0 0.0 0 0 0 0
(2304.1 MHz LTI)
vfo 9 9 0 144100000.0 5 0 0.0 0 0 0 0
(10368.1 MHz PUA43
vfo 10 10 0 144100000.0 1 0 0.0 0 0 0 0 (24192.1 MHz CW)
vfo 15 15 0 0.0 1 0 0.0 0 0 0
(Audio Processor USB)
vfo 16 1 0 144100000.0 0 0 0.0 0 0 0 0 (144.1 MHz CW)
vfo 17 1 0 144200000.0 1 0 0.0 0 0 0 0 (144.2 MHz USB)
vfo 18 1 0 144250000.0 1 0 0.0 0 0 0 0 (144,250 MHz
vfo 19 1 0 146580000.0 3 0 0.0 0 0 0 0 (146.58
vfo 20 1 -600 146940000.0 3 0 0.0 0 0 0 0 (146.94 FM -600 offset)
The format for the first six entries in a VFO line is
vfo number tvtr FM_offset
number is the VFO number
tvtr is the transverter number
FM_offset is the transmit frequency offset for FM
last_freq is the 2-meter frequency in Hz
last_mode is 0=CW, 1=USB, 2=LSB, 3=FM, 4=LHL7,
5=PUA43, 6=EME2, 7=PUA43 and 8=LTI.
the last_mode are for FM only
Some background on tvtr, VFO and memories
Computers are not any smarter than the information
that is available
in their program. In order to display the frequency and signal
strength, we use the tvtr definition to describe what is
connected to the DSP-10 antenna port. This information
includes the frequency of the transverter conversion oscillator,
whether it is high or low side injection and any conversion gain or
loss between the antenna and the DSP-10 and a few other details.
VFO's specify (select) the frequency, mode, a transverter, and for FM,
a transmit offset. Each VFO is based on a TRANSVERTER entry in
Memories are descriptive files we use to store information about a VFO
that let us modify or replace the behavior of a VFO. The VFO then
assumes the identity of the descriptive file, and we call it a memory
Mike Gain Equalizer
For SSB, the output power "Xmit Pwr" should be 95 or
lower, to be fool
proof. This allows the PEP level to be about the same as CW, and
a smidgeon less than FM. For any mode except USB and LSB, the power can
be set all the way to 100. (In fact it can be for SSB as long as you
NEVER clip---more on that later ) Warning 17 results from setting
the power above 95 in SSB.
The software "Mike Gain" is set by transmitting in SSB and watching the
Clipping display that replaces the S-Meter in SSB transmit. A few
dB of clipping are OK, and even 6 to 10 on occasion. The maximum
clipping possible is 12 dB and if you exceed that value, all 5 red bars
come on. This is not allowable and indicates the "Mike Gain" is too
If the Mike Gain is below 77, the hardware audio gain is set too high,
and clipping in the audio preamp or A/D converter. This needs
lowering of the preamp gain. I'm sorry if it is underneath the DSP box!
If the Mike Gain is over 94 or so, the DSP is adding some noise in an
attempt to get enough mike signal. This is OK, but if the hardware mike
gain can be increased, it would be best.
The ideal Mike Gain setting is around 86, and if it is in the range of
the hardware mike gain setting, this would be a good level to
use. Set the hardware gain for a few dB of clipping.
If there is no clipping, the clipping display is blank. The bars
are 1 dB each, and 12 dB is two red bars. If no clipping ever occurs,
you are not getting full PEP. This is OK, but lowering the Xmit Pwr is
a preferred way to lower the output.
Don't forget the microphone equalizer, SCRL-F5. My Radio Shack
1172D mike clearly needs dome treble boost. For SSB, it seems
like settings of 3, -3, 0, 1, 3, 5 dB (top to bottom) are
the right idea. It is hard to listen to yourself and tell much, so this
All this applies to FM as well. The same Mike Gain setting will produce
the same amount of clipping. The deviation for a clipped level is set
at +/- 5kHz now. I plan to add an adjustment in the software for
this. The equalizer settings may be slightly different for FM. I
liked 3, -3, 0, 2, 5, 7 dB.
For info, the block diagram for SSB, in order of processing, is:
Mike Gain control
Equalizer and 300 to 3000 Hz filter (all one)
Xmit Pwr gain control
Low-Pass filter 3 kHz
SSB generator at 3 kHz
The last-ditch clipper should never clip. It prevents 16 bit
wrap-around that causes severe distortion, but it does flat-top the SSB
signal and will cause some splatter within the pass-band of the
xtal filter . If the Xmit Pwr is 95 or less, this clipping will not
happen. To watch for it, bring up the bar graphs with SCRL-F3. The D/A
bar graph, in transmit, has an overload indicator. This is to the
right of the 15th bar and is bigger with white outline. Raise the
XmitPower above 95 and you can see it when clipping (you may also see
it when first going into xmit---this is OK). This overload indicator
should ALWAYS stay off!
By the way all the bar graphs, including the S-Meter are an accurate 6
dB per bar, and catch the peak signal to occur since the last update of
the graph. The update rate is about as fast as the eye can follow, I
don't remember exactly what.
all (172 of them) the key commands are in the UHFA.CFG file.
Here are the user hints:
1- As usual, run the UHFA.EXE program once to get the keyboard entries
added to the CFG file. They are all at the bottom.
2- All variable names start with k_ and most of them can be figured out
from the name. For instance, k_freq_m100 changes the frequency by minus
100 Hz, and k_freq_p1mhz changes it by plus 1 MHz.
3- To change any key, find the hex code for the key combination (see 6
below) and edit this into UHFA.CFG. These are entered as hexadecimal
numbers, including the leading "0X" as this can be easily changed
back to bits to be sure of the combination (for debugging). To
enter a changed code, you can just edit in the new value, leaving the
0X to tell the program that the value is in hex.
4- As usual, the key definition will always come from UHFA.CFG, unless
you run without this file. In that case, all the defaults will be
restored. If you ever would want to restore all defaults except
the keyboard, just edit the a CFG file to leave only the k_
lines. The configuration is default for all values, except
those read from the CFG file.
5- The variables kbd_alt1, 2 and 3 are not
needed any more. They are left in the CFG file for now, so that you can
see what the values were, but they do nothing. If any of these
were 1, you can duplicate their effect as follows:
a- kbd_alt1 Reverse the values for keys
k_freq_m10 and k_freq_m100
and for k_freq_p10 and k_freq_p100
b- kbd_alt2 Change k_window_t_c to 0X111157
Change k_window_t_l to 0X101177
Changek_disp_t_c to 0X111559
Change k_disp_t_l to 0X101579
c- kbd_alt3 Change k_rf_gain_m to 0X104100
Change k_rf_gain_p to 0X104200
6- To obtain any key code for the CFG file, change startup_detail
in the .CFG file to 1, start the UHFA.EXE program and just before the
screen appears, you have a chance to enter any key, except "Enter" and
read the code value from the screen. This goes on until you hit
"Enter" and then the regular UHFA program runs.
The data seen in the DSP-10 includes both signal and
is about the same as S/N if S is much bigger than N. But not s for
small S/N. Attached is a curve to convert between the two.
The arithmetic: Starting with x=S/N in dB, we change to power by
z=10^(x/10) where the hat ^ is exponentiation, i.e., 10 to the x/10
power. z is s/n where s and n are powers (not dB's). Next convert
the s/n to (s+n)/n by adding 1.0, and then converting back to dB by
y=10*log10(1+z), where log10( ) is the base 10 logarithm. The plot is y
For instance, if x=-6 dB signal to noise ratio,
z=10^(-0.6)=0.2551. Then (s+n)/n=1+z=1.2551, which can be expressed in
dB as 10*log10(1.2551)=0.973 dB.
There is a Noise Blanker, based on the average
height of the spectral
line. Bad data prints an Asterisk, as above. Watch the entries Pave=xx
and P=zz in the dialog box. These are the long term average of the
spectral line, and the last average of this line. This is adjustable
configuration file. The 'code_nb_ratio' value defaults to 1.1, meaning
that data is thrown out if P is greater than 1.1 times Pave. Values
turn the feature off. A value of 1.0 throws out half the data.
Random frequencies are used in transmit. This is set by
eme_freq_range in the .cfg file (default 200.0 Hz total spread )
All T/R delays are settable in the .cfg file. Note that dly_emet2r is
in addition to the 2 second pulse and dly_ant2amp and
All delays are in milliseconds. Don't make the delays rediculous,
won't get all your chores done in 5 seconds and will only get one
Doppler offsets include the transceiver LO freq, both at the bottom
line and for setting the EME2 transmit freq. The receive freq is
900 Hz above the displayed freq (think of it as USB). It goes + or -
the randomizer. The transmit freq can be + or - from this based on
Doppler. It all works out so that the EME return will (should?)
always come out at
the red line at 900 Hz.
The other 2 small red lines are for the limits of the data listed in
the dialog box. The box numbers are the long term average
S+N/N. For 900 Hz, this is also translated into an estimated
signal level. Thisis found
from the N in the second adjacent spectral bins (both of them).
noise temperature of eme_te in the .cfg file, the receiver noise is
subtracted off (that is the N in the second adjacent) and we are left
with an estimate
of S. This gives us an S meter that runs at -180 dBm or so
In EME2 there is auto ID at 25wpm every 9 min. It runs from the
id in the .cfg file. Enter something, or you get "DE ?"
There is now the ability to disable modes from the .CFG file.
Look in .cfg for instructions.
It also adds some little features, like there is a LHL7 info box (Alt
A) for transmit, as well as receive. This is useful for figuring out
character is being sent!
Also, in my tests with 2 dsp-10's I was having good success in using a
2 second symbol period for LHL7. You might play with it. Along those
lines, my laptop does not make ticks loud enough to hear in clock
setting (Alt K)
but I have no trouble getting the time synced by listening to WWV and
watching the seconds change in the clock set display (not the lower
left corner).When the number seems to change at the same time as WWV
ticks, it is
LHL7 MODE: (not supported after UHFA.CFG V 3.80)
A quick summary of LHL7, particularly for the decoder:
There are two dialog boxes. After you get to LHL7 mode (Alt M) use Alt
A to bring up the informational box on the right. This can be left
open--maybe it should just be an automatic part of LHL7. It shows
parameters and the measured S+N/N.
"time_tag" is the seconds after the top of the minute that was attached
to the last measurement. It is not the current time, as it takes about
3 seconds to process the data, and if code_nx2 is greater than 1 the
measurement length must be added in.
"bigi" is the strongest of the 7 tones for the last measurement period.
They are numbered 0 for 600 Hz, 1 for750 Hz, ...
"mcbyte" is the sequence of tones that have been decoded. This is
compared with the Morse code table. Any time it is found not possible
to decode a character in the future, the code is reset. A reset
code is a
single 1, as this is a prefix character to know where the number
instance, all characters must start with a dot or a dash, and we will
a x3 at the beginning. This process continues as the mcbyte is built
up. If you watch it, the incorrect byte will show up and it will
and be followed by either "1", "10", or "11". Due to the changing of
over the months, and my desire to not redo the character table, the
mcbyte numbers are not quite the same as the bigi values. For mcbyte,
0=dot, 1=dash, 2=x2, 3=x3, 4=x4, 5=x5 and the EOC does not show up in
"Bins per tone" refers to the 9.375 Hz spaced filter bins. 1 means that
only the bin at the center frequency will be examined. 3 means that the
center and one on either side of it will be examined. This
to 9. If these are averaged, it is fully equivalent to having a wider
There are guard bins on either side of the tone bins, since the
causes widening of the signal. Outside of the guard bins are four noise
measurement bins that are averaged together to estimate the noise
level. Thus the frequency bins for "3 bins per tone", for the 600 Hz
tone would be:
Bin 60 562.5 Hz Noise
Bin 61 571.9 Hz Noise
Bin 62 581.2 Hz Guard
Bin 63 590.6 Hz Tone signal
Bin 64 600.0 Hz Tone Signal
Bin 65 609.4 Hz Tone Signal
Bin 66 618.7 Hz Guard
Bin 67 628.1 Hz Noise
Bin 68 637.5 Hz Noise
Bins 69 to 75 are not used and the 750 Hz related bins start at 76.
Higer numbers of "Bins per tone" use more of the in-between bins until
they are almost all used.
"Peak" and "Ave" refer to the way that the the Tone signal bins are
treated. Either the average of all of them is compared with the noise,
power is. For wide band signals, like rain scatter, average would be
best. For drifting signals, peak might be--I don't know.
To change any of the parameters: When in LHL-7 mode, hit Alt B.
This brings up a new item--a modal dialog box. There are two classes of
button families and the data entry line. You select the active line
with the up/down arrows. They go round-and-round in either direction.
line is in white (as are the explanation lines). When you are on the
a radio button that you want to change, hit the SPACE bar. It will
change within a particular family.
The data entry is very simplistic. When you are on the data entry line
(ie, when it is white), you can either BACKSPACE or enter data.
An ENTER will close the box, no matter where you are in it. The values
last selected will be implemented. These will then show up elsewhere on
the screen, like in the information box.
I think I forgot to implement cancel (ESC)--next time.
For Receive: First set your clock (Alt K) so that the seconds start at
the top of the minute. Bring up the info box with Alt A. Set parameters
modal dialog box, Alt B. Sit back and wait. Use the waterfall as a
tuning indicator, if there is enough signal. The results will be typed
bottom 1 or 2 lines of the text area. You can type transmit data at any
time, and it will be on the top line.
Multiple 600 Hz EOC are printed as a hyphen. It is also easy for noise
to produce this one (as is the case for E and T--Words like ANT and EAT
and TEA have been seen from noise).
Timing: code_nx2 can be 1, 2, 5, 10 or 30, which when
symbol periods of 2, 4, 10, 20 or 60 seconds. This is set in the Alt B
box. Values of spec_ave are constrained to be those that fit in the
symbol period, and are multiples of 18. For instance, if code_nx2 is 5,
time per symbol is 10 seconds. The only allowable spec_ave's are 18 and
You can see what the allowable ones are by changing spec_ave up and
(Alt F4 and Alt F3) as you change the value of code_nx2. (You must exit
dialog box in order to change spec_ave--that is because the dialog box
modal. Modal boxes are a lot easier to program than the non-modal ones,
the info boxes. That is why there is no interaction with the info
Speed: The LHL7 is the first mode where processor speed might be a
problem. This will be solved if we go to a hardware trigger every
second to the
DSP. The problem is that a lot of time is spent asking the question,
time is it?" in order to start the DSP close to the even 2 second mark.
is a problem during screen updates, and if the update is not finished
about a second, it is possible to loose a trigger. It will pick
up on the
next 2 sec since there is no data to update the screen with, but half
data is lost. Not good.
1/2 Line: Your choice: 29 characters big, or 118 characters small. Both
of them will scroll when the lines are full.
Table of Contents