# Gnuradio on ubuntu touch

**URL:** <https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953>\
**Category:** GNU Radio\
**Created:** [July 14, 2014, 5:21pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953 "2014-07-14T17:21:32Z")\
**Posts on this page:** 20\
**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:** [July 14, 2014, 5:21pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/1 "2014-07-14T17:21:32Z")

</div>

Is gnuradio able to run on Ubuntu Touch?

I want to use my tablet with gnuradio and rtl-sdr. Do you guys think its  
possible with Ubuntu Touch? Or there is another way to do it?

Thanks

Regis

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315.html](http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [July 14, 2014, 5:55pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/2 "2014-07-14T17:55:32Z")

</div>

Hi Regis,  
I don’t know anything about Ubuntu touch. But if it’s a proper linux,  
then yes, GNU Radio will run on it, probably.  
The question is however if your tablet is powerful enough to do  
something useful with the data, since we tend to use strong computers to  
do realtime signal processing.

Greetings,  
Marcus

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [July 14, 2014, 6:47pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/3 "2014-07-14T18:47:27Z")

</div>

Hi Marcos, thank you for your reply.

What would be the minimum required configuration for a computer to run  
gnuradio without problems?

Regis

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49325.html](http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49325.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [July 14, 2014, 6:53pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/4 "2014-07-14T18:53:25Z")

</div>

Running Linux 🙂

The thing is that GNU Radio is but a framework, and has little  
computational overhead; the load you are seeing is primarily defined by  
the signal processing you do, so I can’t answer that question.  
I like to bring up a analogy: It’s like asking what the minimum  
requirement for playing games on a computer is. If you’re only playing a  
text-based adventure, then a graphic calculator will be fine; if you’re  
aiming for photorealistic graphical effects, you will need something  
more beefy.

With best regards,  
Marcus

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 4:34am UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/5 "2014-08-06T04:34:33Z")

</div>

It might be Disk I/O is too slow. Try going from RTL-SDR source to Null  
Sink.

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 5, 2014, 11:48pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/6 "2014-08-05T23:48:19Z")

</div>

Hi Marcus, back to this discussion after a few tests.

I decided to try RTL-SDR and GNU Radio on a Single Board Computer.

I’m currently using the Banana Pi which is a ARM Cortex-A7 dual-core,  
1GHz,  
Mali400MP2 GPU, 1GB DDR3 DRAM, using a debian based system.

The first thing I tried was just a simple RTL-SDR Source to File Sink -  
just  
saving the receiving data to a file at 2e6 sample\_rate.

The problem is that I get the “0” characters on the terminal indicating  
overflow status.

I don´t know if I’m doing something wrong or if the banana pi can´t  
handle  
real-time signal process.

What do you think about that?

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49773.html](http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49773.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 2:26pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/7 "2014-08-06T14:26:03Z")

</div>

On 08/06/2014 04:56 AM, Marcus M. wrote:

> overhead, which includes at least one copy from libusb/rtl-sdr buffer  
> Greetings,  
> Marcus  
> Also, the rPI (and clones) is a pretty-anemic CPU. Think of it as being  
> about 1/5th to 1/8th as powerful as your garden variety desktop X86  
> machine.

I think the culprit here is a mix, though, as Marcus M. says.

Even a class-10 SD card is about 1/5th as fast as a good hard disk or  
SSD.

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 10:57am UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/8 "2014-08-06T10:57:46Z")

</div>

We don’t have much optimization for ARMs yet, and I assume that the  
rtl-sdr source somewhere has to convert from whatever comes through USB  
into floats. Furthermore, USB2 bulk transfer has a maximum packet length  
of 512B [citation needed], which would at an assumed 2B/complex equal  
but 256 == 2^8 Samples/package. Now let 1MS/s \approx 2^20 S/s = 2^12  
USB packets per second. That _can_ be lot for a CPU running at 1GHz,  
because a USB handler in the Kernel has to handle each of them, they  
have to be put through libusb (which is luckily very efficient) and then  
converted by rtl-sdr/gr-osmo into something that your flowgraph can deal  
with. Then you get the GNU Radio scheduling overhead, which includes at  
least one copy from libusb/rtl-sdr buffer to a GNU Radio buffer, and  
then you get the filesystem overhead, which can be significant depending  
on what kind of file system you use. Then you get the overhead of  
accessing the storage device. I don’t know the banana pi, but I’d take a  
chance and say it’s a USB storage device, so you get the same hassle as  
on the RTL dongle side, but on this side with higher data rates. Or, you  
are storing to an SD card, which could simply be too slow, as Vanush  
correctly assumes (trick: most SD cards today have a “Class N” printed  
on them; that’s a usually slightly exaggerated multiplicator for a 2MB/s  
write rate.

Greetings,  
Marcus

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 3:45pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/9 "2014-08-06T15:45:52Z")

</div>

I tried what Vanush said and just connected RTL-SDR Source to a Null  
Sink and  
got no overflows.

I’m using a class 10 sd card, that must be the problem.

I did some demodulation with no problem, but when I add a Low Pass  
Filter,  
the overflow happens again.

Would the filter do the same thing as the file sink and buffer the data  
causing the overflow?

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49799.html](http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49799.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 4:00pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/10 "2014-08-06T16:00:08Z")

</div>

On those single board computers I don’t bother writing to SD. I just  
route  
it through the network (assuming large enough bandwidth) to another  
graph  
or Python script that dumps it to a disk with faster storage bus.

You can use gr-zmqblocks for that.

On Wed, Aug 6, 2014 at 11:51 PM, Marcus Müller  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 3:52pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/11 "2014-08-06T15:52:24Z")

</div>

The overflow is not a result of buffering; in fact, buffering helps.

overflows happen because at any bottleneck in your processing chain,  
samples start to stagnate, causing back pressure. When all buffers are  
filled, there’s nothing the rtl source can do but drop samples. That’s  
an overflow.

A computationally intense filter might also lead to overflows, but here  
it’s because your CPU can’t keep up with the sample rate, whereas with  
the file sink, your storage can’t sustain the write rates.

Greetings,  
Marcus

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 4:09pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/12 "2014-08-06T16:09:40Z")

</div>

I actually don’t need to write to a file. I just did to test the  
hardware (I  
thought writing to a file would be the most simple task).

What I really want to do is demodulate the signal and measure the signal  
strength. That seems to be working fine (no overflows) as long as I  
don’t  
use a filter on the RTL-SDR Source.

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49802.html](http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49802.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 4:19pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/13 "2014-08-06T16:19:48Z")

</div>

Sample rate → 2M  
cutoff → 135k  
transition width → 10k

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49804.html](http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49804.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 4:22pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/14 "2014-08-06T16:22:47Z")

</div>

Try making the transition width sloppier, like 50k

On 2014-08-06 10:17, rejunte wrote:

> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> [Discuss-gnuradio Info Page](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio) [2]

Links:

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 4:15pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/15 "2014-08-06T16:15:38Z")

</div>

What are the parameters of your filter? Sample rate, cutoff, and  
transition width?

On 2014-08-06 10:08, rejunte wrote:

> * * *
> 
> Discuss-gnuradio mailing list  
> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> [Discuss-gnuradio Info Page](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio) [2]

Links:

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 4:32pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/16 "2014-08-06T16:32:19Z")

</div>

Tried that, but still ocurring overflow.

Another thing I had was that on my computer I was using a

complex to mag^2 → single pole IIR filter → log10 → multiply const  
(10)  
to measure the signal strength

that is also causing overflow on the single board computer. If I put a  
RMS  
block instead, no overflow occurs.

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49807.html](http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49807.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 4:49pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/17 "2014-08-06T16:49:38Z")

</div>

Try decimating after the filter, before you start computing log10 at the  
input rate. There’s no need to do those calculations at the original

sample rate once you’ve computing complex-to-mag\*\*2 and filtered.

On 2014-08-06 10:30, rejunte wrote:

> –  
> View this message in context:  
> [http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49807.html](http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49807.html) [1]  
> Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).
> 
> * * *
> 
> Discuss-gnuradio mailing list  
> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> [Discuss-gnuradio Info Page](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio) [2]

Links:

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 5:12pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/18 "2014-08-06T17:12:51Z")

</div>

doing your computations on a reduced sampling rate always makes a lot of  
sense.

Also, if you do complex to mag? prior to filtering, you get the power in  
the overall nyquist band ignoring power fluctuations that do not pass  
the low pass, and not the power in the pass band of the filter.

Example: Assume we have a complex sine at frequency $f\>f\_\text{cutoff}$  
$s(t) = e^{2\pi j f t}$. It has a constant mag? of $|s|^2 = 1$.  
Now, the low pass of a constant 1 is still 1.  
Now, let’s low pass first with a filter $h(t)$ and then mag?. Assume  
filter stop band attenuation is infinite, then $r(t) = h(t) \* s(t) = 0$  
because $f\>f\_\text{cutoff}$. It follows that $|r|^2 = 0 \neq 1$.

Yet another side note: have a look at the polyphase filter banks (PFBs)  
that are relatively new in GNU Radio, if you want to process multiple  
sub-bands at once.

Greetings,  
Marcus

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 6:54pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/19 "2014-08-06T18:54:38Z")

</div>

That seems to be a little bit better. Still causing overflow  
occasionally,  
but I can work with it.

But still can’t use the first low pass filter without overflow

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49816.html](http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49816.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![rejunte](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/a9a28c/32.png) [@rejunte](https://www.ruby-forum.com/u/rejunte)\
**Post date:** [August 6, 2014, 6:59pm UTC](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953/20 "2014-08-06T18:59:59Z")

</div>

The first filter is a low pass filter connected to the RTL-SDR Source.

After this filter I demodulate the signal and compute the signal  
strenght

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49818.html](http://gnuradio.4.n7.nabble.com/gnuradio-on-ubuntu-touch-tp49315p49818.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

[Next page](https://www.ruby-forum.com/t/gnuradio-on-ubuntu-touch/230953.md?page=2)
