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
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
|
; Sample configuration file for ODR-DabMod
[remotecontrol]
; enable the telnet remote control on localhost:2121
; Since this is totally unsecure telnet, the software
; will only listen on the local loopback interface.
; To get secure remote access, use SSH port forwarding
telnet=1
telnetport=2121
; Enable zmq remote control.
; The zmq remote control is intended for machine-to-machine
; integration and requires that ODR-DabMod is built with zmq support.
; The zmq remote control may run in parallel with Telnet.
;
; Protocol:
; ODR-DabMod binds a zmq rep socket so clients must connect
; using either req or dealer socket.
; [] denotes message part as zmq multi-part message are used for delimitation.
; All message parts are utf-8 encoded strings and match the Telnet command set.
; Explicit codes are denoted with "".
; The following commands are supported:
; REQ: ["ping"]
; REP: ["ok"]
;
; REQ: ["list"]
; REP: ["ok"][module name][module name]...
;
; REQ: ["show"][module name]
; REP: ["ok"][parameter: value][parameter: value]...
;
; REQ: ["get"][module name][parameter]
; REP: [value] _OR_ ["fail"][error description]
;
; REQ: ["set"][module name][parameter][value]
; REP: ["ok"] _OR_ ["fail"][error description]
zmqctrl=0
zmqctrlendpoint=tcp://127.0.0.1:9400
[log]
; Write to a logfile or to syslog.
; Setting filename to stderr is very useful during tests and development
syslog=0
filelog=1
filename=/dev/stderr
[input]
; A file or fifo input is using transport=file
transport=file
source=/dev/stdin
; When the end of file is reached, it is possible to rewind it
loop=0
; EDI input.
; Listen for EDI data on a given UDP port
;transport=edi
;source=udp://:12002
; Maximum delay in number of ETI frames that the EDI input is willing to wait
; before it timeouts
;edi_max_delay=10
; No support yet for multicast, should work with and without PFT
; When recieving data using ZeroMQ, the source is the URI to be used
;transport=zeromq
;source=tcp://localhost:8080
; The option max_frames_queued defines the maximum number of ETI frames
; that can be in the input queue
;max_frames_queued=100
; ETI-over-TCP example:
;transport=tcp
;source=localhost:9200
[modulator]
; Mode 'fix' uses a fixed factor and is really not recommended. It is more
; useful on an academic perspective for people trying to understand the DAB
; modulation.
;
; Mode 'max' is the normalization of every OFDM symbol. No overshoot, no
; truncating, but varying output power (around 3dB) which might not be the best
; for some power amplifier. The output samples are limited to a magnitude
; of 32768.
;
; Mode 'var' uses the method specified in ETSI 300 798. This method
; normalizes to 4 times the standard deviation for an approximation of the RMS
; power. So around 6/100000 samples will be truncated and will introduce some
; really minor distortion. But this mode also maximizes the output power. This
; is the gain mode recommended for real world operation as it is based on a DAB
; standard; the only difference is that ODR-DabMod uses a better resolution
; with 16 bits instead of 8 bits.
gainmode=var
; Transmission mode
; If not defined, take the mode from ETI
;mode=2
; The digital gain is a value that is multiplied to each sample. It is used
; to tune the chain to make sure that no non-linearities appear up to the
; USRP daughterboard programmable gain amplifier (PGA).
; If there is clipping, the spectral quality of the signal will quickly deteriorate,
; and wide-band noise will be generated.
;
; Be aware that there is a dependency with resampling.
digital_gain=0.8
; Output sample rate. Values other than 2048000 enable
; resampling.
; Warning! digital_gain settings are different if resampling
; is enabled or not !
rate=2048000
; CIC equaliser for USRP1 and USRP2
; Set to 0 to disable CicEqualiser
; when set to 400000000, an additional USRP2 check is enabled.
; See DabModulator.cpp line 186
dac_clk_rate=0
; The USRP1 does not have flexible clocking, you will need
;rate=3200000
; and
;dac_clk_rate=128000000
[firfilter]
; The FIR Filter can be used to create a better spectral quality.
enabled=1
; The filter taps can be calculated with the python script
; doc/fir-filter/generate-filter.py
; If filtertapsfile is not given, the default taps are used.
;filtertapsfile=simple_taps.txt
[output]
; choose output: possible values: uhd, file, zmq
output=uhd
[fileoutput]
; Two output formats are supported: In the default mode,
; the file output writes I/Q float values (i.e. complex float)
; to the file. The I and Q samples can take values up to
; 100000 in absolute magnitude with gainmode FIX.
; With gainmode VAR, they should never exceed 50000.
; With gainmode MAX, thet are limited to 32767.
;format=complexf
;
; When the format is set to s8, the output writes I/Q 8-bit
; signed integers, where the magnitude is multiplied by 128/50000
; effectively mapping the gainmode VAR range of -50000 -- 50000
; to -128 -- 128. For other gainmodes, use the digital_gain setting
; to make sure you don't create clipping.
;format=s8
; The output file:
filename=/dev/stdout
[uhdoutput]
; The UHD output can be directly used with the Ettus USRP devices
;
; You have to set master_clock_rate to a multiple of the
; sample_rate. Ideally, it should be
; master_clock_rate = 4 * sample_rate
; or even a higher factor.
;
; Settings for a USRP B100:
device=
; you can put additional UHD device settings here
master_clock_rate=32768000
type=b100
txgain=2.0
; Try first with small gain values
; Also set rate to 2048000
; For the B200
; More information and measurements available on:
; http://wiki.opendigitalradio.org/index.php/USRP_B200_Measurements
;
; Settings:
;device=
;master_clock_rate=32768000
;type=b200
;txgain=40
; The B200 needs larger gains (up to 89dB) but,
; "Gain settings are application specific, but it is recommended that users
; consider using at least half of the available gain to get reasonable dynamic
; range."
; From the B200 User Manual
; http://files.ettus.com/uhd_docs/manual/html/usrp_b200.html
; For the USRP1
;device=
;type=usrp1
; the usrp1 can have two daughterboards, the subdevice parameter allows you
; to choose which one to use
;subdevice=A:0
; The USRP1 doesn't support master_clock_rate, you need to enable resamping
; You must specify either frequency or channel, but not both.
;frequency=234208000
channel=13C
; The reference clock to use. The gpsdo is the ODR LEA-M8F board, the
; official Ettus GPSDO is selected with gpsdo-ettus
; possible values : internal, external, MIMO, gpsdo, gpsdo-ettus
refclk_source=internal
; The reference one pulse-per second to use
; possible values : none, external, MIMO, gpsdo
pps_source=none
; Behaviour when external clock reference lock lost
; possible values: ignore, crash
behaviour_refclk_lock_lost=ignore
; The maximum accepted holdover time for the gpsdo.
; Valid only if the refclk and pps_source are set to gpsdo.
; This value is also used for the initial lock check, and must
; be at least a minute so that the GPSOD has enough time to lock
; and to start disciplining its oscillator.
; Units: seconds
; Set to 0 to disable holdover check
; default value: 0
max_gps_holdover_time=600
; section defining ZeroMQ output properties
[zmqoutput]
; on which port to listen for connections
; please see the Transports section in man zmq
; for more informat io the syntax
listen=tcp://*:54001
; what ZMQ socket type to use. Valid values: PUB, REP
; Please see man zmq_socket for documentation
socket_type=pub
; Used for SFN with the UHD output
[delaymanagement]
; Enable handling of timestamps for SFN
synchronous=0
; Whether to mute the TX when incoming frames have no timestamp
mutenotimestamps=0
; This offset is added to the TIST, and the sum defines the
; TX time of the transmission frame. It can by changed at runtime
; through the remote control.
offset=0.002
; The previous static vs dynamic offset distinction, and reading the
; modulatoroffset from a file has been removed.
[tii]
; (experimental)
; If these options are set, TII transmission is enabled.
; DAB modes I and II are supported, and must be set explicitly in
; this file. Reading DAB mode from ETI is not supported.
enable=0
comb=16
pattern=3
|