AirStack Core Device Arguments¶
AirStack Core leverages the custom SoapyAIRT drivers for SoapySDR. Built-in to SoapySDR is an array of various, default, device parameters that map to control interfaces of the AIR-T. For a list of the built-in SoapySDR device arguments, see the documentation here.
In addition to the baseline device arg, AirStack Core provides additional functionality as described here.
AirStack Core Device Arguments¶
General Argument Definitions¶
Below are the definitions for the available device arguments and a table outlining which arguments are supported for each AIR-T model. For details on the settings for each device argument, please see the Product Guide for that model.
Device Argument | Definition |
---|---|
rx_path | Determines which receiver signal path is enabled. Settings are device specific. |
tx_amp_bypass | Bypasses the transmit power amplifier. Settings are device specific. |
time_src | Selects the time source. Settings are device specific. |
clk_src | Selects the clock source. Settings are device specific. |
rx_lo_src | Tells the device which receive LO source to use. Settings are device specific. |
tx_lo_src | Tells the device which transmit LO source to use. Settings are device specific. |
master_clock_rate | Contains the current master clock rate in Hz. Note that if the master clock rate is changed, the sample rate for all channels will also be set equal to the new master clock rate. |
report_tx_underflow | Reports TX underflows detected in the FPGA. Valid options are true (report) and false. Defaults to false |
tx_buffer_size | Contains the size (in number of samples) of the largest TX transfer the caller expects to make with writeStream(). A size of 0 means that the caller will be providing a properly-aligned DMA-able buffer, and thus one does not need to be allocated. |
The table below outlines the specific device arguments supported by AirStack Core API for each AIR-T model. Note that, while a device argument may be supported by multiple models, the actual settings will vary between models.
Supported Device Arguments¶
AIR7101 | AIR7201 | AIR7310 | AIR8201 | |
---|---|---|---|---|
tx_amp_bypass | ||||
time_src | ||||
clk_src | ||||
rx_lo_src | ||||
tx_lo_src | ||||
master_clock_rate | ||||
report_tx_underflow | ||||
tx_buffer_size |
How to Set a Device Argument¶
As an example for using a device argument, we will show how to set the receiver path (rx_path) on the AIR7310 to be in LNA mode, i.e., use the LNA, but no filters.
Method 1: Using a Device Argument¶
To use this method, the device argument is set during the instantiation of the SoapySDR Device:
sdr = SoapySDR.Device(dict(driver="SoapyAIRT", rx_path="lna"))
Method 2: Using a Stream Argument¶
To use this method, the device has already been instantiated and the argument is passed to the SoapySDR Device during the call to setupStream:
rx_stream = sdr.setupStream(
SOAPY_SDR_RX,
SOAPY_SDR_CS16,
[0],
dict(rx_path="lna")
)
Method 3: Using the Settings API¶
To use this method, the device has already been instantiated and the setting is changed directly by calling the method from the SoapySDR device:
sdr.writeSetting(SOAPY_SDR_RX, 0, "rx_path", "lna")
For any of these methods, the setting may be read by calling the Settings API:
sdr.readSetting(SOAPY_SDR_RX, 0, "rx_path")