ADALM-PLUTO
Python 3.9.6 64-bit for Windows

I installed Windows drivers for ADALM-PLUTO
https://wiki.analog.com/university/tools/pluto/drivers/windows

and pyadi-iio https://wiki.analog.com/resources/tools-software/linux-software/pyadi-iio

and tried short Python program

import adi

cf = 436e6
sdr = adi.Pluto('ip:192.168.2.1')
sdr.tx_lo = int(cf)
print(sdr.tx_lo)

Result: AttributeError: function 'iio_device_get_label' not found

Fix: I copied iio.py file in the same directory where my Python program is

iio.py can be found from here (libiio-0.21.g565bf68-Windows.zip)
https://github.com/analogdevicesinc/libiio/releases
 

Direct Digital Synthesizers
https://analogdevicesinc.github.io/pyadi-iio/fpga/index.html#direct-digital-synthesizers

dds_single_tone and dds_dual_tone produce continuos tone*. Tone generation can be stopped with:
dds_single_tone(0, 0)
dds_dual_tone(0, 0, 0, 0)
* stops automatically after about within 50 seconds

Generate FM tone

import adi
import numpy as np
import time

sample_rate = 1.0e6
cf = 436e6
hw_gain_chan0 = -10
tone = 1124
carrier = 440
num_samples = 100000
t = 0.12

sdr = adi.Pluto('ip:192.168.2.1')
sdr.tx_lo = int(cf)
sdr.sample_rate = int(sample_rate)
sdr.tx_hardwaregain_chan0 = int(hw_gain_chan0)
sdr.tx_rf_bandwidth = int(sample_rate)

print(sdr.tx_lo)
print(sdr.tx_hardwaregain_chan0)
print(sdr.sample_rate)

d = np.linspace(0, t, int(t * sample_rate), endpoint = False)
b = np.linspace(0, 1, int(t * sample_rate))
o = np.sin(2 * np.pi * carrier * d + b * np.sin(2 * np.pi * tone * d))
o *= 2**14

for n in range(128):
    sdr.tx(o)
    time.sleep(0.12)

sdr-ccir-pluto.jpg

https://i.ibb.co/jrCHGbs/sdr-ccir-pluto.jpg

Visual Studio 2019 Python environment
Debug -> Start Without Debugging
Result: Error
Exception ignored in: <function Buffer.__del__ at 0x03363D68>
OSError: exception: access violation writing 0x00000014
Fix: Debug -> Execute Project in Python Interactive

I once noticed that suddenly sdr.tx stopped working, I disconnected pluto device and restarted PC and tx worked after that