-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathwd_template.conf
204 lines (172 loc) · 20.4 KB
/
wd_template.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
#!/bin/bash
#### The previous line signals to the vim editor that it should use its 'bash' editing mode when editing this file
### To enable the configuration values in this file, modify the line and remove the leading '#'
### Two arrays must be defined in this file: RECEIVER_LIST and WSPR_SCHEDULE, the rest are optional
################### These are diagnostic and debugging variables which should not be needed or used in normal configurations ###################
### To more easily support installation and debugging of WD user sites, a user can enable a very secure remote access channel to their WD server
### To enable such a channel, contact Rob by emailing rob@robinett.us to obtain a REMOTE_ACCESS_CHANNEL and a REMOTE_ACCESS_ID
### Rob will also need the user and password for the account running WD on your WD server
### Please change these values before uncommenting them:
# REMOTE_ACCESS_CHANNEL=99
# REMOTE_ACCESS_ID="AI6VN"
# Delay startup of WD. Default is '0' == no delay
# WD_STARTUP_DELAY_SECS=0
### In CPU constrained installations, less CPU will be used if the 'wsprd' command is instructed to search less deeply for spots.
### That can be done by uncommenting the following line and changing '-o 4' (the value used by WSJT-x) to '-o 3', '-o 2' or even '-o 1'
### However if your site requires '-o 2' or '-o 1', then you are missing a significant number of spots and should consider upgrading your WD server to one with a more powerful CPU
# WSPRD_CMD_FLAGS="-C 500 -o 4 -d"
### Unlike WSJT-x, WD doesn't upload spots with the same WSPR cycle time, band and beacon callsign. By suppressing such 'duplicates' WD removes reports generated by the sidebands of very strong signals (i.e. > +20 dB SNR)
### That suppression can be disabled by uncommenting this line:
# RECORD_DUPLICATE_SPOTS="yes"
### Starting in WD 3.0.3.3, when ARCHIVE_WAV_FILES="yes" is defined in wsprdaemon.conf a currently running WD client will cache all wav files after they are decoded and
### queued for posting to wsprnet.org. When so enabled, each odd two minute WD stores all of the currently cached wav files into a single compressed tar file in
### ~/wsprdaemon/wav-archive.d/.... That tar file's name is derived from the WD client's site name, Maidenhead and date with the filename extension .tar.zst
### For example, at KFS the file 'KFS_CM87tj_220805_0808.tar.zst' contains a group of wav files the most recent of which recorded the WSPR cycle which started at
### Aug 5, 2022 at 08:08 UDT. In almost all cases all of the wav files in such a tar file come from the same WSPR cycle.
### Since these wav files are uncompressed audio they are quite large. A 30 minute wav file which might contain a FST4W-1800 signal will be almost 50 MBytes.
### To avoid overflowing the ~/wsprdaemon/wav-archive.d file system, if that wave file will fill more than 75% of the file system, then some of the oldest wav files are deleted first
# ARCHIVE_WAV_FILES="yes"
### A standard Kiwi using its internal GPS-aided oscillator produces 12001.1 audio samples per second while the wsprd and jt9 decoders expect 12000 samples per second.
### As a result of that difference, the spot frequencies reported by wsprd and jt9 are about .1 Hz low. That error has become meaningful since Kiwi SW V1.557 has corrected a bug which disabled GPS aiding on many Kiwi systems.
### Since Kiwis are now tuning to within .01 Hz on 20M, the .1 Hz error introduced by the different sample rate is 10X the error of the Kiwi's GPS-aided oscillator.
### 12001.1/12000 = 1.00009167 which results in the need for a frequency increase to the spot frequencies of 0.128 Hz at 1400 Hz and 0.147 Hz at 1600 Hz
### So if SPOT_FREQ_ADJ_HZ is not blank, WD modifies the frequency of each spot by that floating point HERTZ value. SPOT_FREQ_ADJ_HZ defaults to 0.1 Hz,
### which is the audio frequency error of a Kiwi using its internal 66.6666 Mhz oscillator
### If the Kiwi is fed by a Bodnar or other GPSDO set to 66.66 MHz, or 66.672 MHz for later software versions of the KiwiSDR software (see the wiki), then this correction is not needed and the following line should be un-commented so the correction will not be applied
# SPOT_FREQ_ADJ_HZ="0.0"
### At WD sites which have a mixture of standard GPS-aided Kiwis which require 0.1 Hz to be added to spot frequencies, and GPSDO-fed Kiwis which
### report accurate spots frequencies and thus don't require that adjustment, one can suppress the application of SPOT_FREQ_ADJ_HZ by adding
### those GPSDO Kiwis to this space-separated list
# GPS_KIWIS="KIWI_1 KIWI_2" ### Change these to the name(s) you have given your Kiwis
### In June 2022, code introduced into Debian/Ubuntu/RaspberryPi OS caused many Linux services and applications to break if there was not at least one active ssh session to the server
### The kiwirecorder.py program which WD uses to record wav files from the Kiwis is among the applications which was broken by this Linux bug.
### To work around this bug, WD can be configured to open an ssh session to itself. This is a very lightweight use of CPU, memory and IP, but it requires that the ssh server be installed and running on
### the WD server. Some distros, most notibly the recent Sept 22,2022 update of the RaspberryPi OS 'buster' and 'bullseye' suffer from this Linux bug and don't by default enable their ssh servers.
### So on WD clients which suffer from the 100% CPU and/or Kiwis show sessions constantly restarting, this line should be uncommented and if needed the OS should be configured to run ssh
# WD_NEEDS_SSH="yes"
################### The following variables are used in normally running installations ###################
# SIGNAL_LEVEL_UPLOAD="no" ### Whether and how to upload extended spots to wsprdaemon.org. WD always attempts to upload spots to wsprnet.org
### SIGNAL_LEVEL_UPLOAD="no" => (Default) Only upload spots directly to wsprnet.org
### SIGNAL_LEVEL_UPLOAD_MODE="noise" => In addition, upload extended spots and noise data to wsprdaemon.org
# If SIGNAL_LEVEL_UPLOAD in NOT "no", then you must modify SIGNAL_LEVEL_UPLOAD_ID from "AI6VN" to your call sign. SIGNAL_LEVEL_UPLOAD_ID cannot include '/
# SIGNAL_LEVEL_UPLOAD_ID="AI6VN" ### The name put in upload log records, the title bar of the graph, and the name used to view spots and noise at that server.
# SIGNAL_LEVEL_UPLOAD_GRAPHS="yes" ### If this variable is defined as "yes" AND SIGNAL_LEVEL_UPLOAD_ID is defined, then FTP graphs of the last 24 hours to http://wsprdaemon.org/graphs/SIGNAL_LEVEL_UPLOAD_ID
# SIGNAL_LEVEL_LOCAL_GRAPHS="yes" ### If this variable is defined as "yes" AND SIGNAL_LEVEL_UPLOAD_ID is defined, then make graphs visible at http://localhost/
#
### Graphs default to y-axis minimum of -175 dB to maximum of -105 dB. X pixels default to 40, Y pixels default to 30. If the graph of your system isn't pleasing, you can change the graph's appearance by
### uncommenting one or more of these variables and changing their values
# NOISE_GRAPHS_Y_MIN=-175
# NOISE_GRAPHS_Y_MAX=-105
# NOISE_GRAPHS_X_PIXEL=40
# NOISE_GRAPHS_Y_PIXEL=30
##################### The following variables were introduced in WD 3.1.0 to configure the use of the KA9Q-radio library and the RX888 Mk II and the other SDRs which it supports ==============
# KA9Q_RUNS_ONLY_REMOTELY="no" ### If "yes" then WD will not install and configure its own copy of KA9Q-radio and thus assumes the user has installed and configured it him/her self.
##################### Starting in WD 3.1.4, WD adds configurable support for the HamSCI GRAPE WWV doppler shift project: https://hamsci.org/grape. To do that:
###### On servers with local or remote RX888 receivers, WD can be configured to record a continuous series of one minute long 16000 sps flac-compressed IQ wav files.
###### Soon after 00:00 UDT, WD creates a single 3.8 MB 24hour-10hz-iq.wav file which is uploaded to WD's WD1 server at grape.wsprdaemon.org.
###### WD software on WD1 then converts the one or more time station band recordings into HamSCI's Digital RF file format and uploads those DRF files to the HamSCI server
###### Each WD site contributing to the GRAPE project needs to obtain a SITE_ID,INSTRUMENT_ID, and TOKEN from its user account at https://pswsnetwork.caps.ua.edu/
###### Then uncomment and edit these variables with that information.
###### This server will also need the KA9Q-radio 'radiod' services to be configured to output WWV-IQ channels
###### WD must be configured to record those channels by defining one or more receivers defined to listen to the WWV-IQ channels
###### In addition to configuring /etc/radio/radiod@rx888-wsprdaemon.conf with active WWV-IQ channels, and wsprdaemon.conf with receivers and a schedule to listen to those channels
###### These two variables need to be defined in order to enable this WD GRAPE service:
#GRAPE_PSWS_ID="<SITE_ID>_<INSTRUMENT_ID>" ### If this and GRAPE_PSWS_TOKEN are both defined, then each day soon after 00:00 UDT WD will upload the previous day's 24_hour_10sps-iq.wav file
### GRAPE_PSWS_ID has the form <SITE_ID>_<INSTRUMENT_ID>, where those values are obtained from a PSWS user account which assigns these values for
### this site+receiver. That PSWS site is at https://pswsnetwork.caps.ua.edu/home
### SITE_ID has the form 'S000nnn' while INSTRUMENT has the form 'NNN'
##### After that variable is defined, the WD user must register this server with the GRAPE server by executing 'wdg p'. This command needs to be run successfully only once after which automatic uploads
##### to the GRAPE server are enabled.
##############################################################
### The RECEIVER_LIST() array defines the physical (KIWI_xxx or KA9Q...) and logical (MERG...) receive devices available on this server
### Each element of RECEIVER_LIST is a string with 5 space-separated fields:
### " ID(no spaces) IP:PORT or RTL:n MyCall MyGrid KiwPassword Optional SIGNAL_LEVEL_ADJUSTMENTS
### [[DEFAULT:ADJUST,]BAND_0:ADJUST[,BAND_N:ADJUST_N]...]
### A comma-separated list of BAND:ADJUST pairs
### BAND is one of 2200..10, while ADJUST is in dBs TO BE ADDED to the raw data
### So If you have a +10 dB LNA, ADJUST '-10' will LOWER the reported level so that your reports reflect the level at the input of the LNA
### DEFAULT defaults to zero and is applied to all bands not specified with a BAND:ADJUST
### In systems where the Turn Island Systems Low Pass and Shelving filter is in use, the noise levels can reported by WD can be adjusted up to reflect the frequency dependent RF loss introduced by that filter
### If the filter is jumpered to disable the shelf filter and just suppress above 30 MHz
declare TURN_ISLAND_LOWPASS_FILTER_VALUES="DEFAULT:0.3,20:0.7,17:0.7:15:0.9,12:1.2,10:2.8"
### If the filter is jumpered to also suppress RF below 10 Mhz by up to 20 dB
declare TURN_ISLAND_LP_AND_SHELF_FILTER_VALUES="2200:19.3,630:19.3,160:18.3,80:16,80eu:16,60:13.5,60eu:13.5,40:11.5,30:8.4,22:7,20:6.1,17:4.6,15:3.9,12:3.5,10:4.7"
declare RECEIVER_LIST=(
"KA9Q_0 wspr-pcm.local AI6VN CM88mc NULL" ### A receiver name which starts with 'KA9Q_...' will decode wav files supplied by the KA9Q-radio multicast RTP streams
### In WD 3.1.0 WD assumes all WSPR audio streams come from a local instance of KA9Q
### which by default outputs all the WSPR audio stream on the multicast DNS address wspr-pcm.local
"KA9Q_1 wspr1-pcm.local AI6VN CM88mc NULL" ### Multicast streams from remote KA9Q receivers can be sources, and not just RX-888s
"KA9Q_0_WSPR_IQ wspr-iq.local AI6VN CM88mc NULL" ### Multicast IQ streams from the local RX888 + KA9Q receiver
"KA9Q_0_WWV wwv-iq.local AI6VN CM88mc NULL" ### Those streams are not enabled by default in the radiod.conf file. So if you configue an IQ rx job,
### you will need to set 'disabled = no' for one or both in radiod@rx888-wsprdaemon.conf and then restart radiod
"KIWI_0 10.11.12.100:8073 AI6VN CM88mc NULL"
"KIWI_1 10.11.12.101:8073 AI6VN CM88mc foobar DEFAULT:-10,80:-12,30:-8,20:2,15:6" ### You can optionally adjust noise levels for the antenna factor
"KIWI_2 10.11.12.102:8073 AI6VN CM88mc foobar"
"MERG_K01_Q01 KIWI_0,KIWI_1,KA9Q_0,KA9Q_1 AI6VN CM88mc foobar" ### For a receiver with a name starting with "MERG", the IP field is a list of two or more 'real' receivers as defined above. For a logical MERG receiver the best SNR will be sent to wsprnet.org, while individual SNRs are available in the wsprdaemon tables.
)
### The WSPR_SCHEDULE[] array (table) defines a schedule of configurations which will be applied by WD's watchdog daemon when it runs every odd two minutes
### The first field of each entry is the start time for the configuration defined in the following fields
### Start time is in the format HH:MM (e.g 13:15) and by default is in the time zone of the host server '01:30'
### Start times can also be specified by 'sunrise' or 'sunset' followed optionally by "+HH:MM" or "-HH:MM" e.g. "sunrise+01:00"
### Schedules are referenced to the time zone of the host server. So if your server is set to 'America/New_York', then the entry times are for EST/EDT
### If the time of the first entry is not 00:00, then the latest entry (which may not necessarily be the last) will be applied at time 00:00
### Following the time are one or more fields of the format 'RECEIVER,BAND[,MODE_1[:MODE_2[:...]]'
### The value of RECEIVER must match one of the receivers defined in RECEIVER_LIST[]
### The value of BAND must match one of:
### WSPR bands: 2200 630 160 80 80eu 60 60eu 40 30 22 20 17 15 12 10 6 4 2 1 0
### Noise only bands: WWVB WWV_2_5 WWV_5 WWV_10 WWV_15 WWV_20 WWV_25 CHU_3 CHU_7 CHU_14
### The optional 'MODE' arguments specify one or more packet decode modes:
### I1 => Record and archive a series of one minute long IQ files from a KA9Q stream. KA9Q/radiod must be configured to output those streams
### The IQ wav file are losslessly compressed by 'flac' and stored in tar files which are by default located in ~/wsprdemon/wav-archive.d/...
### WO => for the 'Noise only' bands, which runs the 'wsprd' decoder in its fastest to run mode. This mode cannot be specified with the other modes
### W2 => legacy WSPR 2 minute mode (the default if no modes are specified)
### F2 => FST4W-120 (2 minute)
### F5 => FST4W-300 (5 minute)
### F15 => FST4W-900 (15 minue)
### F30 => FST4W-1800 (30 minute)
### For example "00:00 KIWI_0,630,W2:F2:F5 AI6VN" specifies that KIWI_0 should tune to 630M and decode WSPR-2,FST4W-120, and FST4W-300 mode packets
### Specifying additional modes will add to the CPU burden of the sysem and even more significantly to the peak usage of the /tmp/wsprdaemon tmpfd (ramdisk) file system
### In 3.0.2.4 and later, WD calculates the peak usages of the /tmp/wsprdaemon file system and warns if that file system may overflow.
### For FST4W modes spectral width estimation is enabled and is available in the wsprdaemon_spots_s table in database tutorial on wd3.wsprdaemon.org as 'metric'
### So the form of each line is "HH:MM RECEIVER,BAND[,MODE_1[:Mode2[...]]... ". Here are some examples:
declare WSPR_SCHEDULE_simple=(
"00:00 KIWI_0,630 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 KIWI_1,10"
)
declare WSPR_SCHEDULE_complex=(
"sunrise-01:00 KIWI_0,630 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 "
"sunrise+01:00 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 KIWI_1,10"
"09:00 KIWI_0,630 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 "
"10:00 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 KIWI_1,10"
"11:00 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 KIWI_1,10"
"18:00 KIWI_0,2200 KIWI_0,630 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 "
"sunset-01:00 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 KIWI_1,10"
"sunset+01:00 KIWI_0,630 KIWI_0,160 KIWI_1,80 KIWI_2,80eu KIWI_2,60 KIWI_2,60eu KIWI_1,40 KIWI_1,30 KIWI_1,20 KIWI_1,17 KIWI_1,15 KIWI_1,12 KIWI_1,10"
)
### KA9Q + and RX-888 Mk II can easily decode all the bands as long as you have enough CPU
declare WSPR_SCHEDULE_ka9q=(
"00:00 KA9Q_0,2200,W2:F2:F5:F15:F30 KA9Q_0,630,W2:F2:F5 KA9Q_0,160,W2:F2:F5 KA9Q_0,80,W2:F2:F5 KA9Q_0,80eu,W2:F2:F5 KA9Q_0,60,W2:F2:F5 KA9Q_0,60eu,W2:F2:F5 KA9Q_0,40,W2:F2:F5 \
KA9Q_0,30,W2:F2:F5 KA9Q_0,22,W2 KA9Q_0,20,W2:F2:F5 KA9Q_0,17,W2:F2:F5 KA9Q_0,15,W2:F2:F5 KA9Q_0,12,W2:F2:F5 KA9Q_0,10,W2:F2:F5"
)
### KA9Q + and RX-888 Mk II can easily decode all the bands as long as you have enough CPU. This schedule adds IQ file recording to decoding of WSPR-2 and FST4W on the ham bands
### I hope that all WD RX888 sites will chose to use this schedule
declare WSPR_SCHEDULE_ka9q_wwv=(
"00:00 KA9Q_0,2200,W2:F2:F5:F15:F30 KA9Q_0,630,W2:F2:F5 KA9Q_0,160,W2:F2:F5 KA9Q_0,80,W2:F2:F5 KA9Q_0,80eu,W2:F2:F5 KA9Q_0,60,W2:F2:F5 KA9Q_0,60eu,W2:F2:F5 KA9Q_0,40,W2:F2:F5
KA9Q_0,30,W2:F2:F5 KA9Q_0,22,W2 KA9Q_0,20,W2:F2:F5 KA9Q_0,17,W2:F2:F5 KA9Q_0,15,W2:F2:F5 KA9Q_0,12,W2:F2:F5 KA9Q_0,10,W2:F2:F5
KA9Q_0_WWV,WWV_2_5,I1 KA9Q_0_WWV,WWV_5,I1 KA9Q_0_WWV,WWV_10,I1 KA9Q_0_WWV,WWV_15,I1 KA9Q_0_WWV,WWV_20,I1 KA9Q_0_WWV,WWV_25,I1
KA9Q_0_WWV,CHU_3,I1 KA9Q_0_WWV,CHU_7,I1 KA9Q_0_WWV,CHU_14,I1"
)
declare WSPR_SCHEDULE_merged=(
"00:00 MERG_K01_Q01,2200,W2:F2:F5 MERG_K01_Q01,630,W2:F2:F5 MERG_K01_Q01,160,W2:F2:F5 MERG_K01_Q01,80,W2:F2:F5 MERG_K01_Q01,80eu,W2:F2:F5 \
MERG_K01_Q01,60,W2:F2:F5 MERG_K01_Q01,60eu,W2:F2:F5 MERG_K01_Q01,40,W2:F2:F5 MERG_K01_Q01,30,W2:F2:F5 MERG_K01_Q01,22,W2:F2:F5 \
MERG_K01_Q01,20,W2:F2:F5 MERG_K01_Q01,17,W2:F2:F5 MERG_K01_Q01,15,W2:F2:F5 MERG_K01_Q01,12,W2:F2:F5 MERG_K01_Q01,10,W2:F2:F5"
)
### This is how to define IQ recording+archiving jobs. We are decoding WSPR-2 and FST4W on 20M, recording and archiving a wav file of 20M WSPR,
### And recording and archiving a wav file of 10 MHz WWV. The series of 1 minute long wav files are losslessly compressed by 'flac' by about 50% and stored in a series of
### tar files found in ~/wsprdaemon/wav-archive.d/. A new tar file is created at each odd minute and it contains all of the wav files from the previous 2 minutes.
### 'tar -tf xxxx.tar' will list the wav files in the tar file.
declare WSPR_SCHEDULE_iq=(
"00:00 KIWI_0,20,W2:F2 KA9Q_0_WSPR_IQ,20,I1 KA9Q_0_WWV_IQ,WWV_10,I1"
)
### This array WSPR_SCHEDULE defines the running configuration. Here we make the simple configuration defined above the active one:
#declare WSPR_SCHEDULE=( "${WSPR_SCHEDULE_merged[@]}" )
declare WSPR_SCHEDULE=( "${WSPR_SCHEDULE_simple[@]}" )