Examples

Here is a collection of small examples which demonstrate how to interface with different devices in different ways.

Configuring hardware properties and reading back settings

# Import the library
import adi

# Create a device interface
sdr = adi.ad9361()
# Configure properties
sdr.rx_rf_bandwidth = 4000000
sdr.rx_lo = 2000000000
sdr.tx_lo = 2000000000
sdr.tx_cyclic_buffer = True
sdr.tx_hardwaregain = -30
sdr.gain_control_mode = "slow_attack"
# Read back properties from hardware
print(sdr.rx_hardwaregain)

Send data to a device and receiving data from a device

import adi
import numpy as np

sdr = adi.ad9361()
data = np.arange(1, 10, 3)
# Send
sdr.tx(data)
# Receive
data_rx = sdr.rx()

Configure the DDS of a transmit capable FPGA based device

import adi

sdr = adi.DAQ2()
# Configure DDS
tone_freq_hz = 1000  # In Hz
tone_scale = 0.9  # Range: 0-1.0
tx_channel = 1  # Starts at 0
sdr.dds_single_tone(tone_freq_hz, tone_scale, tx_channel)

Using URIs to access specific devices over the network

import adi

# Create device from specific uri address
sdr = adi.ad9361(uri="ip:192.168.2.1")
data = sdr.rx()

Using URIs to access specific devices over USB

import adi

# Create device from specific uri address
sdr = adi.Pluto(uri="usb:1.24.5")
data = sdr.rx()

Other complex examples are available in the source repository