analogdevicesinc / pyadi-iio

Python interfaces for ADI hardware with IIO drivers (aka peyote)
https://analogdevicesinc.github.io/pyadi-iio
Other
146 stars 106 forks source link
adi hacktoberfest hacktoberfest2022 hardware iio libiio python

PyADI-IIO Logo

Build Status PyPI version Codacy Badge Python Version

GitHub Pages EngineerZone Analog Wiki


pyadi-iio: Analog Devices python interfaces for hardware with Industrial I/O drivers

pyadi-iio is a python abstraction module for ADI hardware with IIO drivers to make them easier to use. The libIIO interface although extremely flexible can be cumbersome to use due to the amount of boilerplate code required for even simple examples, especially when interfacing with buffers. This module has custom interfaces classes for specific parts and development systems which can generally make them easier to understand and use. To get up and running with a device can be as simple as a few lines of code:

import adi

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

Currently supported hardware

Supported parts and boards

Dependencies

Installing from source

tcollins@jeeves:~$ git clone https://github.com/analogdevicesinc/pyadi-iio.git
tcollins@jeeves:~$ cd pyadi-iio
tcollins@jeeves:~$ (sudo) pip install .

Installing from pip

tcollins@jeeves:~$ (sudo) pip install pyadi-iio

To get optional dependency for JESD debugging

tcollins@jeeves:~$ (sudo) pip install pyadi-iio[jesd]

Building doc

Install necessary tools

tcollins@jeeves:~$ (sudo) pip install -r requirements_doc.txt

Build actual doc with sphinx

tcollins@jeeves:~$ cd doc
tcollins@jeeves:~$ make html

Developing

Install necessary tools

tcollins@jeeves:~$ (sudo) pip install -r requirements_dev.txt

Running pre-commit checks

tcollins@jeeves:~$ pre-commit run --all-files