Project

General

Profile

Getting Started

Prerequisites

You must first prepare your system by installing the required development packages.

For debian/ubuntu:

apt-get install build-essential libtool autoconf git-core pkg-config libfftw3-dev talloc-dev libpcsclite-dev

If you want to capture samples off the air, you'll also need gnuradio and uhd. Installing those is outside the scope of this page, refer to the GNURadio / Ettus documentation.

Compiling the software

libosmocore

You obviously need to install our main utility library:

git clone git://git.osmocom.org/libosmocore
cd libosmocore
autoreconf -i -f
./configure
make
sudo make install
cd ..

libosmo-dsp

Then you need to install our new Software Defined Radio helper library:

git clone git://git.osmocom.org/libosmo-dsp
cd libosmo-dsp
autoreconf -i -f
./configure
make
sudo make install
cd ..

osmo-gmr

And finally compile the main Osmocom GMR software stack:

git clone git://git.osmocom.org/osmo-gmr
cd osmo-gmr
autoreconf -i -f
./configure
make
cd ..

Capture tool

The current version of the capture tool is not integrated with the main autotool process yet and has to be built separately:

cd osmo-gmr/utils/gmr_multi_rx
make TARGET=uhd
cd ../../..
There are several possible targets depending on your hardware:
  • usrp: To use the libusrp drivers for the USRP1 hardware (gnuradio has to be compiled with gr-usrp enabled)
  • uhd: For using any ettus hardware (see UHD Wiki for build instructions)
  • fcd: To use the specific Fun Cube Dongle Pro drivers (gr-fcd has to be installed)

Wireshark


<pre>

<pre>
git clone git://git.osmocom.org/wireshark
cd wireshark
git checkout sylvain/gmr
./autogen.sh
./configure
make
sudo make install
cd ..
</pre>

h2. Running the software

h3. Capturing samples

You need to capture samples off the air and of course "there's an app for that".
For a first try the easier is to lookup a beam that match your geographic area by looking at "Thuraya_Beams":http://gmr.osmocom.org/trac/wiki/Thuraya_Beams and the associated map.

<pre>

This example will capture ARFCN 941 and 942 for 10 second using the 'B' side daughterboard and the RX2 input :

<pre>
./gmr_multi_rx --gmr1-dl 941 942 -a RX2 -S B:0 -T 10
</pre>

The given channels will be frequency shifted, filtered, resampled and finally written to files with the given --prefix (/tmp/ by default). The file names will be autogenerated based on ARFCN and final sample rate.

A few notes concerning multi ARFCN capture:
* All the ARFCN need to fit within the bandwidth of your device (so you can't get ARFCN1 and 1007 at once for example)
* It can be pretty CPU intensive depending on the # of ARFCNs and how much they're spaced.

h4. "FunCube Dongle":http://tetra.osmocom.org/trac/wiki/Funcube_Dongle Build

<pre>
./gmr_multi_rx --gain 30 --gmr1-dl 941 942 943
</pre>

* when receiving 3 consecutive channels, the middle channel will be distorted by the center peak caused by dc offset / iq imbalance
* when receiving 2 channels, each channel will have a small contribution of the center peak on the right or left side.
* best results may be achieved when receiving only one channel.

h4. Default USRP clock

<pre>
./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943
</pre>

Only 75% of the master output rate will be used on the usrp/uhd builds, because of insufficient attenuation of the fpga channelizer at filter edges.

h4. Modified USRP clocks

* use --mcr to tell custom fpga frequency in Hz

<pre>
./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943 --mcr 52e6
</pre>

* mcr of 59.904e6 Hz is gmr1-friendly, thus allowing to save on interpolation stage

<pre>
./gmr_multi_rx --gain 45 --gmr1-dl 941 942 943 --mcr 59.904e6
</pre>

h4. RTL SDR dongles

The attached gnuradio flowgraph has been tested and works well for ARFCN 1007. A decent LNA might be required to be able to receive Thuraya signals. It is essential to adjust "corr_ppm" according to your dongle's frequency error. For recording, set the "arfcn" value and enable the file sink before launching the flowgraph.

h3. Analyzing them

* Launch wireshark and listen to the lo interface
** Make sure to use the proper version (see above)
** Also make sure you have the rights to capture on lo
<pre>
<pre>
* View packets in wireshark using gmr1_bcch.* filters

osmo-gmr-rtl.grc - gnuradio flowgraph for a single GMR channel (19.1 KB) horiz0n, 01/02/2013 10:30 PM