# Difficulties with Gnuradio on Odroid C1

**URL:** <https://www.ruby-forum.com/t/difficulties-with-gnuradio-on-odroid-c1/244123>\
**Category:** GNU Radio\
**Created:** [February 23, 2016, 8:05pm UTC](https://www.ruby-forum.com/t/difficulties-with-gnuradio-on-odroid-c1/244123 "2016-02-23T20:05:44Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sadaf\_N](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/858c86/32.png) [@Sadaf\_N](https://www.ruby-forum.com/u/Sadaf_N)\
**Post date:** [February 23, 2016, 8:05pm UTC](https://www.ruby-forum.com/t/difficulties-with-gnuradio-on-odroid-c1/244123/1 "2016-02-23T20:05:44Z")

</div>

I really hope that you can help me. So I wrote a simple Programm in Gnu  
Radio Companion that is able to transmit a text file with use of a  
HackRf One. The Programm works fine on my two laptops (both on Ubuntu  
15.10, latest GNU-Radio and Osmocom), but when I try to launch it on my  
Odroid C1, the Programm seems to work normally, but there is no data  
transfer. The HackRF is powered by a USB-HUB, so that can’t be the  
problem. Do you have any ideas?

Transmitter(not the problem):  
###########################################################################  
#!/usr/bin/env python2

# -_- coding: utf-8 -_-

##################################################

# GNU Radio Python Flow Graph

# Title: Top Block

# Generated: Tue Feb 23 19:31:30 2016

##################################################

if **name** == ‘ **main** ’:  
import ctypes  
import sys  
if sys.platform.startswith(‘linux’):  
try:  
x11 = ctypes.cdll.LoadLibrary(‘libX11.so’)  
x11.XInitThreads()  
except:  
print “Warning: failed to XInitThreads()”

from gnuradio import analog  
from gnuradio import blocks  
from gnuradio import eng\_notation  
from gnuradio import filter  
from gnuradio import gr  
from gnuradio import wxgui  
from gnuradio.eng\_option import eng\_option  
from gnuradio.fft import window  
from gnuradio.filter import firdes  
from gnuradio.wxgui import fftsink2  
from grc\_gnuradio import wxgui as grc\_wxgui  
from optparse import OptionParser  
import wx

class top\_block(grc\_wxgui.top\_block\_gui):

```
def __init__ (self):
    grc_wxgui.top_block_gui. __init__ (self, title="Top Block")

    ##################################################
    # Variables
    ##################################################
    self.samp_rate = samp_rate = 32000

    ##################################################
    # Blocks
    ##################################################
    self.wxgui_fftsink2_0 = fftsink2.fft_sink_f(
        self.GetWin(),
        baseband_freq=0,
        y_per_div=10,
        y_divs=10,
        ref_level=0,
        ref_scale=2.0,
        sample_rate=samp_rate,
        fft_size=1024,
        fft_rate=15,
        average=False,
        avg_alpha=None,
        title="FFT Plot",
        peak_hold=False,
    )
    self.Add(self.wxgui_fftsink2_0.win)
    self.rational_resampler_xxx_0 = filter.rational_resampler_fff(
            interpolation=2000000,
            decimation=44100,
            taps=None,
            fractional_bw=None,
    )
    self.blocks_multiply_xx_0 = blocks.multiply_vff(1)
    self.blocks_file_source_0 =

```

blocks.file\_source(gr.sizeof\_float\*1, “test.txt”, True)  
self.analog\_const\_source\_x\_0 = analog.sig\_source\_f(0,  
analog.GR\_CONST\_WAVE, 0, 0, 1)

```
    ##################################################
    # Connections
    ##################################################
    self.connect((self.analog_const_source_x_0, 0),

```

(self.blocks\_multiply\_xx\_0, 1))  
self.connect((self.blocks\_file\_source\_0, 0),  
(self.blocks\_multiply\_xx\_0, 0))  
self.connect((self.blocks\_multiply\_xx\_0, 0),  
(self.rational\_resampler\_xxx\_0, 0))  
self.connect((self.rational\_resampler\_xxx\_0, 0),  
(self.wxgui\_fftsink2\_0, 0))

```
def get_samp_rate(self):
    return self.samp_rate

def set_samp_rate(self, samp_rate):
    self.samp_rate = samp_rate
    self.wxgui_fftsink2_0.set_sample_rate(self.samp_rate)

```

def main(top\_block\_cls=top\_block, options=None):

```
tb = top_block_cls()
tb.Start(True)
tb.Wait()

```

if **name** == ‘ **main** ’:  
main()  
###########################################################################

And the Receiver (does not work on Odroid):

###########################################################################

#!/usr/bin/env python2

# -_- coding: utf-8 -_-

##################################################

# GNU Radio Python Flow Graph

# Title: Top Block

# Generated: Tue Jan 5 20:44:14 2016

##################################################

from gnuradio import blocks  
from gnuradio import digital  
from gnuradio import eng\_notation  
from gnuradio import gr  
from gnuradio.eng\_option import eng\_option  
from gnuradio.filter import firdes  
from grc\_gnuradio import blks2 as grc\_blks2  
from optparse import OptionParser  
import osmosdr  
import time

class top\_block(gr.top\_block):

```
def __init__ (self):
    gr.top_block. __init__ (self, "Top Block")

    ##################################################
    # Variables
    ##################################################
    self.samp_rate = samp_rate = 32000

    ##################################################
    # Blocks
    ##################################################
    self.osmosdr_source_0 = osmosdr.source( args="numchan=" + str(1)

```

- " " + “” )  
self.osmosdr\_source\_0.set\_sample\_rate(2e6)  
self.osmosdr\_source\_0.set\_center\_freq(2400e6, 0)  
self.osmosdr\_source\_0.set\_freq\_corr(0, 0)  
self.osmosdr\_source\_0.set\_dc\_offset\_mode(0, 0)  
self.osmosdr\_source\_0.set\_iq\_balance\_mode(0, 0)  
self.osmosdr\_source\_0.set\_gain\_mode(False, 0)  
self.osmosdr\_source\_0.set\_gain(0, 0)  
self.osmosdr\_source\_0.set\_if\_gain(20, 0)  
self.osmosdr\_source\_0.set\_bb\_gain(20, 0)  
self.osmosdr\_source\_0.set\_antenna("", 0)  
self.osmosdr\_source\_0.set\_bandwidth(1000, 0)

))  
self.blocks\_file\_sink\_0 = blocks.file\_sink(gr.sizeof\_float\*1,  
“test”, False)  
self.blocks\_file\_sink\_0.set\_unbuffered(False)  
self.blks2\_packet\_decoder\_0 =  
grc\_blks2.packet\_demod\_f(grc\_blks2.packet\_decoder(  
access\_code="",  
threshold=0,  
callback=lambda ok, payload:  
self.blks2\_packet\_decoder\_0.recv\_pkt(ok, payload),  
),  
)

```
    ##################################################
    # Connections
    ##################################################
    self.connect((self.blks2_packet_decoder_0, 0),

```

(self.blocks\_file\_sink\_0, 0))  
self.connect((self.blocks\_multiply\_const\_vxx\_0, 0),  
(self.digital\_gmsk\_demod\_0, 0))  
self.connect((self.digital\_gmsk\_demod\_0, 0),  
(self.blks2\_packet\_decoder\_0, 0))  
self.connect((self.osmosdr\_source\_0, 0),  
(self.blocks\_multiply\_const\_vxx\_0, 0))

```
def get_samp_rate(self):
    return self.samp_rate

def set_samp_rate(self, samp_rate):
    self.samp_rate = samp_rate

```

def main(top\_block\_cls=top\_block, options=None):

```
tb = top_block_cls()
tb.start()
try:
    raw_input('Press Enter to quit: ')
except EOFError:
    pass
tb.stop()
tb.wait()

```

if **name** == ‘ **main** ’:  
main()

Thanks a Lot!
