Tutorials: hardware and software

Our objective with the tutorials is for the participant to have acces to hands-on experience to the experiments described by the presenters. While some hardware with readily available software will be provided on site, participants willing to bring their own laptop are most welcome. We expect an up-to-date installation of GNU Radio with support for the RTL-SDR DVB-T dongles as well as the PlutoSDR peripheral.

For those willing to install the necessary tools on their GNU/Linux personal computer, a detailed description of the necessary tools is given on the Analog Devices Wiki page at https://wiki.analog.com/grdayseu2019.

A VirtualBox image is being assembled to make sure all participants have access to the same tools, with readily installed computers provided to those not bringing their own. The image is being updated as functionalities are tested and added. We assume a working VirtualBox environment including the Extension Pack (root password = root).

The configuration we are planning on using is:

  • PlutoSDR: IP set to 192.168.2.1 matching the IP address on the guest OS of the ad0 interface 192.168.2.10 [1]
  • host IP address: the host vboxnet0 IP address (e.g. 192.168.56.1) must lie on the same subnet than the guest OS enp0s8 interface IP address (192.168.56.2)

Testing the installation:

  1.  launch VirtualBox and load the image provided above
  2. From the host PC, ping the guest OS with ping 192.168.56.2
  3. From the guest OS, ping the host PC using ping 192.168.56.1 (if that address was the one given to the vboxnet0 interface)
  4. if a PlutoSDR is available, communication can be tested by ping 192.168.2.1 from the guest OS
  5. the gnuradio-companions flowcharts are available in the gnuradiocompanion sub-directory: for example, pluto.grc should display a spectrum of the signal collected in the commercial broadcast FM band
  6. we have identified a limitation of VirtualBox in playing sound. To listen to a station, please run pluto_for_host.grc on the host. The 0MQ framework is used to transfer the demodulated audio signal from the guest OS to the host OS in charge of playing sound.

The setup was tested on a Debian sid GNU/Linux host.

VirtualBox screenshort

If USB identification is prefered over ethernet-over-USB, check the Pluto identifer with iio_info -s which should provide the 3 digit USB identifier of the PlutoSDR.

 Users willing to bring their own hardware are expected to provide a functional GNU/Linux distribution (MS-Windows will most probably not be compatible with the development tutorials: on such an operating system, please install VirtiualBox and install the image provided above). Debian GNU/Linux is the preferred distribution. On such an environment, we have installed

apt-get install gnuradio gnuradio-dev

and dependencies. Then install libiio, libad9361 and gr-iio by running in each archive directory

  • mkdir build
  • cd build
  • cmake -DCMAKE_INSTALL_PATH=/usr -DWITH_USB_BACKEND=1 ../
  • make
  • sudo make install

Finally, launch gnuradio-companion and check that the PlutoSDR Sink & Souce blocks are available.

Because ENSMM is only fitted with computers running MS-Windows, we managed to get the PlutoSDR working on the VirtualBox guest Debian/GNU Linux OS while communicating with the host OS through the local network and the PlutoSDR through NAT. As demos, here are two videos demonstrating the use of GNU Radio (no sound, but the FM broadcast station sound can actually be heard from the speakers under MS-Windows control) and iio-scope.

[1] Automagically creating the ad0 interface with a known IP address upon plugging in the PlutoSDR is achieved by adding an udev rule in /etc/udev/rules.d including the line

ATTRS{idVendor}=="0456", ATTRS{idProduct}=="b673", NAME="ad0", RUN+="/sbin/modprobe cdc_ether"             RUN+="/bin/sh -c 'ifconfig ad0 192.168.2.10'"

to configure ad0 with IP 192.168.2.10. If the configuration fails, check that the VID/PID of the Pluto match the information provided here.

Online user: 1