Project

General

Profile

GrOsmoSDR » History » Version 57

horiz0n, 02/19/2016 10:50 PM

1 1 horiz0n
[[PageOutline]]
2
3 47 horiz0n
= osmocom Gnu Radio Blocks =
4 1 horiz0n
5 20 horiz0n
While primarily being developed for the OsmoSDR hardware, this block as well supports:
6 1 horiz0n
7 20 horiz0n
 * [http://tetra.osmocom.org/trac/wiki/Funcube_Dongle FunCube Dongle] through libgnuradio-fcd
8 50 horiz0n
 * [http://www.funcubedongle.com/?page_id=1073 FUNcube Dongle Pro+] through [https://github.com/dl1ksv/gr-fcdproplus gr-fcdproplus]
9 44 horiz0n
 * [http://sdr.osmocom.org/trac/ sysmocom OsmoSDR] Devices through [http://cgit.osmocom.org/osmo-sdr/ libosmosdr]
10 51 horiz0n
 * [http://nuand.com/ Nuand LLC bladeRF] through [https://github.com/Nuand/bladeRF libbladeRF library]
11 20 horiz0n
 * [http://greatscottgadgets.com/hackrf/ Great Scott Gadgets HackRF] through [https://github.com/mossmann/hackrf libhackrf]
12 56 horiz0n
 * [http://www.ettus.com/product Ettus USRP] Devices through [http://files.ettus.com/uhd_docs/manual/html/build.html Ettus UHD library]
13
 * [http://umtrx.org Fairwaves UmTRX] through [https://github.com/fairwaves/UHD-Fairwaves Fairwaves' fork of Ettus' UHD library]
14 20 horiz0n
 * RTL2832U based DVB-T dongles through [http://sdr.osmocom.org/trac/wiki/rtl-sdr librtlsdr]
15
 * RTL-TCP spectrum server (see librtlsdr project)
16
 * MSi2500 based DVB-T dongles through [http://cgit.osmocom.org/libmirisdr/ libmirisdr]
17 42 horiz0n
 * gnuradio .cfile input through libgnuradio-blocks
18 20 horiz0n
19
By using the OsmoSDR block you can take advantage of a common software api in your application(s) independent of the underlying radio hardware.
20
21 1 horiz0n
== Build process ==
22
23 48 horiz0n
'''The Gnu Radio block requires a recent gnuradio (>= v3.7 if building master branch or 3.6.5 when building gr3.6 branch) to be installed.'''
24 20 horiz0n
25 43 horiz0n
Before building the block you have to make sure that all the dependencies (see list of supported devices above) you are intend to work with are properly installed. The build system of gr-osmosdr will recognize them and enable specific source/sink components thereafter.
26 1 horiz0n
27
Please note: prior pulling a new version from git and compiling it, please do a "make uninstall" first to properly remove the previous version.
28
29
Building with cmake:
30 30 horiz0n
31 1 horiz0n
{{{
32
git clone git://git.osmocom.org/gr-osmosdr
33
cd gr-osmosdr/
34 48 horiz0n
}}}
35
36
If you are building for gnuradio 3.6 series, you have to switch to the gr3.6 branch as follows
37
{{{
38
git checkout gr3.6
39
}}}
40
41 51 horiz0n
then continue with
42 48 horiz0n
{{{
43 1 horiz0n
mkdir build
44
cd build/
45 14 horiz0n
cmake ../
46 30 horiz0n
}}}
47
48 34 horiz0n
Now cmake should print out a summary of enabled/disabled components. You may disable certain components by following guidelines shown by cmake. Make sure the device of your interest is listed here. Check your dependencies and retry otherwise.
49 30 horiz0n
{{{
50
-- ######################################################
51
-- # gr-osmosdr enabled components                         
52
-- ######################################################
53
--   * Python support
54
--   * Osmocom IQ Imbalance Correction
55 1 horiz0n
--   * sysmocom OsmoSDR
56 51 horiz0n
--   * FUNcube Dongle
57
--   * FUNcube Dongle Pro+
58 30 horiz0n
--   * IQ File Source
59
--   * Osmocom RTLSDR
60
--   * RTLSDR TCP Client
61
--   * Ettus USRP Devices
62
--   * Osmocom MiriSDR
63 1 horiz0n
--   * HackRF Jawbreaker
64 51 horiz0n
--   * nuand bladeRF
65 30 horiz0n
-- 
66
-- ######################################################
67
-- # gr-osmosdr disabled components                        
68 1 horiz0n
-- ######################################################
69 30 horiz0n
-- 
70 51 horiz0n
-- Building for version: v0.1.0-4-g37aba331 / 0.1.1git
71 30 horiz0n
-- Using install prefix: /usr/local
72
}}}
73
74
Now build & install
75
{{{
76 1 horiz0n
make
77
sudo make install
78
sudo ldconfig
79
}}}
80
81 44 horiz0n
NOTE: The osmocom source/sink blocks will appear under 'Sources' and 'Sinks' categories in GRC menu.
82 1 horiz0n
83 10 horiz0n
To build the API documentation:
84
{{{
85
cd build/
86 1 horiz0n
cmake ../ -DENABLE_DOXYGEN=1
87
make -C docs
88 14 horiz0n
}}}
89 44 horiz0n
90 1 horiz0n
== Automated installation ==
91
92
Marcus D. Leech has kindly integrated the forementioned build steps into his gnuradio installation script at [http://www.sbrac.org/files/build-gnuradio]. This is the most user-friendly option so far.
93 7 horiz0n
94 11 horiz0n
== Device specification ==
95 33 horiz0n
You can specify the source or sink device using a comma separated string of argument=value pairs. The always-up-to-date block documentation with examples is available [http://cgit.osmocom.org/gr-osmosdr/tree/grc/gen_osmosdr_blocks.py#n100 right here].
96 19 horiz0n
97 18 horiz0n
=== FCD Source ===
98
||Argument||Notes||
99 54 horiz0n
||fcd=<device-index>|| 0-based device identifier, optional||
100
||device=hw:2|| overrides the audio device||
101
||type=2|| selects the dongle type, 1 for Classic, 2 for Pro+||
102 50 horiz0n
103
The "device" argument overrides the audio device used by the underlying driver to access the dongle's IQ sample stream.
104
105
The "type" argument selects the dongle type, 1 for Classic, 2 for Pro+.
106 18 horiz0n
107 1 horiz0n
=== OsmoSDR Source ===
108 28 horiz0n
||Argument||Notes||
109
||osmosdr=<device-index>|| 0-based device identifier||
110 1 horiz0n
||buffers=<number-of-buffers>|| Default is 32||
111 28 horiz0n
||buflen=<length-of-buffer>|| Default is 256kB, must be multiple of 512||
112 1 horiz0n
113 11 horiz0n
=== RTL-SDR Source ===
114 28 horiz0n
||Argument||Notes||
115
||rtl=<device-index>|| 0-based device identifier OR serial number||
116
||rtl_xtal=<frequency>|| Frequency (Hz) used for the RTL chip, accepts eng notation||
117
||tuner_xtal=<frequency>|| Frequency (Hz) used for the tuner chip, accepts eng notation||
118 1 horiz0n
||buffers=<number-of-buffers>|| Default is 32||
119 28 horiz0n
||buflen=<length-of-buffer>|| Default is 256kB, must be multiple of 512||
120 29 horiz0n
||direct_samp=0|1|2|| Enable direct sampling mode on the RTL chip. 0: Disable, 1: use I channel, 2: use Q channel||
121
||offset_tune=0|1|| Enable offset tune mode for E4000 tuners||
122 28 horiz0n
123
NOTE: use rtl_eeprom -s to program your own serial number to the device
124 32 horiz0n
125 11 horiz0n
NOTE: if you don't specify rtl_xtal/tuner_xtal, the underlying driver will use 28.0MHz
126 1 horiz0n
127
=== RTL-SDR TCP Source ===
128 28 horiz0n
||Argument||Notes||
129 1 horiz0n
||rtl_tcp=<hostname>:<port>|| hostname defaults to "localhost", port to "1234"||
130
||psize=<payload-size>|| Default is 16384 bytes||
131 29 horiz0n
||direct_samp=0|1|2|| Enable direct sampling mode on the RTL chip 0=Off, 1=I-ADC input enabled, 2=Q-ADC input enabled||
132
||offset_tune=0|1|| Enable offset tune mode for E4000 tuners||
133 1 horiz0n
134 28 horiz0n
=== Miri Source ===
135
||Argument||Notes||
136
||miri=<device-index>|| 0-based device identifier||
137
||buffers=<number-of-buffers>|| Default is 32||
138
139 1 horiz0n
=== UHD Source / Sink ===
140 28 horiz0n
||Argument||Notes||
141
||uhd|| Use this argument without a value||
142
||nchan=<channel-count>|| For multichannel USRP configurations use the subdev parameter to specify stream mapping||
143
||subdev=<subdev-spec>|| Examples: "A:0", "B:0", "A:0 B:0" when nchan=2. Refer original ettus documentation on this||
144
||lo_offset=<frequency>|| Offset frequency in Hz, must be within daughterboard bandwidth. Accepts eng notation||
145 1 horiz0n
146
Additional argument/value pairs will be passed to the underlying driver, for more information see
147
[http://files.ettus.com/uhd_docs/manual/html/general.html#specifying-the-subdevice-to-use specifying the subdevice] and 
148
[http://files.ettus.com/uhd_docs/manual/html/identification.html#common-device-identifiers common device identifiers] in the Ettus documentation.
149 54 horiz0n
150
=== bladeRF Source / Sink ===
151
||Argument||Notes||
152
||bladerf[=0]|| 0-based device identifier (optional)||
153 55 horiz0n
||fw='/path/to/the/firmware.img'|| program MCU firmware from given file. usually not needed. power cycle required.||
154
||fpga='/path/to/the/bitstream.rbf'|| load FPGA bitstream from given file. required only at first run at the moment.||
155 1 horiz0n
156
=== HackRF Source / Sink ===
157 28 horiz0n
||Argument||Notes||
158
||hackrf|| Use this argument without a value||
159 24 horiz0n
||buffers=<number-of-buffers>|| Default is 32||
160
161 28 horiz0n
Only the first device found may be used at the moment because of libhackrf limitation.
162
163 38 horiz0n
Transmit support has been verified by using the [http://sdr.osmocom.org/trac/attachment/wiki/GrOsmoSDR/hackrf-dab.jpg crc-mmbTools DAB sdr transmitter].
164
165 24 horiz0n
=== IQ File Source ===
166 28 horiz0n
||Argument||Notes||
167 24 horiz0n
||file=<path-to-file-name>||||
168 28 horiz0n
||freq=<frequency>|| Center frequency in Hz, accepts eng notation||
169 31 horiz0n
||rate=<sampling-rate>|| Mandatory, in samples/s, accepts eng notation||
170 7 horiz0n
||repeat=true|false|| Default is true||
171 28 horiz0n
||throttle=true|false|| Throttle flow of samples, default is true||
172 7 horiz0n
173 35 horiz0n
== Included Apps ==
174
175
=== Spectrum Browser ===
176
177 45 horiz0n
[[Image(fft-lte.png)]]
178
179 57 horiz0n
RTSA-like spectrum visualization is available through [https://sdr.osmocom.org/trac/wiki/fosphor fosphor] component. Call osmocom_fft with -F switch to enable it.
180
181
[[Image(fosphor.png)]]
182
183
[[Image(fosphor2.png)]]
184
185 35 horiz0n
usage examples:
186 36 horiz0n
{{{
187 35 horiz0n
osmocom_fft -a rtl=0 -v -f 100e6 -s 2.4e6 -g 15
188
osmocom_fft -a hackrf -v
189
osmocom_fft -a uhd -v
190 36 horiz0n
}}}
191 35 horiz0n
=== Signal generator ===
192 1 horiz0n
193 45 horiz0n
[[Image(siggen-gsm.png)]]
194 37 horiz0n
195 35 horiz0n
usage examples:
196 36 horiz0n
{{{
197 49 horiz0n
osmocom_siggen -a hackrf -f 100e6 --sine
198
osmocom_siggen -a hackrf -f 100e6 --sweep -x 2M -y 1 -c34
199 39 horiz0n
osmocom_siggen_nogui -a hackrf -f 100e6 --sweep -x 2e6 -y 10 -v
200
osmocom_siggen_nogui -a uhd,subdev=A:0 -f 100e6 --sweep -x 2e6 -y 10 -s 4e6 -v
201 36 horiz0n
}}}
202 35 horiz0n
=== Spectrum sensing ===
203
204
TODO: document
205
206 7 horiz0n
== Known Apps ==
207
208
The following 3rd party applications are successfully using gr-osmosdr:
209
210
||'''Name'''||'''Type'''||'''Author'''||'''URL'''||
211
||gr-pocsag||GRC Flowgraph||Marcus Leech||[https://www.cgran.org/browser/projects/gr-pocsag/trunk]||
212 15 horiz0n
||multimode RX||GRC Flowgraph||Marcus Leech||[https://www.cgran.org/browser/projects/multimode/trunk]||
213 8 horiz0n
||simple_fm_rvc||GRC Flowgraph||Marcus Leech||[https://www.cgran.org/browser/projects/simple_fm_rcv/trunk]||
214 16 horiz0n
||Wireless Temp. Sensor RX||Gnuradio App||Kevin Mehall||[https://github.com/kevinmehall/rtlsdr-433m-sensor]||
215 1 horiz0n
||gqrx||SDR GUI||Alexandru Csete||[https://github.com/csete/gqrx]||
216
||tetra_demod_fft||Trunking RX||osmocom team||[http://cgit.osmocom.org/cgit/osmo-tetra/tree/src/demod/python/osmosdr-tetra_demod_fft.py osmosdr-tetra_demod_fft.py] and the [http://tetra.osmocom.org/trac/wiki/osmo-tetra#Quickexample HOWTO] ||
217
||airprobe||GSM sniffer||osmocom team et al||[http://git.gnumonks.org/cgi-bin/gitweb.cgi?p=airprobe.git]||
218
||gr-smartnet (WIP)||Trunking RX||Nick Foster||[http://www.reddit.com/r/RTLSDR/comments/us3yo/rtlsdr_smartnet/][[br]][http://www.reddit.com/r/RTLSDR/comments/vbxl0/attention_grsmartnet_users_or_attempted_users/ Notes from the author]||
219
||gr-air-modes||ADS-B RX||Nick Foster||[https://www.cgran.org/wiki/gr-air-modes] call with --rtlsdr option||
220 16 horiz0n
||gr-ais (fork)||AIS RX||Nick Foster[[br]]Antoine Sirinelli[[br]]Christian Gagneraud||[https://github.com/chgans/gr-ais]||
221
||GNSS-SDR ||GPS RX (Realtime!)||Centre Tecnològic de[[br]]Telecomunicacions de Catalunya||[http://www.gnss-sdr.org/documentation/gnss-sdr-operation-realtek-rtl2832u-usb-dongle-dvb-t-receiver Documentation] and [http://www.gnss-sdr.org]||
222 15 horiz0n
||gr-scan ||Scanner||techmeology||[http://www.techmeology.co.uk/gr-scan/]||
223
||pocsag-mrt||Multichannel Realtime[[br]]Decoder||iZsh||[https://github.com/iZsh/pocsag-mrt]||
224
||osmo-gmr-rtl||GMR1 RX||Dimitri Stolnikov||[http://gmr.osmocom.org/trac/wiki/GettingStarted#RTLSDRdongles]||
225
||simple_ra '''(NEW)'''||Radio Astronomy App||Marcus Leech||[https://cgran.org/wiki/simple_ra]||
226 1 horiz0n
||FS20_decode '''(NEW)'''||FS20 Decoder||Thomas Frisch||[https://github.com/eT0M/rtl_sdr_FS20_decoder]||
227 15 horiz0n
||OpenLTE '''(NEW)'''||LTE Toolkit||Ben Wojtowicz||[http://sourceforge.net/p/openlte/home/Home/]||
228 56 horiz0n
||sdrangelove '''(NEW)'''||SDR GUI||Christian Daniel||[http://sdrangelove.org]||
229 28 horiz0n
230
== Credits ==
231
232 53 horiz0n
gr-osmosdr is developed by Dimitri Stolnikov with contributions from Hoernchen, Steve Markgraf and Nuand LLC folks.
Add picture from clipboard (Maximum size: 48.8 MB)