libiio | cross platform library

 by   analogdevicesinc C Version: v0.24 License: LGPL-2.1

kandi X-RAY | libiio Summary

kandi X-RAY | libiio Summary

libiio is a C library typically used in Internet of Things (IoT), Raspberry Pi, Arduino applications. libiio has no bugs, it has no vulnerabilities, it has a Weak Copyleft License and it has low support. You can download it from GitHub.

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

            kandi-support Support

              libiio has a low active ecosystem.
              It has 393 star(s) with 287 fork(s). There are 53 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 24 open issues and 278 have been closed. On average issues are closed in 102 days. There are 3 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of libiio is v0.24

            kandi-Quality Quality

              libiio has 0 bugs and 0 code smells.

            kandi-Security Security

              libiio has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              libiio code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              libiio is licensed under the LGPL-2.1 License. This license is Weak Copyleft.
              Weak Copyleft licenses have some restrictions, but you can use them in commercial projects.

            kandi-Reuse Reuse

              libiio releases are available to install and integrate.
              It has 2094 lines of code, 142 functions and 20 files.
              It has medium code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of libiio
            Get all kandi verified functions for this library.

            libiio Key Features

            No Key Features are available at this moment for libiio.

            libiio Examples and Code Snippets

            No Code Snippets are available at this moment for libiio.

            Community Discussions

            QUESTION

            Yocto layer for ADIS16475
            Asked 2021-Mar-26 at 16:58
            Context

            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 question

            I'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:58

            So 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 versions

            For 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 in

            Here we're gonna dab into kernel compilation so there are a few things to know

            Short and approximate theory

            If 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:

            Source https://stackoverflow.com/questions/66821241

            QUESTION

            Ubuntu 20.04 Could NOT find MPIR during gr-iio cmake
            Asked 2021-Feb-28 at 00:29

            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.

            1. Installed Ubuntu 20.04 on VMWare
            2. Updated Ubuntu
            3. cp ./53-adi-plutosdr-usb.rules /etc/udev/rules.d/
            4. sudo service udev restart
            5. checked the output of dmesg
            6. Since I had no ~/.ssh/config file I ran wget https://raw.githubusercontent.com/analogdevicesinc/plutosdr_scripts/master/ssh_config -O ~/.ssh/config
            7. ssh plutosdr to add to list of known hosts. I verified the IP and firmware version.
            8. sudo apt-get install libiio-utils and verified I can talk to the device via iio_info -n 192.168.2.1 | grep device The following output was produced:
            ...

            ANSWER

            Answered 2021-Feb-28 at 00:29

            Accoding 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.

            Source https://stackoverflow.com/questions/66402771

            QUESTION

            GNU Radio 3.8 on Ubuntu 20.04 using WSL: CMake Warning, Build Type Not Specified
            Asked 2020-May-17 at 08:25

            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:25

            gr-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.

            Source https://stackoverflow.com/questions/61838329

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install libiio

            You can download it from GitHub.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries

            Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link