Config Parameters

Config field

Example entry

Description

site_id

sas

3-letter standard ID of the radar

gps_octoclock_addr

addr=192.168.10.131

IP address of the GPS Octoclock

device_options

recv_frame_size=4000

UHD USRP device arguments.

main_antenna_count

16

Number of physical main array antennas, regardless of N200 status

interferometer_antenna_count

4

Number of physical interferometer antennas, regardless of N200 status

n200s

{
addr : “192.168.10.100”
rx : true
tx : true
rx_int : false
main_antenna : “0”
interferometer_antenna : “”
}, {
addr : “192.168.10.101”
rx : true
tx : false
rx_int : true
main_antenna : “1”
interferometer_antenna : “0”
}, …

List of all N200s, both active and not. Order of N200s is specified by main_antenna, so N200s can be listed out of order and more than the number of antennas can be stored here (extra ones must have all flags set to false.) rx, tx, and rx_int set the receive, transmit, and interferometer receive channels, respectively. The antenna numbers refer to the physical antennas that are connected to the N200s. The number of main and interferometer antennas that are activated here must agree with the count variables specified above. The ordering of the N200 parameters doesn’t matter.

addr (n200s)

192.168.10.100

IP address of the specified N200

rx (n200s)

true

Receive channel flag for a given N200. Set to true to activate receive channel, and false to deactivate. If N200 is disconnected, this must be set to false.

tx (n200s)

true

Transmit channel flag for a given N200. Set to true to activate transmit channel, and false to deactivate. If N200 is disconnected, this must be set to false.

rx_int (n200s)

false

Interferometer receive flag for a given N200. Set to true to activate the receive interferometer channel. A physical interferometer must be specified in int_antenna if this is set to true. If N200 is disconnected, this must be set to false.

main_antenna (n200s)

15

Physical antenna connected to this N200. N200s are sorted according to this value.

int_antenna (n200s)

3

Physical interferometer antenna connected to this N200. All antennas not connected must be set to empty string (“”).

main_antenna_spacing

15.24

Distance between antennas (m).

interferometer_antenna_spacing

15.24

Distance between antennas (m).

min_freq

8.00E+06

Minimum frequency we can run (Hz).

max_freq

20.00E+06

Maximum frequency we can run (Hz).

minimum_pulse_length

100

Minimum pulse length (us) dependent upon AGC feedback sample and hold.

minimum_mpinc_length

1

Minimum length of multi-pulse increment (us).

minimum_pulse_separation

125

The minimum separation (us) before experiment treats it as a single pulse (transmitting zeroes and not receiving between the pulses. 125 us is approx two TX/RX times.

tx_subdev

A:A

UHD daughterboard string which defines how to configure ports. Refer to UHD subdev docs.

max_tx_sample_rate

5.00E+06

Maximum wideband TX rate each device can run in the system.

main_rx_subdev

A:A A:B

UHD daughterboard string which defines how to configure ports. Refer to UHD subdev docs.

interferometer_rx_subdev

A:A A:B

UHD daughterboard string which defines how to configure ports. Refer to UHD subdev docs.

max_rx_sample_rate

5.00E+06

Maximum wideband RX rate each device can run in the system.

pps

external

The PPS source for the system (internal, external, none).

ref

external

The 10 MHz reference source (internal, external).

overthewire

sc16

Data type for samples the USRP operates with. Refer to UHD docs for data types.

cpu

fc32

Data type of samples that UHD uses on host CPU. Refer to UHD docs for data types.

gpio_bank_high

RXA

The daughterboard pin bank to use for active-high TR and I/O signals.

gpio_bank_low

TXA

The daughterboard pin bank to use for active-low TR and I/O signals.

atr_rx

0x0006

The pin mask for the RX only signal.

atr_tx

0x0018

The pin mask for the TX only signal.

atr_xx

0x0060

The pin mask for the full duplex signal (TR).

atr_0x

0x0180

The pin mask for the idle signal.

tst_md

0x0600

The pin mask for the test mode signal

lo_pwr

0x1800

The pin mask for the low power signal

agc_st

0x6000

The pin mask for the AGC signal.

max_usrp_dac_amplitude

0.99

The amplitude of highest allowed USRP TX sample (V).

pulse_ramp_time

1.00E-05

The linear ramp time for the pulse (s)

tr_window_time

6.00E-05

How much windowing on either side of pulse is needed for TR signal (s).

agc_signal_read_delay

0

Hardware dependent delay after seq is finished for reading of AGC and low power signals (s)

usrp_master_clock_rate

1.00E+08

Clock rate of the USRP master clock (Sps).

max_output_sample_rate

1.00E+05

Maximum rate allowed after downsampling (Sps)

max_number_of_filter_taps _per_stage

2048

The maximum total number of filter taps for all frequencies combined. This is a GPU limitation.

router_address

tcp://127.0.0.1:6969

The protocol/IP/port used for the ZMQ router in Brian.

radctrl_to_exphan_identity

RADCTRL_EXPHAN_IDEN

ZMQ named socket identity.

radctrl_to_dsp_identity

RADCTRL_DSP_IDEN

ZMQ named socket identity.

radctrl_to_driver_identity

RADCTRL_DRIVER_IDEN

ZMQ named socket identity.

radctrl_to_brian_identity

RADCTRL_BRIAN_IDEN

ZMQ named socket identity.

radctrl_to_dw_identity

RADCTRL_DW_IDEN

ZMQ named socket identity.

driver_to_radctrl_identity

DRIVER_RADCTRL_IDEN

ZMQ named socket identity.

driver_to_dsp_identity

DRIVER_DSP_IDEN

ZMQ named socket identity.

driver_to_brian_identity

DRIVER_BRIAN_IDEN

ZMQ named socket identity.

exphan_to_radctrl_identity

EXPHAN_RADCTRL_IDEN

ZMQ named socket identity.

exphan_to_dsp_identity

EXPHAN_DSP_IDEN

ZMQ named socket identity.

dsp_to_radctrl_identity

DSP_RADCTRL_IDEN

ZMQ named socket identity.

dsp_to_driver_identity

DSP_DRIVER_IDEN

ZMQ named socket identity.

dsp_to_exphan_identity

DSP_EXPHAN_IDEN

ZMQ named socket identity.

dsp_to_dw_identity

DSP_DW_IDEN

ZMQ named socket identity.

dspbegin_to_brian_identity

DSPBEGIN_BRIAN_IDEN

ZMQ named socket identity.

dspend_to_brian_identity

DSPEND_BRIAN_IDEN

ZMQ named socket identity.

dw_to_dsp_identity

DW_DSP_IDEN

ZMQ named socket identity.

dw_to_radctrl_identity

DW_RADCTRL_IDEN

ZMQ named socket identity.

brian_to_radctrl_identity

BRIAN_RADCTRL_IDEN

ZMQ named socket identity.

brian_to_driver_identity

BRIAN_DRIVER_IDEN

ZMQ named socket identity.

brian_to_dspbegin_identity

BRIAN_DSPBEGIN_IDEN

ZMQ named socket identity.

brian_to_dspend_identity

BRIAN_DSPEND_IDEN

ZMQ named socket identity.

ringbuffer_name

data_ringbuffer

Shared memory name for ringbuffer.

ringbuffer_size_bytes

200.00E+06

Size in bytes to allocate for each ringbuffer.

data_directory

/data/borealis_data

Location of output data files.

log_directory

/data/borealis_logs

Location of output log files

Example configurations

There are several instances when you’ll need to modify this file for correct operation.

  1. One of your main array antennas is not working properly (broken coax, blown lightning arrestor, etc)

    The rx and tx flags for the associated N200 should be set to false. This will disable the receive and transmit channels, and stop the N200s from collecting samples from that antenna. Note: If the N200 is also connected to an interferometer antenna, the interferometer antenna will also have to be disconnected by setting rx_int to false, or moving it to a different N200.

  2. One of your interferometer array antennas is not working properly (broken coax, blown lightning arrestor, etc)

    The rx_int flag for the associated N200 should be set to false. This will disable the interferometer receive channel for that antenna, and stop the N200s from collecting samples from that antenna.

  3. One of your transmitter’s transmit paths is not working, but the receive path is still working properly

    The tx flag for the associated N200 should be set to false. This will disable the transmission channel on the bad transmit path. Note: This configuration does not work with the current iteration of Borealis

  4. One of your transmitter’s receive paths is not working, but the transmit path is still working properly

    The rx flag for the associated N200 should be set to false. This will disable the receive channel on the bad receive path. Note: This configuration does not work with the current iteration of Borealis

  5. One of your transmitters is not working at all

    The rx and tx flags for the N200 connected to the non-working transmitter should both be set to false. This will disable the transmit and receive channels for that transmitter.

  6. One of your N200s is not working properly and you’ve inserted the spare N200

    Add an entry for the replacement N200, and copy rx, tx, rx_int, main_antenna, and interferometer_antenna from the broken N200. Set all the flags for the broken N200 to false, and set main_antenna and interferometer_antenna to empty strings to deactivate the N200. The entry for the broken N200 can be left in the config file for future use, as the code will ignore the broken N200 and replace it with the new one.

  7. One of your N200s is not working properly but you’re located remotely and cannot insert the spare N200

    This particular N200 will have to be deactivated. To do this, set all flags to false (tx, rx, and rx_int).

  8. You have a non-standard array

    One example of a non-standard array would be a different number of interferometer antennas than four. To implement this, modify the individual N200 entries to specify which N200s are connected to interferometer antennas. Additionally, set the main and interferometer antenna count parameters to the number of physical antennas in the array.

  9. You want to change the location of ATR signals on the daughterboards

    This can be done by changing the values of the following config parameters: atr_rx, atr_tx, atr_xx, atr_0x, tst_md, lo_pwr, agc_st. The value atr_rx = 0x0006 means that the ATR_RX signal will appear on the pins 1 and 2 (referenced from 0). I.e. every bit that is a ‘1’ in this hex value indicates which pin the signal will appear on.

  10. You want to change the polarity of the ATR signals on the daughterboards

    This can be done by swapping the values of the two config parameters: gpio_bank_high and gpio_bank_low. The default is for active-high signals to be on the LFRX daughterboard. This is done by setting gpio_bank_high to RXA. The same signals, but active-low, are by default located on the LFTX daughterboard.

  11. You would like to make a test-system with only one N200 and don’t have any Octoclocks

    This can be done by changing the following parameters:

    1. n200s - Set tx, rx, and rx_int flags to true for only one N200, all other N200s should have their flags set to false.

    2. pps and ref - These should both be set to internal, as you don’t have an Octoclock to provide a reference PPS or 10MHz reference signal.