GNUradio errors

I'm running Ubuntu 20.04, GNUradio 3.8.1.0 and a PlutoSDR+ (AD9363), trying to get everything to play nice with eachother. My unit has 2 TX and RX, Ethernet and a better clock.

I can ping and change settings on the Pluto with OpenSSH. I unlocked the CPU and set the Pluto to 9361 2x2 mode. I installed GNUradio 3.8.1 with gr-iio from libiio and libad9361. I then made the pythonpath permanent and GNUradio sees both the iio modules directory and the programming blocks. But when I try to execute either flowgraph from this I get the following errors in GNUradio:


FMCOMMS block error:

Warning: failed to XInitThreads()
Traceback (most recent call last):
  File "/home/puddle/GNUradio projects/Pluto.py", line 134, in <module>
    main()
  File "/home/puddle/GNUradio projects/Pluto.py", line 110, in main
    tb = top_block_cls()
  File "/home/puddle/GNUradio projects/Pluto.py", line 76, in __init__
    self.iio_fmcomms2_source_0 = iio.fmcomms2_source_f32c('ip:pluto.local', 2400000000, 2084000, 20000000, True, True, 32768, True, True, True, 'manual', 64, 'manual', 64, 'A_BALANCED', '', True)
  File "/usr/local/lib/python3/dist-packages/iio/iio_swig.py", line 199, in make
    return _iio_swig.fmcomms2_source_f32c_make(*args, **kwargs)
RuntimeError: Channel not found


PlutoSDR block error:

Warning: failed to XInitThreads()
ERROR: Unable to find host: Temporary failure in name resolution
ERROR: Unable to find host: Name or service not known
Traceback (most recent call last):
  File "/home/puddle/GNUradio projects/plutosdrsource.py", line 134, in <module>
    main()
  File "/home/puddle/GNUradio projects/plutosdrsource.py", line 110, in main
    tb = top_block_cls()
  File "/home/puddle/GNUradio projects/plutosdrsource.py", line 78, in __init__
    self.iio_pluto_sink_0 = iio.pluto_sink('ip:local.pluto', 2400000000, 2084000, 20000000, 32768, False, 10.0, '', True)
  File "/usr/local/lib/python3/dist-packages/iio/iio_pluto_sink_swig.py", line 92, in make
    return _iio_pluto_sink_swig.pluto_sink_make(*args, **kwargs)
RuntimeError: Unable to create context

And I have no idea where to go from here. I just want throughput in and out to verify that it's working. Any help would be appreciated.

Parents
  • 0
    •  Analog Employees 
    on Apr 19, 2021 3:17 PM

    Regarding accessing 2Tx/2Rx Pluto using an FMCOMMS block, how did you enable the second Tx and Rx? Can you access the attributes for the second channel using iio_attr?

  • Hello Srikanth

    That solved it, thank you. The flowgraph executes now and I can see a signal, but I still get 'Warning: failed to XInitThreads()' - does this matter?

    Edit: nevermind.

    About channels, I followed this and used:

    #fw_setenv attr_name compatible
    #fw_setenv attr_val 9361
    #fw_setenv compatible ad9361
    #fw_setenv mode 2r2t
    #reboot

    I poked around with the iio_attr but I'm not sure what it's telling me, lots of attributes and channels. Which iio_attr -command should I use?

  • 0
    •  Analog Employees 
    on Apr 19, 2021 4:34 PM in reply to DanielD

    The flowgraph executes now and I can see a signal, but I still get 'Warning: failed to XInitThreads()' - does this matter?

    This is a GNU Radio issue and has to do with X forwarding - github.com/.../4030. It looks for Xlib.

    Can you provide the output when you run 'iio_attr -c ad9361-phy' either on the board or from the host machine by providing it the ip/usb context of Pluto? 

  • I will look into Xlib, thank you. I did this on the Pluto:

    # iio_attr -c ad9361-phy

    dev 'ad9361-phy', channel 'altvoltage0', id 'RX_LO' (output), found 8 channel-specific attributes
    dev 'ad9361-phy', channel 'altvoltage1', id 'TX_LO' (output), found 8 channel-specific attributes
    dev 'ad9361-phy', channel 'voltage0' (output), found 10 channel-specific attributes
    dev 'ad9361-phy', channel 'voltage0' (input), found 15 channel-specific attributes
    dev 'ad9361-phy', channel 'voltage 2' (output), found 8 channel-specific attributes
    dev 'ad9361-phy', channel 'voltage 2' (input), found 13 channel-specific attributes
    dev 'ad9361-phy', channel 'temp0' (input), found 1 channel-specific attributes
    dev 'ad9361-phy', channel 'voltage3' (output), found 8 channel-specific attributes
    dev 'ad9361-phy', channel 'out' (input), found 1 channel-specific attributes

    I assume I would have to use the FMCOMMS blocks to use the extra channel? I corrected the test flowgraph with FMCOMMS blocks to local.pluto but it still gives me errors:

    RROR: Unable to find host: Temporary failure in name resolution
    ERROR: Unable to find host: Name or service not known
    Traceback (most recent call last):
      File "/home/puddle/GNUradio projects/Pluto.py", line 136, in <module>
        main()
      File "/home/puddle/GNUradio projects/Pluto.py", line 112, in main
        tb = top_block_cls()
      File "/home/puddle/GNUradio projects/Pluto.py", line 76, in __init__
        self.iio_fmcomms2_source_0 = iio.fmcomms2_source_f32c('ip:local.pluto', 2400000000, 2084000, samp_rate, True, True, 32768, True, True, True, 'manual', 64, 'manual', 64, 'A_BALANCED', '', True)
      File "/usr/local/lib/python3/dist-packages/iio/iio_swig.py", line 199, in make
        return _iio_swig.fmcomms2_source_f32c_make(*args, **kwargs)
    RuntimeError: Unable to create context

  • 0
    •  Analog Employees 
    on Apr 19, 2021 6:36 PM in reply to DanielD

    The output of 'iio_attr -c ad9361-phy' shows only one Rx and one Tx channels. So, it appears that the second Tx/Rx channels aren't enabled. 

    The URI needs to be ip:pluto.local and not ip:local.pluto. But, without the second Tx/Rx channels enabled, you will get "RuntimeError: Channel not found" error as seen in your original post. 

  • 0
    •  Analog Employees 
    on Apr 19, 2021 7:41 PM in reply to SrikanthPagadarai

    When you run "iio_info -s", does it show that you have a Rev. C Pluto and not Rev. B?

  • It says Rev.C with Z7010 / AD9363.

    I just tried setting the mode again and it reverts to 1r1t upon rebooting. Do you know how to make it permanent?

    Edit: Making sure that the Pluto was currently in 2r2t mode, GNUradio still gave me the ''RuntimeError: Channel not found''.

Reply Children