General configuration

ifdr_settings_{get, modify, set, save, restore}

The ifdr_settings_save command enables users to save the current configurations to a backup memory location on the IFDR10.

The ifdr_settings_restore command enables the retrieval of the saved settings from the backup location. Thus, if bad commands are sent into IFDR10 using the _set functions, the complete saved configuration from a previous point can be restored.

When performing the save and restore functions within the dspx utility, dspx also makes an ifdr_settings_save/restore call to ensure the IFDR10 configuration state is the same.

An example output from the ifdr_settings_get call is shown below. Users may want to directly change configurations for the run_triggers_in_idle_state and the rx_channels: function assignments.

Configurable parameters for general configuration
Name Type Description
run_triggers_in_idle_state Boolean Tells IFDR10 whether to provide triggering when the hardware is not processing ADC data into IQ. This may be beneficial to magnetron type radar systems to ensure the transmitter continues radiating during short idle times between sweeps and scans.
rx_channels: function string

Sets the source of the receiver input to each of the 6 receiver inputs to the ADCs.

Unused– this lets the IFDR10 know this channel is not expected to have any input.

CoPol – the channel is selected as the co-polarization receiver when used in a dual-polarization radar. By convention, the horizontally polarized transmission is the primary polarization. This becomes the H-channel receiver input. When RVP10 is used in single-polarization radars, CoPol is also selected to designate this channel as the receive channel.

CxPol – the channel designated to be the orthogonal polarization of the primary polarization. Typically, this would be the vertical polarization receive channel.

CoCxPolBurst – the channel to be the burst pulse sample input from the horizontal and vertical transmit channel for a dual-polarization radar system. The burst sample from a single transmitter is both the Co-pol and Cross-polarization sample in a simultaneous transmit and receive (STAR) radar.

CoPolBurst – this designates a receive channel to be the co-polar burst pulse sample having same polarization as the primary polarization, typically horizontal. This is the use case for a single-polarization radar. In systems having two transmitters with each dedicated to a polarization channel, this is the burst pulse of the primary polarization.

CxPolBurst – this designates a receive channel as the cross-polarization burst pulse sample. This is used within systems having two transmitters which trigger simultaneously or alternating. In the common convention, this is the vertical polarization burst pulse sample.

All other name value pairs within the ifdr_settings output should remain unchanged by the user. These are managed and updated by the dspx utility.

Example:

{ 
  "_schema": "RdaSettings", 
  "_schemaVersion": 1, 
  "_serial": 7, 
  "adc_clock_frequency": 235000000, 
  "angle_poll_enabled": true, 
  "blank_sectors": [ 
    { 
      "annotation": "Set not to radiate above 20 degrees elevation per city(?)", 
      "az_end_deg": 360, 
      "az_start_deg": 0, 
      "el_high_deg": 95, 
      "el_low_deg": 20, 
      "enabled": true, 
      "pedestal": false 
    } 
  ], 
  "default_tx_sequence_id": "mt_0", 
  "delay_reference_frequency": 240000000, 
  "ext_clock_in_enabled": true, 
  "ext_clock_in_frequency": 10000000, 
  "ext_clock_out_enabled": false, 
  "ext_clock_out_frequency": 10000000, 
  "external_trigger_delay": { 
    "tick": 0, 
    "usec": 0 
  }, 
  "external_trigger_on_rising": false, 
  "gpio_configuration": { 
    "gpio_pairs": [ 
      { 
        "output": false, 
        "pair_type_differential": false, 
        "pin_n": { 
          "function": "EMPTY", 
          "inverted": false 
        }, 
        "pin_p": { 
          "function": "EMPTY", 
          "inverted": false 
        } 
      }, 
      { 
        "output": false, 
        "pair_type_differential": false, 
        "pin_n": { 
          "function": "EMPTY", 
          "inverted": false 
        }, 
        "pin_p": { 
          "function": "EMPTY", 
          "inverted": false 
        } 
      }, 
      { 
        "output": false, 
        "pair_type_differential": false, 
        "pin_n": { 
          "function": "EMPTY", 
          "inverted": false 
        }, 
        "pin_p": { 
          "function": "EMPTY", 
          "inverted": false 
        } 
      }, 
      { 
        "output": false, 
        "pair_type_differential": false, 
        "pin_n": { 
          "function": "EMPTY", 
          "inverted": false 
        }, 
        "pin_p": { 
          "function": "EMPTY", 
          "inverted": false 
        } 
      }, 
      { 
        "output": false, 
        "pair_type_differential": false, 
        "pin_n": { 
          "function": "EMPTY", 
          "inverted": false 
        }, 
        "pin_p": { 
          "function": "EMPTY", 
          "inverted": false 
        } 
      }, 
      { 
        "output": false, 
        "pair_type_differential": false, 
        "pin_n": { 
          "function": "EMPTY", 
          "inverted": false 
        }, 
        "pin_p": { 
          "function": "EMPTY", 
          "inverted": false 
        } 
      }, 
      { 
        "output": false, 
        "pair_type_differential": false, 
        "pin_n": { 
          "function": "EMPTY", 
          "inverted": false 
        }, 
        "pin_p": { 
          "function": "EMPTY", 
          "inverted": false 
        } 
      }, 
      { 
        "output": false, 
        "pair_type_differential": false, 
        "pin_n": { 
          "function": "EMPTY", 
          "inverted": false 
        }, 
        "pin_p": { 
          "function": "EMPTY", 
          "inverted": false 
        } 
      } 
    ], 
    "trigger_io": [ 
      { 
        "output": false, 
        "pin": { 
          "function": "EMPTY", 
          "inverted": false 
        } 
      }, 
      { 
        "output": false, 
        "pin": { 
          "function": "EMPTY", 
          "inverted": false 
        } 
      } 
    ] 
  }, 
  "net_data_format": "frame", 
  "polarization": "DualH", 
  "pulses": { 
    "mw_0": { 
      "filter": { 
        "center_freq": 60000000, 
        "design_coeffs": [ 
          2400000 
        ], 
        "design_type": "sigmet", 
        "edge": 0, 
        "length_usec": 0.65, 
        "window_type": "Rectangular" 
      }, 
      "pulse_indexed": { 
        "center_freq": 60000000, 
        "index": 0, 
        "length_usec": 0.65 
      } 
    }, 
    "mw_1": { 
      "filter": { 
        "center_freq": 60000000, 
        "design_coeffs": [ 
          1350000 
        ], 
        "design_type": "sigmet", 
        "edge": 6.938893903907228e-18, 
        "length_usec": 1, 
        "window_type": "Rectangular" 
      }, 
      "pulse_indexed": { 
        "center_freq": 60000000, 
        "index": 1, 
        "length_usec": 1 
      } 
    }, 
    "mw_2": { 
      "filter": { 
        "center_freq": 60000000, 
        "design_coeffs": [ 
          1344000 
        ], 
        "design_type": "sigmet", 
        "edge": 0.1, 
        "length_usec": 1.1, 
        "window_type": "Hamming" 
      }, 
      "pulse_indexed": { 
        "center_freq": 60000000, 
        "index": 2, 
        "length_usec": 1.1 
      } 
    }, 
    "mw_3": { 
      "filter": { 
        "center_freq": 60000000, 
        "design_coeffs": [ 
          405000 
        ], 
        "design_type": "sigmet", 
        "edge": 0.5, 
        "length_usec": 2.4, 
        "window_type": "Hamming" 
      }, 
      "pulse_indexed": { 
        "center_freq": 60000000, 
        "index": 3, 
        "length_usec": 2.4 
      } 
    } 
  }, 
  "rpc_listen": "0.0.0.0:5000", 
  "run_triggers_in_idle_state": false, 
  "rx_channels": [ 
    { 
      "function": "CoPol", 
      "gain": 1, 
      "phase_deg": 0 
    }, 
    { 
      "function": "CxPol", 
      "gain": 1, 
      "phase_deg": 0 
    }, 
    { 
      "function": "Unused" 
    }, 
    { 
      "function": "Unused" 
    }, 
    { 
      "function": "CoCxPolBurst", 
      "gain": 1 
    }, 
    { 
      "function": "Unused", 
      "gain": 1 
    } 
  ], 
  "transmit_mode": "External", 
  "transmit_sequences": { 
    "mt_0": { 
      "bfe_window": { 
        "length_frac": 0.6999999999999997, 
        "start_frac": 0.15000000000000002 
      }, 
      "default_prf": 590.0000610351562, 
      "min_range_bin_m": 50, 
      "pulses": [ 
        "mw_0" 
      ], 
      "steps": [ 
        { 
          "max_prf": 2200, 
          "min_prf": 200, 
          "min_prt": 416.6666667, 
          "triggers": [ 
            { 
              "length_usec": 1, 
              "pull_up": true, 
              "start_usec": -1.4999999999999938 
            }, 
            { 
              "length_usec": 1, 
              "pull_up": true, 
              "start_usec": -1.875 
            } 
          ] 
        } 
      ] 
    }, 
    "mt_1": { 
      "bfe_window": { 
        "length_frac": 0.6999999999999997, 
        "start_frac": 0.15000000000000002 
      }, 
      "default_prf": 1000, 
      "min_range_bin_m": 125, 
      "pulses": [ 
        "mw_1" 
      ], 
      "steps": [ 
        { 
          "max_prf": 1500, 
          "min_prf": 200, 
          "min_prt": 666.6666667, 
          "triggers": [ 
            { 
              "length_usec": 1, 
              "pull_up": true, 
              "start_usec": -1.4949991229999997 
            }, 
            { 
              "length_usec": 1, 
              "pull_up": true, 
              "start_usec": -1.4949991229999997 
            } 
          ] 
        } 
      ] 
    }, 
    "mt_2": { 
      "bfe_window": { 
        "length_frac": 0.7499999999999998, 
        "start_frac": 0.15000000000000002 
      }, 
      "default_prf": 300.0000305175781, 
      "min_range_bin_m": 125, 
      "pulses": [ 
        "mw_2" 
      ], 
      "steps": [ 
        { 
          "max_prf": 1200, 
          "min_prf": 200, 
          "min_prt": 833.3333333, 
          "triggers": [ 
            { 
              "length_usec": 1, 
              "pull_up": true, 
              "start_usec": -1.4999998569999986 
            }, 
            { 
              "length_usec": 0.125, 
              "pull_up": true, 
              "start_usec": -1.4999998569999986 
            } 
          ] 
        } 
      ] 
    }, 
    "mt_3": { 
      "bfe_window": { 
        "length_frac": 0.6999999999999997, 
        "start_frac": 0.15000000000000002 
      }, 
      "default_prf": 590.0286254882812, 
      "min_range_bin_m": 125, 
      "pulses": [ 
        "mw_3" 
      ], 
      "steps": [ 
        { 
          "max_prf": 600, 
          "min_prf": 200, 
          "min_prt": 166.6666667, 
          "triggers": [ 
            { 
              "length_usec": 1, 
              "pull_up": true, 
              "start_usec": -1.4200003149999985 
            }, 
            { 
              "length_usec": 1, 
              "pull_up": true, 
              "start_usec": -1.4200003149999985 
            } 
          ] 
        } 
      ] 
    } 
  }, 
  "trigger_count": 1, 
  "trigger_is_external": false, 
  "tx_channels": [ 
    { 
      "function": "CoCxPol", 
      "max_frequency": 64000000, 
      "min_frequency": 56000000, 
      "output_power_dbm": 1 
    }, 
    { 
      "function": "TestA", 
      "output_power_dbm": -12, 
      "test_delay_usec": 50, 
      "test_signal": "CoCxPol" 
    }, 
    { 
      "function": "TestB", 
      "output_power_dbm": -6, 
      "test_signal": "CW", 
      "test_signal_cw_freq": 60000000 
    } 
  ] 
}