AD9739A
Recommended for New Designs
The AD9737A/AD9739A are 11-bit and 14-bit, 2.5 GSPS high performance RF DACs that are capable of synthesizing wideband signals from dc up to 3 GHz. The...
Datasheet
AD9739A on Analog.com
AD9371
Recommended for New Designs
The AD9371 is a highly integrated, wideband RF transceiver
offering dual channel transmitters and receivers, integrated synthesizers, and digital signal...
Datasheet
AD9371 on Analog.com
ADRV9002
Recommended for New Designs
The ADRV9002 is a highly integrated RF transceiver that has dual-channel transmitters, dual-channel receivers, integrated synthesizers, and digital signal...
Datasheet
ADRV9002 on Analog.com
AD6676
Recommended for New Designs
For a limited time, take a live test drive of the AD6676 by using our remote evaluation software.
The AD6676 is a highly integrated IF subsystem that can...
Datasheet
AD6676 on Analog.com
AD9081
Recommended for New Designs
The AD9081 mixed signal front end (MxFE®) is a highly integrated device with four 16-bit, 12 GSPS maximum sample rate, RF digital-to-analog converter...
Datasheet
AD9081 on Analog.com
ADRV9009
Recommended for New Designs
The ADRV9009 is a highly integrated, radio frequency (RF), agile transceiver offering dual transmitters and receivers, integrated synthesizers, and digital...
Datasheet
ADRV9009 on Analog.com
I tried using IIO oscilloscope with the SDR E312 from Ettus, I use the code from my previous thread USRP E312 (AD9361) - ad9361_dig_tune_delay: Tuning RX FAILED! thanks to danmois with this commit.
Then I enable IIO_SUPPORT, it works with the following result:
cf-ad9361-lpc: Successfully initialized (61439514 Hz) ad9361_init : AD936x Rev 2 successfully initialized Sampling frequency is: 30720000 New sampling frequency is: 15360000 LO frequency of TX is: 1000000000 Output port TX: 0 Power state of Tx: 1 cf-ad9361-dds-core-lpc: Successfully initialized (30718994 Hz) �Running TinyIIOD server... If successful, you may connect an IIO client application by: 1. Disconnecting the serial terminal you use to view this message. 2. Connecting the IIO client application using the serial backend configured as shown: Baudrate: 921600 Data size: 8 bits Parity: none Stop bits: 1 Flow control: none
However, on my computer IIO Oscilloscope doesn't work. I have the same problems than NicoleDuarte in this thread serial connection with iio oscilloscope .
For example when installing IIO oscilloscope with this link IIO Oscilloscope , i can't choose Serial Content.
According to buha , I reinstalled libiio with the command:
analog@precision:~/libiio$ mkdir build analog@precision:~/libiio/build$ cd build analog@precision:~/libiio/build$ cmake ../ -DWITH_SERIAL_BACKEND=ON analog@precision:~/libiio/build$ make -j analog@precision:~/libiio/build$ sudo make instal
Thus, i have the error Could not get IIO Context: inappropriate ioctl for device ...
So I tried to build libserialport with the link https://sigrok.org/wiki/Libserialport and the post of buha with the command:
$ ./autogen.sh $ ./configure --prefix=/usr $ make $ sudo make instal
but I'm stuck at ./autogen.sh, I get the following error:
/path/to/libserialport$ ./autogen.sh /bin/sh: 0: Illegal option -
How can we solve this problem?
Thank you very much for your time,
Regards,
Rémi
Hi Rémi,
Could you try to install libserialport via the package manager rather than building it from source ?
Try : apt-get install libserialport-dev
After you have installed this package, you will need to rebuild libiio with the serial backend enabled. Then, you will also have to rebuild iio-oscilloscope.
Let us know if this works for you.
-Cristina
HI csuteu ,
Thank you for your reply.
I installed as you said libserialport-dev. But I get exactly the same error.
Here are the results of some commands if you need them:
path/to/libiio/build$ cmake ../ -DWITH_SERIAL_BACKEND=ON
-- cmake version: 3.16.3
-- The C compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Performing Test HAS_WPEDANTIC
-- Performing Test HAS_WPEDANTIC - Success
-- Performing Test HAS_WSHADOW
-- Performing Test HAS_WSHADOW - Success
-- Looking for strdup
-- Looking for strdup - found
-- Looking for strndup
-- Looking for strndup - found
-- Looking for strerror_r
-- Looking for strerror_r - found
-- Looking for strtok_r
-- Looking for strtok_r - found
-- Looking for newlocale
-- Looking for newlocale - found
-- Looking for in6addr_any
-- Looking for in6addr_any - found
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for module 'libusb-1.0'
-- Found libusb-1.0, version 1.0.23
-- Looking for libusb_get_version
-- Looking for libusb_get_version - found
-- Found Git: /usr/bin/git (found version "2.25.1")
-- Looking for libserialport : Found
-- Performing Test WITH_NETWORK_EVENTFD
-- Performing Test WITH_NETWORK_EVENTFD - Success
-- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version "2.9.10")
-- Found BISON: /usr/bin/bison (found version "3.5.1")
-- Found FLEX: /usr/bin/flex (found version "2.6.4")
-- Looking for pthread_setname_np
-- Looking for pthread_setname_np - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of struct usb_functionfs_descs_head_v2
-- Check size of struct usb_functionfs_descs_head_v2 - done
-- Features enabled : xml network dns-sd avahi ipv6 serial local local-mmap hwmon usb utils iiod udev-rule iiod-serial iiod-aio iiod-usb man-utils
-- Features disabled: zstd bonjour examples c++-bindings iiod-systemd iiod-sysvinit iiod-upstart doc man python-bindings c#-bindings
-- Configuring done
-- Generating done
-- Build files have been written to :path/to/liibio/build
path/to/libiio/build$ sudo make install
path/to/libiio/build$ sudo make install
[ 41%] Built target iio
[ 47%] Built target iio_tests_helper
[ 52%] Built target iio_genxml
[ 56%] Built target iio_writedev
[ 60%] Built target iio_stresstest
[ 64%] Built target iio_info
[ 68%] Built target iio_attr
[ 72%] Built target iio_readdev
[ 77%] Built target iio_reg
[100%] Built target iiod
Install the project...
-- Install configuration: "RelWithDebInfo"
-- Installing: /usr/lib/x86_64-linux-gnu/pkgconfig/libiio.pc
-- Installing: /usr/lib/x86_64-linux-gnu/libiio.so.0.25
-- Up-to-date: /usr/lib/x86_64-linux-gnu/libiio.so.0
-- Up-to-date: /usr/lib/x86_64-linux-gnu/libiio.so
-- Installing: /usr/include/iio.h
-- Installing: /lib/udev/rules.d/90-libiio.rules
-- Installing: /usr/bin/iio_genxml
-- Set runtime path of "/usr/bin/iio_genxml" to ""
-- Installing: /usr/bin/iio_info
-- Set runtime path of "/usr/bin/iio_info" to ""
-- Installing: /usr/bin/iio_attr
-- Set runtime path of "/usr/bin/iio_attr" to ""
-- Installing: /usr/bin/iio_readdev
-- Set runtime path of "/usr/bin/iio_readdev" to ""
-- Installing: /usr/bin/iio_reg
-- Set runtime path of "/usr/bin/iio_reg" to ""
-- Installing: /usr/bin/iio_writedev
-- Set runtime path of "/usr/bin/iio_writedev" to ""
-- Installing: /usr/bin/iio_stresstest
-- Set runtime path of "/usr/bin/iio_stresstest" to ""
-- Installing: /usr/sbin/iiod
-- Set runtime path of "/usr/sbin/iiod" to ""
path/to/iio-oscilloscope/build$ cmake ../ && make -j $(nproc)
path/to/iio-oscilloscope/build$ cmake ../ && make -j $(nproc)
-- The C compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found Git: /usr/bin/git (found version "2.25.1")
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for module 'glib-2.0'
-- Found glib-2.0, version 2.64.6
-- Checking for module 'gtk+-3.0'
-- Found gtk+-3.0, version 3.24.20
-- Checking for module 'gthread-2.0'
-- Found gthread-2.0, version 2.64.6
-- Checking for module 'gtkdatabox'
-- Found gtkdatabox, version 1.0.0
-- Checking for module 'fftw3'
-- Found fftw3, version 3.3.8
-- Checking for module 'libxml-2.0'
-- Found libxml-2.0, version 2.9.10
-- Checking for module 'libcurl'
-- Found libcurl, version 7.68.0
-- Checking for module 'jansson'
-- Found jansson, version 2.12
-- Checking for module 'matio'
-- Found matio, version 1.5.17
-- Configuring done
-- Generating done
-- Build files have been written to: /path/to/iio-oscilloscope/build
Scanning dependencies of target osc
[ 1%] Building C object CMakeFiles/osc.dir/osc.c.o
[ 8%] Building C object CMakeFiles/osc.dir/datatypes.c.o
[ 8%] Building C object CMakeFiles/osc.dir/oscplot.c.o
[ 8%] Building C object CMakeFiles/osc.dir/iio_utils.c.o
[ 8%] Building C object CMakeFiles/osc.dir/fru.c.o
[ 8%] Building C object CMakeFiles/osc.dir/iio_widget.c.o
[ 9%] Building C object CMakeFiles/osc.dir/dialogs.c.o
[ 9%] Building C object CMakeFiles/osc.dir/trigger_dialog.c.o
[ 10%] Building C object CMakeFiles/osc.dir/xml_utils.c.o
[ 12%] Building C object CMakeFiles/osc.dir/libini/libini.c.o
[ 13%] Building C object CMakeFiles/osc.dir/libini2.c.o
[ 14%] Building C object CMakeFiles/osc.dir/phone_home.c.o
[ 15%] Building C object CMakeFiles/osc.dir/plugins/dac_data_manager.c.o
[ 16%] Building C object CMakeFiles/osc.dir/plugins/fir_filter.c.o
[ 18%] Building C object CMakeFiles/osc.dir/eeprom.c.o
[ 19%] Building C object CMakeFiles/osc.dir/osc_preferences.c.o
[ 20%] Linking C shared library libosc.so
[ 20%] Built target osc
Scanning dependencies of target adrv9002
Scanning dependencies of target ad6676
Scanning dependencies of target fmcadc3
Scanning dependencies of target cf_axi_tdd
Scanning dependencies of target ad9371_adv
Scanning dependencies of target xmw
Scanning dependencies of target fmcomms6
Scanning dependencies of target oscmain
[ 21%] Building C object plugins/CMakeFiles/xmw.dir/xmw.c.o
[ 22%] Building C object plugins/CMakeFiles/cf_axi_tdd.dir/cf_axi_tdd.c.o
[ 28%] Building C object plugins/CMakeFiles/fmcadc3.dir/fmcadc3.c.o
[ 28%] Building C object plugins/CMakeFiles/adrv9002.dir/adrv9002.c.o
[ 28%] Building C object plugins/CMakeFiles/fmcomms6.dir/fmcomms6.c.o
[ 28%] Building C object CMakeFiles/oscmain.dir/oscmain.c.o
[ 28%] Building C object plugins/CMakeFiles/ad6676.dir/ad6676.c.o
[ 30%] Building C object plugins/CMakeFiles/ad9371_adv.dir/ad9371_adv.c.o
[ 31%] Linking C shared library cf_axi_tdd.so
[ 32%] Linking C shared library xmw.so
[ 33%] Linking C shared library fmcadc3.so
[ 34%] Linking C shared library fmcomms6.so
[ 36%] Linking C shared library ad6676.so
[ 37%] Linking C executable osc
[ 38%] Linking C shared library ad9371_adv.so
[ 38%] Built target cf_axi_tdd
[ 38%] Built target fmcadc3
[ 38%] Built target xmw
[ 38%] Built target fmcomms6
Scanning dependencies of target adrv9009_adv
Scanning dependencies of target lidar
Scanning dependencies of target fmcomms2_adv
Scanning dependencies of target fmcomms11
[ 38%] Built target ad6676
Scanning dependencies of target pr_config
[ 39%] Linking C shared library adrv9002.so
[ 39%] Built target ad9371_adv
Scanning dependencies of target fmcomms1
[ 39%] Built target adrv9002
Scanning dependencies of target adrv9009
[ 39%] Built target oscmain
Scanning dependencies of target fmcomms5
[ 40%] Building C object plugins/CMakeFiles/lidar.dir/lidar.c.o
[ 42%] Building C object plugins/CMakeFiles/adrv9009_adv.dir/adrv9009_adv.c.o
[ 44%] Building C object plugins/CMakeFiles/fmcomms11.dir/fmcomms11.c.o
[ 44%] Building C object plugins/CMakeFiles/fmcomms2_adv.dir/fmcomms2_adv.c.o
[ 45%] Building C object plugins/CMakeFiles/pr_config.dir/pr_config.c.o
[ 46%] Building C object plugins/CMakeFiles/fmcomms1.dir/fmcomms1.c.o
[ 48%] Building C object plugins/CMakeFiles/adrv9009.dir/adrv9009.c.o
[ 49%] Building C object plugins/CMakeFiles/fmcomms5.dir/fmcomms5.c.o
[ 50%] Linking C shared library lidar.so
[ 51%] Linking C shared library fmcomms11.so
[ 53%] Linking C shared library pr_config.so
[ 54%] Linking C shared library adrv9009_adv.so
[ 55%] Linking C shared library fmcomms2_adv.so
[ 55%] Built target lidar
[ 55%] Built target fmcomms11
Scanning dependencies of target cn0540
[ 55%] Built target pr_config
Scanning dependencies of target generic_dac
[ 55%] Built target adrv9009_adv
Scanning dependencies of target ad9371
Scanning dependencies of target scpi
[ 55%] Built target fmcomms2_adv
Scanning dependencies of target ad9739a
[ 56%] Linking C shared library fmcomms1.so
[ 57%] Linking C shared library adrv9009.so
[ 59%] Linking C shared library fmcomms5.so
[ 59%] Built target fmcomms1
[ 59%] Built target adrv9009
Scanning dependencies of target daq2
Scanning dependencies of target dmm
[ 59%] Built target fmcomms5
Scanning dependencies of target AD5628_1
[ 60%] Building C object plugins/CMakeFiles/cn0540.dir/cn0540.c.o
[ 61%] Building C object plugins/CMakeFiles/generic_dac.dir/generic_dac.c.o
[ 62%] Building C object plugins/CMakeFiles/scpi.dir/scpi.c.o
[ 63%] Building C object plugins/CMakeFiles/ad9371.dir/ad9371.c.o
[ 65%] Building C object plugins/CMakeFiles/ad9739a.dir/ad9739a.c.o
[ 66%] Linking C shared library generic_dac.so
[ 67%] Linking C shared library cn0540.so
[ 67%] Built target generic_dac
Scanning dependencies of target fmcomms2
[ 68%] Linking C shared library scpi.so
[ 69%] Linking C shared library ad9739a.so
[ 69%] Built target cn0540
[ 71%] Building C object plugins/CMakeFiles/dmm.dir/dmm.c.o
[ 72%] Building C object plugins/CMakeFiles/daq2.dir/daq2.c.o
Scanning dependencies of target spectrum_analyzer
[ 73%] Building C object plugins/CMakeFiles/AD5628_1.dir/AD5628_1.c.o
[ 74%] Linking C shared library ad9371.so
[ 74%] Built target scpi
Scanning dependencies of target cn0357
[ 74%] Built target ad9739a
Scanning dependencies of target cn0508
[ 75%] Linking C shared library AD5628_1.so
[ 75%] Built target ad9371
[ 77%] Linking C shared library dmm.so
Scanning dependencies of target ad9084
[ 78%] Linking C shared library daq2.so
[ 78%] Built target AD5628_1
[ 78%] Built target dmm
Scanning dependencies of target ad9081
Scanning dependencies of target cn0511
[ 78%] Built target daq2
Scanning dependencies of target motor_control
[ 79%] Building C object plugins/CMakeFiles/fmcomms2.dir/fmcomms2.c.o
[ 80%] Building C object plugins/CMakeFiles/spectrum_analyzer.dir/spectrum_analyzer.c.o
[ 81%] Building C object plugins/CMakeFiles/cn0357.dir/cn0357.c.o
[ 83%] Building C object plugins/CMakeFiles/cn0508.dir/cn0508.c.o
[ 84%] Linking C shared library spectrum_analyzer.so
[ 85%] Building C object plugins/CMakeFiles/ad9084.dir/ad9084.c.o
[ 86%] Linking C shared library cn0357.so
[ 89%] Building C object plugins/CMakeFiles/ad9081.dir/ad9081.c.o
[ 89%] Building C object plugins/CMakeFiles/cn0511.dir/cn0511.c.o
[ 90%] Linking C shared library cn0508.so
[ 90%] Built target spectrum_analyzer
Scanning dependencies of target debug
[ 91%] Building C object plugins/CMakeFiles/motor_control.dir/motor_control.c.o
[ 92%] Linking C shared library fmcomms2.so
[ 92%] Built target cn0357
[ 92%] Built target cn0508
[ 93%] Linking C shared library ad9084.so
[ 95%] Linking C shared library cn0511.so
[ 95%] Built target fmcomms2
[ 96%] Linking C shared library ad9081.so
[ 96%] Built target ad9084
[ 96%] Built target cn0511
[ 96%] Built target ad9081
[ 97%] Linking C shared library motor_control.so
[ 97%] Built target motor_control
[ 98%] Building C object plugins/CMakeFiles/debug.dir/debug.c.o
[100%] Linking C shared library debug.so
[100%] Built target debug
Do you have any other possible solutions to this problem?
I also tried to install IIO oscilloscope with this link on a windows laptop but I get the following error:
Is there any other software to install or is the problem with the USRP E312?
Thank you very much,
Regards,
Rémi
Hi RemiL ,
You will have to set XPAR_XUARTPS_0_INTR in the following define:
then, you should be able to connect with osc to the system.
Regards,
George
Hi danmois ,
Thank you for your reply.
I tried to replace XPAR_XUARTPS_1_INTR by XPAR_XUARTPS_0_INTR in the define L107
of the file parameters.h but i get exactly the same errors as before on WSL and Windows.
Have I forgotten something? How can I solve this?
Thank you,
Regards,
Rémi
Hi, Rémi.
If you'd like to retry building libserialport from source on your Ubuntu 20.04 machine , these are the steps that you need to follow:
1. Install the packages required by autotools:
sudo apt-get install autotools-dev autoconf libtool
2. Clone the libserial port repo and build the library:
git clone https://github.com/sigrokproject/libserialport.git
cd libserialport
./autogen.sh
./configure --prefix=/usr
make
sudo make install
This should get rid of the initial "inappropriate ioctl for device" error that you have reported.
After you have built it, you can proceed to rebuilding libiio with the serial backend enabled and finally, rebuilding iio-oscilloscope.
We hope this fixes your issue and you'll be able to connect to your device.
-Cristina
Hi csuteu ,
Sure, I can do that.
However, I get stuck when I try to execute the command ./autogen.sh
I have the following error:
/path/to/libserialport$ ./autogen.sh
/bin/sh: 0: Illegal option -
Do you know how I can avoid this mistake?
Thank you,
Regards,
Rémi
Is this the entire error message ? If not, could you include the complete error ?
Are you running Ubuntu natively or through Windows WSL?
What shell are you using ? What is printed when you type echo $SHELL ?
Yes, this is the complete error.
I'm on Windows WSL (Ubuntu 20.04, Kernel 5.10.102.1, Windows 10)
The result of echo $SHELL is /bin/bash.
Regards,
Rémi
Hi csuteu ,
I've managed to solve the SHELL problem.
The problem of ./autogen.sh comes from the fact that I was on the m aste r branch of libserialport.
When I used the latest libserialport-0.1.1 tag, it worked perfectly.
As well as for libiio with the tag v0.24 and libad9361-iio with the tag v0.3
So I rebuilt liibio and iio-oscilloscope.
However, I get exactly the same errors.
Do you have any other options for solving this problem? Thank you for the time you took to solve my problem.
Regards,
Rémi
Hi csuteu ,
I've managed to solve the SHELL problem.
The problem of ./autogen.sh comes from the fact that I was on the m aste r branch of libserialport.
When I used the latest libserialport-0.1.1 tag, it worked perfectly.
As well as for libiio with the tag v0.24 and libad9361-iio with the tag v0.3
So I rebuilt liibio and iio-oscilloscope.
However, I get exactly the same errors.
Do you have any other options for solving this problem? Thank you for the time you took to solve my problem.
Regards,
Rémi
Hi, Rémi.
When you say you get the exact same error, do you mean "the inappropriate ioctl for the device" or the ""Could not get iio context: Unknown error"?
This is because the fix that resolved this issue is not included in version 0.1.1 of libserialport.
Could you try to build this specific commit instead of building the ma ster branch ?
git clone https://github.com/sigrokproject/libserialport.git
cd libserialport
git checkout 6f9b03e
./autogen.sh
./configure --prefix=/usr
make
sudo make install
Then you will have to rebuild libiio, and osc once again.
Let me know if this works for you.
Thanks.
-Cristina
Thank you for your reply.
I put myself on the 6f9b03e branch for libserialport as advised.
I rebuilt libiio and iio oscilloscope with the branches v0.24 and orign/ma ster.
But I still get the same error: inappropriate ioctl for the device
Could the error come from USRP E312?
Could this thread help? RE: serial connection with iio oscilloscope
In particular, this post:
When I run ldd $(which iio_info), i get: libserialport.so.0 => /lib/x86_64-linux-gnu/libserialport.so.0 (0x00007f8e51140000)
Should /usr be replaced by /lib/x86_64-linux-gnu/?
Thank you very much for all these answers.
Regards,
Rémi
The first thing that you want to do, is get a clean envinroment. It is possible that even though you have installed the correct version of libserialport at /usr/ location (the one that you compiled from the specific commit), the package that you installed via apt-get is still in the /lib/x86_64-linux-gnu , thus causing libiio to link to it and your subsequent error.
My recommendation is this : delete every instance of libserialport that is on your machine (in /usr/ ; in /lib/x86_64-linux-gnu ; etc). After this, rebuild the specific commit of libserialport as indicated. Install the rest of libiio's dependencies but make sure that you SKIP installing libserialport via apt-get.
Then you can proceed to build libiio and IIO-Oscilloscope. If you're still using Ubuntu 20, then please pay attention to not install libgtkdatabox via apt-get.
Instead you will have to do the following:
wget https://downloads.sourceforge.net/project/gtkdatabox/gtkdatabox-1/gtkdatabox-1.0.0.tar.gz
tar xvf gtkdatabox-1.0.0.tar.gz
cd gtkdatabox-1.0.0
./configure
(sudo) make install
If you have managed to build the app, please mark one of the replies as an answer to this thread. Alternatively, if you figured out another solution on your own, please reply with it and mark that as an answer.
Thank you.
--Cristina
Hi csuteu ,
Thank you very much for your help. Now IIO Oscilloscope works well like on my Windows computer.
I therefore did a sudo apt remove libserialport-dev to remove everything related to libserialport, and it worked.
Anyway, thank you for your patience and your help.
Furthermore, I have other issues with IIO Oscilloscope that I've posted in the following thread: USRP E312 (AD9361 - Zynq 7020) - Can't choose RF Port Select - IIO Oscilloscope
Thank you,
Regards,
Rémi