1DEVCAL(1) User Manuals DEVCAL(1)
2
3
4
6 devcal - An FM deviation calibration utility for the SvxLink system
7
9 devcal [-?|--help] [-h|--usage] [-f|--modfqs=frequencies in Hz]
10 [-d|--caldev=deviation in Hz] [-m|--maxdev=deviation in Hz] [-H|--head‐
11 room=Headroom in dB] [-r|--rxcal] [-F|--flat] [-M|--measure]
12 [-w|--wide] [-a|--audiodev=type:dev] <config file> <config section>
13
15 devcal is a utility that is used to calibrate the input and output
16 sound levels (deviation) on an FM SvxLink system. The idea is that it
17 should be possible to calibrate multiple parts of a SvxLink system to
18 the exact same sound levels. This will ensure that a system using mul‐
19 tiple receivers have the same sound level for all receivers and for a
20 repeater it means that the audio being retransmitted is at the same
21 level as the received audio. For an EchoLink system it will guarantee
22 that audio received by the local node will be at a proper level to be
23 retransmitted on remote EchoLink nodes, and the other way around.
24
25 An RTL2832U based DVB-T USB dongle can be used to measure deviation and
26 the devcal utility can also be used to calibrate the receiving fre‐
27 quency correction for such a dongle.
28
29 Deviation calibration can be done both with and without a DVB-T USB
30 dongle. Both methods are described below.
31
33 -?|--help
34 Print a help message and exit.
35
36 -h|--usage
37 Display a brief help message and exit.
38
39 -f|--modfqsfrequencies in Hz
40 Use this command line option to set at what frequencies you want
41 to calibrate the deviation. Separate multiple frequencies using
42 commas. The default frequency is 1000Hz.
43
44 -d|--caldev=deviation in Hz
45 The deviation value at where to perform the calibration. The
46 default value of 2404,8Hz may seem strange but it will be
47 explained below.
48
49 -m|--maxdev=deviation in Hz
50 The maximum deviation used on the channel. This is the deviation
51 value where transmitters start to limit the deviation so as not
52 to cause interference in neighbouring channels. The default
53 value is 5000Hz.
54
55 -H|--headroom=headroom in dB
56 The headroom is the margin to add above the maximum deviation
57 level. Adding a headroom will allow SvxLink to handle levels
58 above the maximum deviation level without causing immediate dis‐
59 torsion. The default is 6dB which mean that SvxLink can handle
60 twice the specified maximum deviation. If both maxdev and head‐
61 room are left at their default this will mean that SvxLink can
62 handle 10kHz deviation without distorsion.
63
64 Changing the headroom cause a lot of different effects so don't
65 do that unless you are prepared to deal with the problems. For
66 example, increasing the headroom will cause the TX level to get
67 lower and the RX level to get higher, which then must be compen‐
68 sated. The announcement levels will get lower so they also need
69 to be compensated. The EchoLink RX/TX levels will get unbalanced
70 and at the moment there is no way to fix that.
71
72 -r|--rxcal
73 Specify this command line option to perform receiver calibra‐
74 tion.
75
76 -t|--txcal
77 Specify this command line option to perform transmitter calibra‐
78 tion.
79
80 -F|--flat
81 Perform calibration on a transmitter or receiver that has a flat
82 frequency response (no pre- or de-emphasis). If the transceiver
83 has flat frequency response but you have enabled pre-/de-empha‐
84 sis in SvxLink, this option should NOT be specified.
85
86 -M|--measure
87 The measurement mode requires the use of a RTL2832U based DVB-T
88 USB dongle and will measure the received deviation.
89
90 -w|--wide
91 Use wide FM (broadcast) instead of narrow band FM
92
93 -a|--audiodev=type:dev
94 Use this command line option to set an audio device to use for
95 playing back the received audio. The default is to use
96 "alsa:default". Disable audio output by setting the audio device
97 to the empty string (i.e. --audiodev="").
98
100 All RTL2832U based DVB-T USB dongles requires calibration so that the
101 specified receiving frequency is correct. Most dongles are way off in
102 frequency. 50-60ppm is not uncommon which translates to more than 20kHz
103 on 434MHz.
104
105 Most dongles are sensitive to temperature change so start by plugging
106 the dongle into the computer and let it warm up for like 15 minutes
107 before doing the calibration.
108
109 Devcal need a receiver configuration file to work so such a file must
110 be created before this utility can be used. Read the Ddr Receiver Sec‐
111 tion and the Wideband Receiver Section in the svxlink.conf(5) manual
112 page for information on how to set it up.
113
114 A first coarse calibration should be done in wideband mode so that the
115 calibration carrier is easy to find. You can use any FM carrier to cal‐
116 ibrate on that you know is correct in frequency. It does not matter if
117 the carrier is modulated or not. Use your own transceiver or a repeater
118 for example. If the frequency calibration is unknown for the transmit‐
119 ter being used it may be wise to test with multiple transmitters. The
120 command line may look like this:
121
122 devcal -Mw /path/to/svxlink.conf RxRtl
123
124 The utility will print, among other things, the carrier frequency
125 error. It may look something like:
126
127 Tone dev=7.30 Full bw dev=39198.90 Carrier freq err=-27713.53(-64ppm)
128
129 We ignore the first two values for now and concentrate on the carrier
130 frequency error. The -64ppm mean that the dongle is receiving the
131 transmitted carrier about 27kHz below the set frequency. To compensate
132 for this, set the FQ_CORR configuration variable in the wideband
133 receiver configuration section to 64. Do another measurement to verify
134 that the received carrier frequency is now closer to the expected one.
135
136 Now we can do the final calibration in narrow band mode. Remove the "w"
137 command line option from the command above and do another measurement.
138 Adjust FQ_CORR until a value around 0ppm is shown.
139
141 In order to calibrate the transmitted deviation we need a way to mea‐
142 sure it. There are multiple methods to do that. If you have a devia‐
143 tion meter you're in luck but most people does not own one of those.
144 Fortuantely there are other ways.
145
146 One way is to use a RTL2832U based DVB-T dongle with the devcal util‐
147 ity. First calibrate the DVB-T dongle according to the instructions in
148 the previous section. The devcal utility can then be used in measure‐
149 ment mode to measure the transmitted FM deviation. The measurement mode
150 is activated using the "-M" command line option. Use the "-f" command
151 line option to specify the audio frequency to calibrate at if the
152 default of 1000Hz need to be changed.
153
154 Another way to measure FM deviation without a deviation meter is to use
155 the Bessel null method. It makes use of the fact that the FM carrier
156 will go down to zero power for certain combinations of modulation fre‐
157 quency and deviation. The deviation divided by the modulation fre‐
158 quency give something called the modulation index. Bessel nulls occur
159 at specific modulation indexes where the first one is at 2.4048. So, if
160 we choose the deviation to 2404.8Hz and the modulation frequency to
161 1000Hz we should get a Bessel null when the transmitter is calibrated.
162 These are the default modulation parameters in devcal.
163
164 So how can we detect when the carrier power goes down to zero? If you
165 own some form of spectrum analyzer the spectrum can be watched to see
166 when the carrier falls down to zero. If you own a CW receiver that cov‐
167 ers the frequency of interest you can use that to listen to the car‐
168 rier. Start devcal in transmitter calibration mode using a command
169 looking like the one below.
170
171 devcal -t /path/to/svxlink.conf Tx1
172
173 In another window, start the alsamixer utility or some other utility to
174 adjust the audio output level. Set the output level to zero. Go back to
175 the devcal window and press 0 to set MASTER_GAIN to zero. Press T to
176 start transmitting. Since we set the sound output level to zero only a
177 carrier will be transmitted. Adjust the CW receiver to center on the
178 carrier. Use the narrowest filter that the receiver support. Now start
179 increasing the audio output level in alsamixer. Listen to the tone to
180 find the first minimum. Use the +/- keys in deval to fine tune the out‐
181 put level to a minimum. You have now found the calibration values for
182 the transmitter. The printed value of MASTER_GAIN should be entered
183 into the configuration section for the transmitter.
184
186 To calibrate the receiver we need a transmitter with a known calibra‐
187 tion. If possible, the transmitter that was calibrated above can be
188 used. If it's not possible, another transmitter can be calibrated in
189 the same way to be used as a calibration transmitter. Start the devcal
190 utility something like this:
191
192 devcal -r /path/to/svxlink.conf Rx1
193
194 Start alsamixer in another window and adjust the input level to get as
195 close as possible to the expected deviation. Use the 0, + and - keys to
196 adjust PREAMP to fine tune the deviation that is shown. When satisfied,
197 enter the PREAMP value into the configuration file in the receiver sec‐
198 tion.
199
201 This is an example of how the calibration procedure may be performed
202 using a DVB-T USB dongle and an arbitrary transmitter, like a handie
203 transceiver.
204
205 The calibration transmitter, a handie transmitter for example, must be
206 able to send some form of modulated tone for this procedure to work.
207 The 1750Hz tone burst that many transmitters are equipped with is a
208 good one to use. It is also possible to use a DTMF tone but the results
209 is not as good as when using a single tone, it seems. If using DTMF,
210 try using the code "A" (1633Hz) or "3" (1477Hz). In this example, the
211 use of 1750Hz tone burst is described.
212
213 Use the DVB-T dongle to measure the deviation of the 1750Hz tone.
214
215 devcal -M -f1750 /path/to/svxlink.conf RxRtl
216
217 Start transmitting with the calibration transmitter and wait for the
218 values to stablilize. Take a note of the value for "tone dev". It may
219 be something like 3200Hz, which is used in the example below. Leave
220 deval running since we will need it later on.
221
222 On the system being calibrated, start the receiver calibration.
223
224 devcal -r -f1750 /path/to/svxlink.conf Rx1
225
226 Transmit using the calibration transmitter and adjust the input level
227 using alsamixer and PREAMP to the correct level for "tone dev".
228
229 Make sure that devcal is started in measurement mode like when the
230 deviation on the calibration transmitter was measured above. Then, on
231 the system being calibrated, start the transmitter calibration.
232
233 devcal -t -f1750 -d3200 /path/to/svxlink.conf RxRtl
234
235 The value of 3200 was the one we measured in the first step. Adjust it
236 to match your own measurements. Adjust the output level using alsamixer
237 and MASTER_GAIN to get the correct reading for "tone dev".
238
239 To check the calibration, use devcal in measurement mode to measure the
240 deviation on the transmitter when retransmitting a received signal. For
241 a repeater that is easily achieved by transmitting on the receive fre‐
242 quency using the calibration transmitter. The deviation measurement
243 should show the correct value being retransmitted. For a simplex link
244 the parrot can be used to achieve the same thing.
245
246 NOTE: The retransmitted deviation may not be exactly the same for some
247 transceivers. This is an issue that remains to find the cause of.
248
250 ASYNC_AUDIO_NOTRIGGER
251 Set this environment variable to 1 if you get an error about
252 ioctl: Broken pipe during remotetrx server startup when using
253 OSS audio.
254
256 Tobias Blomberg (SM0SVX) <sm0svx at users dot sourceforge dot net>
257
259 SvxLink Devel <svxlink-devel at lists dot sourceforge dot net>
260
262 svxlink(1), remotetrx.conf(5), svxlink.conf(5), siglevdetcal(1)
263
264
265
266Linux NOVEMBER 2015 DEVCAL(1)