• Stars
    star
    416
  • Rank 104,068 (Top 3 %)
  • Language
    C
  • License
    GNU Lesser Genera...
  • Created almost 11 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A cross platform library for interfacing with local and remote Linux IIO devices

libiio

Library for interfacing with Linux IIO devices

libiio is used to interface to the Linux Industrial Input/Output (IIO) Subsystem. The Linux IIO subsystem is intended to provide support for devices that in some sense are analog to digital or digital to analog converters (ADCs, DACs). This includes, but is not limited to ADCs, Accelerometers, Gyros, IMUs, Capacitance to Digital Converters (CDCs), Pressure Sensors, Color, Light and Proximity Sensors, Temperature Sensors, Magnetometers, DACs, DDS (Direct Digital Synthesis), PLLs (Phase Locked Loops), Variable/Programmable Gain Amplifiers (VGA, PGA), and RF transceivers. You can use libiio natively on an embedded Linux target (local mode), or use libiio to communicate remotely to that same target from a host Linux, Windows or MAC over USB or Ethernet or Serial.

Although libiio was primarily developed by Analog Devices Inc., it is an active open source library, which many people have contributed to. The library is released under the GNU Lesser General Public License (LGPL), version 2.1 or (at your option) any later version, this open-source license allows anyone to use the library, on any vendors processor/FPGA/SoC, which may be controlling any vendors peripheral device (ADC, DAC, etc) either locally or remotely. This includes closed or open-source, commercial or non-commercial applications (subject to the LGPL license freedoms, obligations and restrictions). The examples and test applications (sometimes referred to as the iio-utils) are released separately under the GNU General Public License (GPL) version 2.0 (at your option) any later version.

Library License : Library License Tests/Examples License : Application License Latest Release : GitHub release Downloads : Github All Releases

Scans : Coverity Scan Build Status Release docs: Documentation Issues : open bugs closed bugs

Support:
If you have a question about libiio and an Analog Devices IIO kernel driver please ask on : EngineerZone. If you have a question about a non-ADI devices, please ask it on github.

As with many open source packages, we use GitHub to do develop and maintain the source, and Azure Pipelines for continuous integration.

  • If you want to just use libiio, we suggest using the latest release.
  • If you think you have found a bug in the release, or need a feature which isn't in the release, try the latest untested binaries from the master branch and check out the documentation based on the master branch. We provide builds for a few operating systems. If you need something else, we can most likely add that -- just ask.
Operating System GitHub master status Version Primary Installer Package Alternative Package, tarball or zip
Windows Build Status Windows-64 Server 2019 Latest Windows installer
Build Status
Latest Windows zip
Build Status Windows-64 Server 2022 (libiio-setup.exe works for both Windows Server 2019 and Windows Server 2022) Latest Windows zip
OS X Build Status macOS Monterey
(v 12)
OS-X package 12 OS-X tarball 12
Build Status macOS Big Sur
(v 11)
OS-X package 11 OS-X tarball 11
Unsupported. Last artifacts from Sept 6, 2022 macOS Catalina
(v 10.15)
OS-X package 10.15 OS-X tarball 10.15
Linux Build Status Ubuntu Jammy Jellyfish
(v 22.04)1
Debian Linux tarball
Build Status Ubuntu Focal Fossa
(v 20.04)1
Debian Linux tarball
Unsupported. Last artifact from Feb 22, 2023 Ubuntu Bionic Beaver
(v 18.04)1
Debian Linux tarball
Build Status Fedora 34 RPM File Linux tarball
Fedora 28 RPM File Linux tarball
CentOS 7 RPM File Linux tarball
Debian Bullseye Debian Linux tarball
openSUSE 15.4 Debian Linux tarball
ARM Build Status Ubuntu-ppc64le Debian Linux tarball
Build Status Ubuntu-x390x Debian Linux tarball
Build Status Ubuntu-arm64v8 Debian Linux tarball
Build Status Ubuntu-arm32v7 Debian Linux tarball

If you use it, and like it - please let us know. If you use it, and hate it - please let us know that too. The goal of the project is to try to make Linux IIO devices easier to use on a variety of platforms. If we aren't doing that - we will try to make it better.

Feedback is appreciated (in order of preference):

Weblinks:

  1. The Ubuntu packages are known to work on their Debian counterpart releases.

More Repositories

1

hdl

HDL libraries and projects
Verilog
1,215
star
2

no-OS

Software drivers in C for systems without an operating system
C
956
star
3

linux

Linux kernel variant from Analog Devices; see README.md for details
C
438
star
4

scopy

A software oscilloscope and signal analysis toolset
C++
327
star
5

plutosdr-fw

PlutoSDR Firmware
Shell
249
star
6

iio-oscilloscope

A GTK+ based oscilloscope application for interfacing with various IIO devices
C
222
star
7

pyadi-iio

Python interfaces for ADI hardware with IIO drivers (aka peyote)
Python
144
star
8

MaximAI_Documentation

START HERE: Documentation for ADI's MAX78000 and MAX78002 Edge AI devices
91
star
9

Linduino

Code for the Linduino, An Arduino Uno-based board that is compatible with many Analog Devices evaluation boards
C++
89
star
10

gr-iio

IIO blocks for GNU Radio
C++
86
star
11

ai8x-training

Model Training for ADI's MAX78000 and MAX78002 Edge AI Devices
Jupyter Notebook
81
star
12

fpgahdl_xilinx

(RETIRED see https://github.com/analogdevicesinc/hdl instead) FPGA interface reference designs for Analog Devices mixed signal IC products
C
81
star
13

plutosdr_scripts

Small scripts and examples to make interacting with the PlutoSDR easier
C
77
star
14

MathWorks_tools

Scripts and tools created by ADI to be used with MATLAB and Simulink with ADI products
MATLAB
72
star
15

aditof_sdk

Analog Devices 3D ToF software suite
C++
70
star
16

msdk

Software Development Kit for Analog Device's MAX-series microcontrollers
C
63
star
17

ad5940-examples

AD594x related application examples and block level examples.
60
star
18

EVAL-ADICUP360

Detailed User Guide for the EVAL-ADICUP360, showing how to use the software and hardware in combination. As well as a link to download the CrossCore Embedded Studio IDE.
C
56
star
19

TransceiverToolbox

MATLAB toolbox for ADI transceiver products
MATLAB
56
star
20

libad9361-iio

IIO AD9361 library for filter design and handling, multi-chip sync, etc.
C
55
star
21

ad936x-filter-wizard

MATLAB-based FIR filter design
MATLAB
51
star
22

ai8x-synthesis

Quantization and Synthesis (Device Specific Code Generation) for ADI's MAX78000 and MAX78002 Edge AI Devices
Python
50
star
23

plutosdr-m2k-drivers-win

Windows USB drivers for PlutoSDR and ADALM2000
46
star
24

m2k-fw

M2k firmware for the ADALM-2000 Active Learning Module
Shell
44
star
25

Pixelpulse2

Pixelpulse2 is a user interface for analog systems exploration.
QML
43
star
26

gr-ofdmradar

A simple OFDM Radar implementation
C++
40
star
27

arduino

Adruino Sketches
C++
37
star
28

ad5940lib

Firmware library for AD594x and ADuCM355
C
34
star
29

ToF

C++
34
star
30

libm2k

A C++ library (bindings for Python and C#) for interfacing with the ADALM2000
MATLAB
30
star
31

buildroot

Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation. Forked from https://git.busybox.net/buildroot/
Makefile
29
star
32

meta-adi

This is the Analog Devices Inc. Yocto/OpenEmbedded layer
Shell
29
star
33

EVAL-ADICUP3029

This repo includes examples which run on the EVAL-ADICUP3029 ARM Cortex-M3 processor development platform from Analog Devices.
C
29
star
34

libsmu

Software abstractions for the analog signal exploration tools.
Python
29
star
35

aducm355-examples

This repo includes examples for the Analog Devices ADUCM355 Precision Analog Microcontroller with Chemical Sensor Interface
C
25
star
36

VSCode-Maxim

VSCode project folders for the Analog Devices MSDK
Makefile
24
star
37

education_tools

Tools for education related platforms
AGS Script
23
star
38

TMC-EvalSystem

C
21
star
39

sharc-reusable-components

A collection of embedded C code packaged into a library of reusable components and starter examples designed to facilitate customers’ easy deployment into demo or production systems using a SHARC DSP
C
20
star
40

libtinyiiod

Tiny IIO Daemon Library
C
19
star
41

imu-ros2

A C++ ROS2 node that read sensor data from ADI IMU and publishes message to topic.
C++
18
star
42

adpd-drivers

Analog Devices Photometric Device Drivers
C++
18
star
43

HighSpeedConverterToolbox

MATLAB toolbox for ADI high speed converter products
MATLAB
18
star
44

m1k-fw

Firmware for the ADALM1000.
C
17
star
45

vampyre

Python
16
star
46

MAX78xxx-RefDes

MAX78000 and MAX78002 Reference Designs
C
16
star
47

linux_image_ADI-scripts

ADI Scripts for Linux images
Shell
15
star
48

alice

Active Learning Interface for Circuits and Electronics
14
star
49

precision-converters-firmware

Precision Converters Embedded Firmware Repository
C
14
star
50

openocd

OpenOCD provides on-chip programming and debugging support with a layered architecture of JTAG interface and TAP support. Clone of http://git.code.sf.net/p/openocd
C
14
star
51

genalyzer

Library of DSP functions for RF measurements
C++
14
star
52

lnxdsp-adi-meta

Yocto meta layer for Analog Devices ADSP-SC5xx based EZ-KIT boards
C
13
star
53

max32625pico-firmware-images

13
star
54

libiio-matlab

MATLAB bindings for libiio
MATLAB
13
star
55

ev-cbm-voyager

Wireless Industrial Condition Monitoring solution
Python
12
star
56

m1k-cad

ecad for the ADALM1000
Groff
12
star
57

codefusion-studio

ADI's Embedded Development Tools
TypeScript
11
star
58

jesd-eye-scan-gtk

JESD204 Eye Scan Visualization Utility
C
11
star
59

fru_tools

Tools to display/manipulate FMC FRU info
C
11
star
60

iio-fm-radio

Simple IIO FM Radio receive example
C
11
star
61

adi_3dtof_image_stitching

The ADI 3D ToF Image Stitching is a ROS (Robot Operating System) package for stitching Depth images from multiple ADTF3175D Time-Of-Flight sensors to expand the field of view.
C++
11
star
62

pyadi-jif

Python interface and configurator for the ADI JESD204 Interface Framework
Python
10
star
63

iolink

Python
10
star
64

iSensor-FX3-Eval

Analog Devices IMU/ADcmXL Evaluation GUI built on the iSensor-FX3-API (for EVAL-ADIS-FX3 board)
Visual Basic .NET
10
star
65

FreeRTOS

Analog Devices FreeRTOS repository
10
star
66

sam-audio-starter

The project is tailored for quick audio start-up with the SHARC Audio Module board. It uses the various reusable component building blocks to provide a simple example to customers to get started transferring audio.
C
9
star
67

tmcl_ros2

Official ROS2 Driver for Trinamic Motor Controllers (TMC) that uses Trinamic Motion Control Language (TMCL) protocol
Python
9
star
68

gmsl

Gigabit Multimedia Serial Link (GMSL) technology from Analog Devices, Inc. (ADI)
9
star
69

tmcl_ros

adi_tmcl (previously tmcl_ros) is the official ROS Driver for ADI Trinamic Motor Controllers (TMC) that uses Trinamic Motion Control Language (TMCL) protocol.
C++
8
star
70

PyTrinamicMicro

Python
8
star
71

ad937x-filter-wizard

MATLAB-based FIR filter and profile designer
C
8
star
72

iio-emu

Server application for libiio clients.
C++
8
star
73

sam-baremetal-sdk

SHARC Audio Module Bare Metal SDK
C
8
star
74

sigmadsp-genfirmware

SigmaDSP Firmware Utility for Linux
C
7
star
75

adi-imu-driver

C library to drive ADI IMUs
C
7
star
76

max78000-secure-loader

Secure boot loader for MAX78000
Python
7
star
77

rfsom-box-gui

GUI application for the RFSOM Box
C++
7
star
78

MAXREFDES1277

MAXREFDES1277 is a reference design that enables the evaluation of MAX17853/52 for battery management in a 48V system.
C++
6
star
79

RFMicrowaveToolbox

MATLAB Toolbox for ADI RF and Microwave Models and Control Interfaces
MATLAB
6
star
80

MAXREFDES1260

This repository is where you can download the firmware and PC GUI program of the MAXREFDES1260. It is a USB Type-C battery charging example using Maxim chips MAX14748 multi-cell battery charger and the MAX17261 fuel gauge.
C
6
star
81

lnxdsp-scripts

Yocto Set up scripts for configuring and building Linux for ADSP-SC5xx development boards.
Python
6
star
82

study-watch-sdk

This repository hosts the SDK for the Analog Devices Inc. study watch. You will find examples and documentation for the SDK.
Java
6
star
83

runtime-sharc-loader

Utility to boot SHARC applications from ARM core on ADSP-SC58x processors
C
5
star
84

TMCL-C-Examples

C
5
star
85

sigma-tcp

SigmaStudio Network Utility for Linux
C
5
star
86

AD5593-AuxIO-Win10-IoT

Win10 IoT command line auxiliary IO test utility for the AD5593
C++
5
star
87

AnalogRTCLibrary

MAX31331, MAX31334, MAX31328, MAX31341 and MAX31343 Arduino Drivers
C++
5
star
88

PrecisionToolbox

MATLAB toolbox for ADI precision data converter products
MATLAB
5
star
89

LabVIEW-Scripting-UI-Library

LabVIEW User Interface components providing basic text IDE features
LabVIEW
5
star
90

sensor-sw-pack

The Sensor Software package contains sensor class drivers and examples using various sensors such as ADXL362 Accelerometer, ADT7420 Temperature sensor, CN0397 Visible Light sensor and CN0357 Toxic Gas sensor. These applications use the ADICUP3029 hardware platform along with associated sensor shields.
HTML
5
star
91

aditof-sdk-rework

Analog Devices 3D ToF software suite (REWORK)
C++
4
star
92

SensorToolbox

MATLAB toolbox for ADI sensor products
MATLAB
4
star
93

gr-scopy

Scopy IIO blocks for GNU Radio
C++
4
star
94

libadrv9002-iio

Profile generation library for ADRV9002/3/4 transceivers
4
star
95

iio-osc-mingw

Scripts and patches to cross-compile the IIO Oscilloscope for MS Windows
Shell
4
star
96

adi_3dtof_adtf31xx

The ADI 3D ToF ADTF31xx is a ROS (Robot Operating System) package for working with ADI’s ADTF3175D ToF sensor.
C++
4
star
97

TMCL-Script-Examples

4
star
98

MAX32655_MAX30009

MAX32655 code to communicate with the MAX30009 through SPI
C
4
star
99

MAXREFDES1301

The MAXREFDES1301 reference design firmware enables quick evaluation of the MAX17852 and MAX17853 for 96V three-Wheeler BMS.
C++
4
star
100

wiki-scripts

A mixed set of scripts that are referenced in the Analog Devices wiki
Shell
4
star