libiio | cross platform library
kandi X-RAY | libiio Summary
kandi X-RAY | libiio Summary
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.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of libiio
libiio Key Features
libiio Examples and Code Snippets
Community Discussions
Trending Discussions on libiio
QUESTION
Lately I've had trouble including an adis driver in my Yocto build. I've asked the question on the adis forum but found the solution before anyone answered it. The adis forum not being very user friendly and the answer being quiet long, I've decided to answer my question here and link it in the forum.
The questionI'm building my OS with yocto and I'd like to add a driver for IMU ADIS1607 (anything but the ease of use is a plus) as part of this build.
I'm building a prototype on a raspberryPi4. My application uses an ADIS IMU (ADIS16507). Since the board for the final product is not fixed I'm building my OS with Yocto.
I'm currently trying to add a driver for ADIS16507. Ideally I'd like to add ADIS16475, but I could do with something else provided it works nicely.
First off I have checked that I'm able to build the whole ADIS linux kernel for RaspberryPi as specified in the doc. With that kernel the driver works nicely.
However the ADIS linux kernel is too heavy for what I intend to do. Hence I'm trying to build a lighter OS with yocto (also, as aforementioned, I'll likely need to port my work on different platforms).
I have a few ideas on how to do it, however none of them worked easily and I'm not sure which one to pursue.
I assumed the simplest way would be to compile the ADIS16475 on its own and add it to the Yocto build. However I'm struggling a little with Yocto and haven't been able to compile sucessfully
Alternatively I did find the libiio layer for yocto but it seems to require quiet a lot of code to on top of it to be able to read the IMU values.
I am aware of the python bindings of libiio layer and of Pyadi-iio and it seems easy to use (although I did not try adding it with yocto) but computational speed is an issue for me and I'd rather use C/C++ instead of python.
Finally I also found the meta-adi layer. I think that in my case it is not relevant but the documentation I found is rather sparse and I'm not certain what this layer is supposed to do.
Any pointer on which method I should use (maybe I've missed an obvious easy one) is welcome.
...ANSWER
Answered 2021-Mar-26 at 16:58So here is the solution I found. We will use the ADIS16475 which is a part of the standard libc since version 5.10. Then we'll get the corresponding device tree overlay from ADIS and add the relevant variables to have it compiled with the other device tree overlays.
Getting the correct versionsFor this to work we need libc 5.10 or later since earlier version do not include the adis16475.c source file. However only the latest yocto release, Hardknott, uses the 5.10 version. So simplest thing to do is to switch to the Hardknott branch of Yocto. Keep in mind that if you use other layers, you might also have to change release for compatibility reasons.
Configuring the kernel to compile ADIS16475 drivers as built inHere we're gonna dab into kernel compilation so there are a few things to know
Short and approximate theoryIf you don't know much about kernel compilation don't worry, neither do I. But here is an approximate quick explanation in order for you to understand what we're doing: Kernel makefiles hold list of files the have to compile. For drivers there are 2 important ones. obj-y
that holds the files that will be built in and obj-m
that holds the files that will be compiled as loadable modules. In order to make these list configurable, they are defined in makefiles with statements such as:
QUESTION
For the third time I reinstalled Ubuntu 20.04 on a Windows 10 machine running VMWare whilst attempting to install GNU Radio Companion 3.8 with the PlutoSDR gr_iio blocks. Each time failed with a different error.
I am charting my most recent attempt below. Any help is greatly appreciated.
- Installed Ubuntu 20.04 on VMWare
- Updated Ubuntu
cp ./53-adi-plutosdr-usb.rules /etc/udev/rules.d/
sudo service udev restart
- checked the output of
dmesg
- Since I had no
~/.ssh/config
file I ranwget https://raw.githubusercontent.com/analogdevicesinc/plutosdr_scripts/master/ssh_config -O ~/.ssh/config
ssh plutosdr
to add to list of known hosts. I verified the IP and firmware version.sudo apt-get install libiio-utils
and verified I can talk to the device viaiio_info -n 192.168.2.1 | grep device
The following output was produced:
ANSWER
Answered 2021-Feb-28 at 00:29Accoding to the documentation, the gr-iio
project doesn't include the GNU Radio
project but expects you to build it in advance.
However, you only built libiio
and libad9361
, but not the GNU Radio
library from https://github.com/gnuradio/gnuradio. The config file gr-iio
is complaining about should be installed when installing GNU Radio
.
Regarding MPIR: While MPIR started as a fork of gmp you can't install gmp as a replacement for MPIR, as they use different names for their headers and libraries. Which is why MPIR is still not being found after you've installed the development packages for gmp. If ubuntu doesn't provide packages for MPIR you'll have to compile it from source.
QUESTION
Morning All,
I am trying to install GNU Radio. I am running a Windows 10 computer where the Windows Subsystem for Linux was installed. Python 3.8.2 is installed.
After installing WSL and Ubuntu 20.04 I updated and upgraded:
...ANSWER
Answered 2020-May-17 at 08:25gr-iio
is a module for GNU Radio and requires it and its development package to be already installed:
gr-iio requires a few main dependencies:
- libiio
- libad9361
- GNU Radio and its development packages
- swig (Optional for python support)
On Ubuntu 20.04 development package for GNU Radio is gnuradio-dev. Among other things, this package provides GnuradioConfig.cmake
file which is noted in the CMake message you got.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install libiio
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page