Skip to content
Josh Blum edited this page Sep 5, 2015 · 23 revisions

SDR blocks tutorial

https://raw.githubusercontent.com/wiki/pothosware/pothos-sdr/images/docs_sdr_stream_params.png

The device arguments are a dictionary of key-value pairs used for specifying a SDR device on the system. If only one SDR device is present on the system, an empty dictionary "{}" may be specified instead.

The key value pairs are the same ones printed by the Soapy SDR Util application:

SoapySDRUtil --find
######################################################
## Soapy SDR -- the SDR abstraction library
######################################################

Found device 0
  backend = libusb
  device = 0x01:0x02
  driver = bladerf
  instance = 0
  serial = 123456789abcdef
  • The device argument {"driver":"bladerf"} would cause other device, such as rtl to be ignored.
  • Or use {"driver":"bladerf", "serial":"123456789abcdef"} if the system had multiple blade RFs.

The data type is a string that specifies the format of the sample stream. Options are available for all complex, integer, and floating point data types, however not all formats may be supported depending upon the underlying driver for the hardware.

https://raw.githubusercontent.com/wiki/pothosware/pothos-sdr/images/docs_sdr_stream_channels.png

Channels is an array of channel indexes that will be used for streaming. By default this array is empty, meaning that channel 0 of the device will be used. However when specified, each entry in the array maps a device channel to a streaming port.

Stream arguments are a dictionary of key-value pairs used for passing extra arguments to the stream initialization. Implementation of the stream arguments is specific to the hardware driver, however common uses include specifying the underlying transport sample format and internal scaling.

This is the sample rate in Hz of all streaming channels. All channels listed in the channels parameter will be configured to the same sample rate. Otherwise, use multiple blocks to support heterogeneous sample rates for different channels.

By default, the SDR block is activated upon topology activation. This setting can be disabled for advanced stream control, more on this topic in the sections below.

https://raw.githubusercontent.com/wiki/pothosware/pothos-sdr/images/docs_sdr_source_stream.png

The default behavior of the SDR source is to stream continuously upon activation of the topology.

https://raw.githubusercontent.com/wiki/pothosware/pothos-sdr/images/docs_auto_activate_param.png https://raw.githubusercontent.com/wiki/pothosware/pothos-sdr/images/docs_sdr_sink_stream.png https://raw.githubusercontent.com/wiki/pothosware/pothos-sdr/images/docs_sdr_sink_sched.png https://raw.githubusercontent.com/wiki/pothosware/pothos-sdr/images/docs_sdr_channel_params.png https://raw.githubusercontent.com/wiki/pothosware/pothos-sdr/images/docs_sdr_clocking_params.png https://raw.githubusercontent.com/wiki/pothosware/pothos-sdr/images/docs_sdr_gpio_params.png