# Patching airprobe to compile with GNURadio 3.7

**URL:** <https://www.ruby-forum.com/t/patching-airprobe-to-compile-with-gnuradio-3-7/233201>\
**Category:** GNU Radio\
**Created:** [November 23, 2014, 11:35pm UTC](https://www.ruby-forum.com/t/patching-airprobe-to-compile-with-gnuradio-3-7/233201 "2014-11-23T23:35:35Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![addis\_a](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@addis\_a](https://www.ruby-forum.com/u/addis_a)\
**Post date:** [November 23, 2014, 11:35pm UTC](https://www.ruby-forum.com/t/patching-airprobe-to-compile-with-gnuradio-3-7/233201/1 "2014-11-23T23:35:35Z")

</div>

Hey, I’ve spent the last couple of days trying to get airprobe rtl GSM  
software to work with the new GNU Radio.  
I made a patch to grcompat to fill in the missing functions:

> **[GitHub - genjix/grcompat: Compatability layer for various gnuradio APIs and...](https://github.com/genjix/grcompat)**
>
> Compatability layer for various gnuradio APIs and libraries - GitHub - genjix/grcompat: Compatability layer for various gnuradio APIs and libraries

And have got ported the gsm module for gsm-receive/src/lib/ to work. And  
I’ve ported gsm\_receive\_rtl for all the changes in module structure in  
GNU Radio. Now the program opens but I’m stuck at one last step.

Here is the line giving me difficulty:

> <https://github.com/genjix/airprobe/blob/master/gsm-receiver/src/python/gsm_receive_rtl.py#L98>

#self.connect(self.src, self.tuner, self.interpolator, self.receiver,  
self.converter, self.output)  
self.connect(self.src, self.tuner, self.interpolator)

I’ve commented the original which gives me this error:

configure\_receiver  
Traceback (most recent call last):  
File “./gsm\_receive\_rtl.py”, line 232, in   
tb = top\_block()  
File “./gsm\_receive\_rtl.py”, line 99, in **init**  
self.connect(self.src, self.tuner, self.interpolator, self.receiver)  
File “/usr/local/lib/python2.7/dist-packages/gnuradio/gr/top\_block.py”,  
line 131, in connect  
self.\_connect(points[i-1], points[i])  
File “/usr/local/lib/python2.7/dist-packages/gnuradio/gr/top\_block.py”,  
line 141, in \_connect  
(dst\_block, dst\_port) = self.\_coerce\_endpoint(dst)  
File “/usr/local/lib/python2.7/dist-packages/gnuradio/gr/top\_block.py”,  
line 152, in \_coerce\_endpoint  
raise ValueError(“unable to coerce endpoint”)  
ValueError: unable to coerce endpoint

Here is the source for the self.receiver type (a custom block for GSM  
receiving):

> <https://github.com/genjix/airprobe/blob/master/gsm-receiver/src/lib/gsm_receiver_cf.cc#L305>

Any clues? What is the problem with gsm\_receiver\_cf that GNU Radio gives  
that error? It used to work with 3.6…

Thanks

---

<div class="post-metadata">

**Author:** ![jkkjjkjk\_kjjkjkjkj](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/b782af/32.png) [@jkkjjkjk\_kjjkjkjkj](https://www.ruby-forum.com/u/jkkjjkjk_kjjkjkjkj)\
**Post date:** [November 24, 2014, 7:03pm UTC](https://www.ruby-forum.com/t/patching-airprobe-to-compile-with-gnuradio-3-7/233201/2 "2014-11-24T19:03:47Z")

</div>

On Sun, Nov 23, 2014 at 5:10 PM, jkkjjkjk kjjkjkjkj [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> 

> <https://github.com/genjix/airprobe/blob/master/gsm-receiver/src/python/gsm_receive_rtl.py#L98>

> tb = top\_block()  
> raise ValueError(“unable to coerce endpoint”)
> 
> Thanks

This is why I’m against these kinds of compatibility headers. They just  
encourage the use of a project without ever updating it. As things  
continue  
to move in the main development, you can get left behind. Honestly, your  
work to fix the grcompat header would have been better spent updating  
airprobe. You’ve seen how it’s just simple semantic/namespace changes by  
updating grcompat. Updating this code should not be difficult and would  
then make it more clear what kind of issues are going wrong. As it is,  
we  
have a third layer in between this code and GNU Radio obscuring things.

Tom
