Search code examples
gnuradiognuradio-companion

GNU Radio TypeError: primitive_connect(): incompatible function arguments when executing simple graph


When trying to execute the following graph I get the error below. Any ideas what might be causing this? I'm on Ubuntu 20.10.

Simple GNU Radio graph

<<< Welcome to GNU Radio Companion 3.9.0.0-git >>>

Block paths:
    /usr/share/gnuradio/grc/blocks

Loading: "/home/gnuradiouser/Dev/SDR/Lesson 1.grc"
>>> Done

Generating: '/home/gnuradiouser/Dev/SDR/Lesson_1.py'

Executing: /usr/bin/python3 -u /home/gnuradiouser/Dev/SDR/Lesson_1.py

Warning: failed to XInitThreads()
gr-osmosdr 0.2.0.0 (0.2.0) gnuradio 3.8.1.0
built-in source types: file fcd rtl rtl_tcp uhd hackrf bladerf rfspace airspy airspyhf soapy redpitaya freesrp 
[INFO] [UHD] linux; GNU C++ version 10.2.0; Boost_107100; UHD_3.15.0.0-3build2
Using HackRF One with firmware 2018.01.1
Traceback (most recent call last):
  File "/home/gnuradiouser/Dev/SDR/Lesson_1.py", line 193, in <module>
    main()
  File "/home/gnuradiouser/Dev/SDR/Lesson_1.py", line 169, in main
    tb = top_block_cls()
  File "/home/gnuradiouser/Dev/SDR/Lesson_1.py", line 142, in __init__
    self.connect((self.osmosdr_source_0, 0), (self.qtgui_freq_sink_x_0, 0))
  File "/usr/lib/python3/dist-packages/gnuradio/gr/hier_block2.py", line 37, in wrapped
    func(self, src, src_port, dst, dst_port)
  File "/usr/lib/python3/dist-packages/gnuradio/gr/hier_block2.py", line 100, in connect
    self.primitive_connect(*args)
TypeError: primitive_connect(): incompatible function arguments. The following argument types are supported:
    1. (self: gnuradio.gr.gr_python.hier_block2_pb, block: gnuradio.gr.gr_python.basic_block) -> None
    2. (self: gnuradio.gr.gr_python.hier_block2_pb, src: gnuradio.gr.gr_python.basic_block, src_port: int, dst: gnuradio.gr.gr_python.basic_block, dst_port: int) -> None

Invoked with: <gnuradio.gr.gr_python.top_block_pb object at 0x7fac59391970>, <Swig Object of type 'gr::basic_block_sptr *' at 0x7fac575a4990>, 0, <gnuradio.gr.gr_python.basic_block object at 0x7fac5953a1f0>, 0
swig/python detected a memory leak of type 'gr::basic_block_sptr *', no destructor found.

>>> Done (return code 1)

I'm new to GNU Radio, so not sure where to start troubleshooting this issue. I've tried plugging in a signal generator instead of the osmocom source, and got the graph to execute, so I'm guessing there's a bad parameter in the osmocom object or a bad version of a library?

I've also tried installing an earlier version of GNU Radio (3.7 and 3.8), but couldn't get that going on Ubuntu 20.10.


Solution

  • Managed to resolve this, by uninstalling GNU Radio and removing the 'master' ppa repository sudo add-apt-repository ppa:gnuradio/gnuradio-master, which was in one of the installation instructions I came across.

    After that I simply installed GNU Radio using the standard 20.10 repositories and all works fine now.