Post Go back to editing

no-OS IIO-Oscilloscope serial connection

Category: Software
Product Number: FMCOMMS4
Software Version: Vivado 2019.1


I would like to use no-OS with IIO-Oscilloscope via serial connection. I built no-OS and downloaded bit-stream into the zynq board without any errors.

I also built iio-oscilloscope and libiio using version 2021_R2

However, I can not connect to the zynq board via USB port (I did not see any IIO-devices in the list even I refreshed many times)

May be I miss something in enabling IIOD USB Backend?

Thank you 

  • I have found this link: 
    RE: serial connection with iio oscilloscope
    I have followed it:

    $ ldd $(which iio_info) (0x00007ffe687c1000) => /lib/x86_64-linux-gnu/ (0x00007f03d5728000) => /lib/x86_64-linux-gnu/ (0x00007f03d5536000) => /lib/x86_64-linux-gnu/ (0x00007f03d551a000) => /lib/x86_64-linux-gnu/ (0x00007f03d5507000) => /lib/x86_64-linux-gnu/ (0x00007f03d54f9000) => /lib/x86_64-linux-gnu/ (0x00007f03d533f000) => /lib/x86_64-linux-gnu/ (0x00007f03d531a000)
    /lib64/ (0x00007f03d5775000) => /lib/x86_64-linux-gnu/ (0x00007f03d52ed000) => /lib/x86_64-linux-gnu/ (0x00007f03d529c000) => /lib/x86_64-linux-gnu/ (0x00007f03d5296000) => /lib/x86_64-linux-gnu/ (0x00007f03d50b0000) => /lib/x86_64-linux-gnu/ (0x00007f03d5094000) => /lib/x86_64-linux-gnu/ (0x00007f03d5069000) => /lib/x86_64-linux-gnu/ (0x00007f03d4f1a000) => /lib/x86_64-linux-gnu/ (0x00007f03d4e6b000) => /lib/x86_64-linux-gnu/ (0x00007f03d33aa000) => /lib/x86_64-linux-gnu/ (0x00007f03d31c8000) => /lib/x86_64-linux-gnu/ (0x00007f03d31ad000) => /lib/x86_64-linux-gnu/ (0x00007f03d31a1000) => /lib/x86_64-linux-gnu/ (0x00007f03d3180000) => /lib/x86_64-linux-gnu/ (0x00007f03d3062000) => /lib/x86_64-linux-gnu/ (0x00007f03d303f000)
    I download the libserialport from
    $ cd libserialport-master/
    $ ./
    autoreconf: Entering directory `.'
    autoreconf: not using Gettext
    autoreconf: running: aclocal --force -I autostuff
    autoreconf: tracing
    autoreconf: running: libtoolize --copy --force
    libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'autostuff'.
    libtoolize: copying file 'autostuff/'
    libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'autostuff'.
    libtoolize: copying file 'autostuff/libtool.m4'
    libtoolize: copying file 'autostuff/ltoptions.m4'
    libtoolize: copying file 'autostuff/ltsugar.m4'
    libtoolize: copying file 'autostuff/ltversion.m4'
    libtoolize: copying file 'autostuff/lt~obsolete.m4'
    autoreconf: running: /usr/bin/autoconf --force
    autoreconf: running: /usr/bin/autoheader --force
    autoreconf: running: automake --add-missing --copy --force-missing installing 'autostuff/ar-lib' installing 'autostuff/compile' installing 'autostuff/config.guess' installing 'autostuff/config.sub' installing 'autostuff/install-sh' installing 'autostuff/missing' installing './INSTALL' installing 'autostuff/depcomp'
    parallel-tests: installing 'autostuff/test-driver'
    autoreconf: Leaving directory `.'
    $ ./configure --prefix=/lib/x86_64-linux-gnu

    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    checking whether make supports nested variables... yes
    checking whether make supports nested variables... (cached) yes
    checking whether make supports the include directive... yes (GNU style)
    checking for gcc... gcc
    checking whether the C compiler works... yes
    $ make

    make all-am
    CC serialport.lo
    CC timing.lo
    CC linux.lo
    CC linux_termios.lo
    $ sudo make install
    /usr/bin/mkdir -p '/lib/x86_64-linux-gnu/lib'
    /bin/bash ./libtool --silent --mode=install /usr/bin/install -c '/lib/x86_64-linux-gnu/lib'
    /usr/bin/mkdir -p '/lib/x86_64-linux-gnu/include'
    /usr/bin/install -c -m 644 libserialport.h '/lib/x86_64-linux-gnu/include'
    /usr/bin/mkdir -p '/lib/x86_64-linux-gnu/lib/pkgconfig'
    /usr/bin/install -c -m 644 libserialport.pc '/lib/x86_64-linux-gnu/lib/pkgconfig'

    But nothing changes from my side, may be I miss sth?

  • Now I can see the device port (ACM0) in the dropped menu of IIO-Oscilloscope.

    but I can not find my device with context description: Could not get IIO context: permission denied 

    I also tried to build no-OS project with with IIO support (

    make clean_all

    make TINYIIOD=y

    but I has this error: 

    /home/hp/zed/no-OS_2019_r2/projects/ad9361/build/app/noos/libraries/iio/iio_types.h:48:10: fatal error: tinyiiod.h: No such file or directory
    #include "tinyiiod.h"
    compilation terminated.
    make[1]: *** [../../tools/scripts/ /home/hp/zed/no-OS_2019_r2/projects/ad9361/build/objs/ad9361/build/app/noos/iio/iio_ad9361/iio_ad9361.o] Error 1
    make: *** [../../tools/scripts/ all] Error 2

  • Sorry, I forgot this at no-OS/
    git submodule update --init --recursive
    The probleme has been solved, I can do make TINYIIOD=y without any problem

  • I still has the problem on the connection via serial port

    ERROR: sp_blocking_read_next has timedout
    ERROR: READ LINE: -110

    I used HDL and no-OS 2019_R2
    IIO-Oscilloscope and libiio version 2021_R2

    I have seen in a question that  mentioned that we just only used iio-oscilloscope with the ma ster branch of no-OS?
    Any one can help? 

  • I have the same problem and i should notice that running oscilloscope from root will help: "sudo osc". Setting variable LIBSERIALPORT_DEBUG shows that problem is with serialport. 

  • The problem has been solved by changing the baud rate into 115200 in parameter.h (#define UART_BAUDRATE 115200). After recompiling, running the project, and connecting to the server with the serial port set to 115200 as usual, the issue was successfully addressed."