; 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 the odr-mod is build with zmq support. ; The zmq remote control may run in parallell with Telnet. ; Protocol: ; The 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 matches the Telnet command set. ; Explicit codes are denoted with "". ; The following commands are supported: ; REQ: ["ping"] ; REP: ["ok"] ; ; REQ: ["get"][module name][parameter] ; REP: [value] _OR_ ["fail"][error description] ; ; REQ: ["set"][module name][parameter][value] ; REP: ["ok"] _OR_ ["fail"][error description] zmqctrl=1 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 ; When recieving data using ZeroMQ, the source is the URI to be used ;transport=zeromq ;source=tcp://localhost:8080 [modulator] ; Gain mode: 0=FIX, 1=MAX, 2=VAR ; ; Mode 0 (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 1 (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 2 (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=2 ; 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. ; The filter taps can be calculated with the python script ; doc/fir-filter/generate-filter.py enabled=0 filtertapsfile=simple_taps.txt [output] ; choose output: possible values: uhd, file output=uhd [fileoutput] ; 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. 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=master_clock_rate=32768000,type=b100 ;txgain=2 ; Try first with small gain values ; Also set rate to 2048000 ; For the B200 ; More information and measurements available on: ; http://opendigitalradio.org/index.php/USRP_B200_Measurements ; ; Settings: device=master_clock_rate=2048000,type=b200 ;device=master_clock_rate=20480000,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. ; possible values : internal, external, MIMO refclk_source=external ; The reference one pulse-per second to use ; possible values : none, external, MIMO pps_source=none ; Behaviour when external clock reference lock lost ; possible values: ignore, crash behaviour_refclk_lock_lost=ignore ; 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 ; Choose between fixed and dynamic offset definition ; fixed defines an offset in this file that cannot be changed while ; the modulator runs. ; ; dynamic reads the offset from a file, and if the value changes, ; the chain does a re-sync. management=dynamic fixedoffset=0.002 ; The file should contain a single floating point value, written ; in ASCII (it's human-readable, not binary) dynamicoffsetfile=modulator_offset