IIO Oscilloscope
About
The ADI IIO Oscilloscope is a cross platform GUI application, which
demonstrates how to interface different evaluation boards from within a
Linux system. The application supports plotting of the captured data in
four different modes (time domain, frequency domain, constellation and
crosscorrelation). The application also allows to view and modify several settings of the
evaluation board's devices.
Installation
Download IIOOscilloscope
Latest releases (goto this page to download the file):
https://github.com/analogdevicesinc/iiooscilloscope/releases
Historic releases:
IIO Oscilloscope for Windows v0.6
Download: adioscmastersetup.exe
IIO Oscilloscope for Windows v0.5
Download: adioscmastersetup.exe
IIO Oscilloscope for Windows v0.32015_R2
Download: adiosc2015_R2setup.exe
IIO Oscilloscope for Windows v0.22015_R1
Download: adiosc2015_R1setup.exe
IIO Oscilloscope (OSC) for Win32 & Win64 (2014_R2 Alpha PreRelease)
Download: adioscsetup.exe
18 Mar 2016 15:24 ꞏ LucianS
Linux
For building on the target, we recommend using the update scripts. This is a tried/proven
method that does everything in a quick script.
To build on a host, do not use the script, you must:
1. make sure the following libraries are installed. This list is maintained in
the adi_update_tools.sh shell script, and can be copied/pasted to most Debian
based distributions. For others make sure they are installed, or the below steps will
not work. If you are not sure how to do this consult your distribution
documentation. file: adi_update_tools.sh
> aptget y install libglib2.0dev libgtk2.0dev libgtkdataboxdev
libmatiodev libfftw3dev libxml2 libxml2dev bison flex libavahi
commondev libavahiclientdev libcurl4openssldev libjanssondev
cmake libaiodev
2. build and install the libiio library, by following these instructions. Make sure you
do the final make install.
3. build and install the libad9361iio library, by following these instructions.
4. download the source
> git clone https://github.com/analogdevicesinc/iiooscilloscope.git
> cd iiooscilloscope
> git checkout origin/master
Or, download a zip, and uncompress it:
rgetz@pinky:~$ wget https://github.com/analogdevicesinc/iio
oscilloscope/archive/master.zip
rgetz@pinky:~$ unzip master.zip
rgetz@pinky:~/iiooscilloscope$ cd iiooscilloscope
5. and run `make` and `make install`. If you did not do a make install of the libiio,
the libiio install location needs to be set in your path ie: (PATH=/usr/lib:$PATH“) or
else an error “Package libiio not found..” will occur.
rgetz@pinky:~/iiooscilloscope$ mkdir build && cd build
rgetz@pinky:~/iiooscilloscope$ cmake ../ && make j $(nproc)
rgetz@pinky:~/iiooscilloscope$ sudo make install
6. if you don't want to do a make install (sometimes I don't), you will need to make
sure that the most recently built shared libraries can be found, by setting
the LD_LIBRARY_PATH environmental variable.
rgetz@pinky:~/iiooscilloscope$ export LD_LIBRARY_PATH=./
otherwise you may get an error like this:
rgetz@pinky:~/iiooscilloscope$ ./osc
./osc: error while loading shared libraries: libosc.so: cannot open
shared object file:
No such file or directory
Or, worse case, when you are debugging things, you will see your modified source code,
but it will be running/executing the older shared shared object which was loaded (since it
didn't find things in the library path).
macOS
For macOS install libiio and libad9361 from source or using pkg's on the associated
release pages. If you are using the pkg's make the version used by libad9361 is the same
as the release of libiio you download.
libad9361 libiio
Then using brew install IIOScope:
brew install HEAD tfcollins/homebrewformulae/iiooscilloscope
User guide
Launching the application
Running Local
The application can run locally which means it runs on the same platform where your
device is connected.
To start the IIO Oscilloscope open up the start menu of your system and search for “IIO
Oscilloscope”. E.g. if you are using a Ubuntu Linux system move your mouse cursor to the
left side of your screen and “Dash home” button and type “IIO Oscilloscope” into the
search box.
Running Remote
The application can be used to connect to another platform that has a connected device in
order to configure the device and read data from it. You can connect in 3 different ways:
1. Manually:
This specifies any shell prompt running on the host or target Run IIO Oscilloscope in
remote mode
> export OSC_REMOTE=IP address of the remote platform (old)
> export IIOD_REMOTE=IP address of the remote platform (new)
> osc
2. Settings → Connect and enter the IP address in the popup window, and click
“OK” or “Refresh”.
3. Settings → Connect and click “Refresh” with a blank IP number. If your network
supports zeroconf1), you will be connected to the device on the network.
Using the application
Main Window
Each plugin (or tab) can be
detached from the main window
simply by clicking on the button
placed on the right side of the name of the plugin. Close the detached window to attach
the plugin back to the main window.
The Main Window is designed to display a configuration panel (plugin) for each device
recognized by the system. Additional plugins will be loaded for device debugging and
monitoring purposes such as:
DMM Tab/Plugin
The DMM Plugin: The Digital
Multimeter continuously displays
device specific data once the start
button is activated.
Device tab: Displays
the list of all available
devices.
Active
channels tab:Displays the
list of channels that belong
to the enabled devices. All
channels can be enabled simultaneously by using the All Channels button.
Right side tab: Displays data readings of the enabled channels in Active
channels tab.
Debug Tab/Plugin
Debug Plugin: Is a tool for device
debugging. Since “normal” users
should not be doing this, features
on this tab may not work unless
you have started
the osc application as root
(try sudo osc in a terminal).
Device
Selection: Sets the active
device. Once a device is
selected any other
information displayed in the plugin is related to this particular device.
IIO Device Attributes: Allows Read/Write operation for the attributes of a
device.
Register: Provides low level access to the registers of the device.
Detailed Register Map: When enabled it displays a graphical
representation of a register and groups the bits by their
functionality. When disabled the newly displayed option (Register
Map Type) allows the selection of the register map to be
used. SPI registers refer to the internal registers of the device
while the AXI Core registers belong to the HDL core associated
with the device.
Enable AutoRead: When enabled it allows the register to be
read automatically as the register address changes.
Address: The address of the register.
Value: The value of the register at the given address.
Hardware Specific Tab/Plugins
There may be hardware specific plugins/tabs, specific to the platform you are running on.
Here are a few:
Capture Window
The Capture Window is where device data is displayed.
Capture Window Settings
Plot Title: Click Edit→Plot Title to
Show Settings: Click View→Show Settings to
Menu (Along top of the capture/plot window).
File
Edit
View
Save As : Saves data to file.
Quit : Close the capture/plot window
Plot Title : Change the name of the window.
Show Settings : show/hide all settings in the
left panel and allow the plot to fill the entire window.
Full Screen : Will make the window full
screen.
Settings
Device list: Lists all available ADCs and the corresponding
channels. It allows selecting the channels to be displayed.
Plot type
Time domain: Plots the signal in the time
domain. Displays the raw samples.
Sample count: Selects the
number of samples for time domain,
constellation and crosscorrelation
plotting
Graph Type: Selects the type of
all graphs: lines or dots.
Frequency domain: Plots the signal in the
frequency domain. Performs a FFT on the signal
and displays it.
FFT size: Selects the size of the
FFT for frequency domain plotting
FFT Average: Selects the
average weight to be applied to the
FFT samples.
PWR Offset: Selects the offset of
the FFT graph.
Constellation: Plots the signal as a
constellation plot. The Ichannel will be plotted on
the Xaxis and the Qchannel on the Yaxis.
Sample count: Selects the
number of samples for time domain,
constellation and crosscorrelation
plotting
Graph Type: Selects the type of
all graphs: lines or dots.
Cross Correlation: Plots the signal as a
crosscorrelation plot.
Sample count: Selects the
number of samples for time domain,
constellation and crosscorrelation
plotting
Graph Type: Selects the type of
all graphs: lines or dots.
Info
Markers : Displays marker measurements.
Devices : Displays Device info (sample rate)
Plot Options/Icons (along top of window)
Capture/stop : Starts or stops the data capture.
Zoom In : Zooms in on a region of the plot.