Project

General

Profile

GrOsmoSDR » History » Revision 51

Revision 50 (horiz0n, 02/19/2016 10:50 PM) → Revision 51/98 (horiz0n, 02/19/2016 10:50 PM)

[[PageOutline]] 

 = osmocom Gnu Radio Blocks = 

 While primarily being developed for the OsmoSDR hardware, this block as well supports: 

  * [http://tetra.osmocom.org/trac/wiki/Funcube_Dongle FunCube Dongle] through libgnuradio-fcd 
  * [http://www.funcubedongle.com/?page_id=1073 FUNcube Dongle Pro+] through [https://github.com/dl1ksv/gr-fcdproplus gr-fcdproplus] 
  * [http://sdr.osmocom.org/trac/ sysmocom OsmoSDR] Devices through [http://cgit.osmocom.org/osmo-sdr/ libosmosdr] 
  * [http://nuand.com/ Nuand LLC bladeRF] through [https://github.com/Nuand/bladeRF libbladeRF library] 
  * [http://greatscottgadgets.com/hackrf/ Great Scott Gadgets HackRF] through [https://github.com/mossmann/hackrf libhackrf] 
  * [https://www.ettus.com/product Ettus USRP] Devices through [http://files.ettus.com/uhd_docs/manual/html/build.html Ettus UHD library] 
  * RTL2832U based DVB-T dongles through [http://sdr.osmocom.org/trac/wiki/rtl-sdr librtlsdr] 
  * RTL-TCP spectrum server (see librtlsdr project) 
  * MSi2500 based DVB-T dongles through [http://cgit.osmocom.org/libmirisdr/ libmirisdr] 
  * gnuradio .cfile input through libgnuradio-blocks 

 By using the OsmoSDR block you can take advantage of a common software api in your application(s) independent of the underlying radio hardware. 

 == Build process == 

 '''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.''' 

 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. 

 Please note: prior pulling a new version from git and compiling it, please do a "make uninstall" first to properly remove the previous version. 

 Building with cmake: 

 {{{ 
 git clone git://git.osmocom.org/gr-osmosdr 
 cd gr-osmosdr/ 
 }}} 

 If you are building for gnuradio 3.6 series, you have to switch to the gr3.6 branch as follows 
 {{{ 
 git checkout gr3.6 
 }}} 

 then continue with 
 {{{ 
 mkdir build 
 cd build/ 
 cmake ../ 
 }}} 

 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. 
 {{{ 
 -- ###################################################### 
 -- # gr-osmosdr enabled components                          
 -- ###################################################### 
 --     * Python support 
 --     * Osmocom IQ Imbalance Correction 
 --     * sysmocom OsmoSDR 
 --     * FUNcube FunCube Dongle 
 --     * FUNcube Dongle Pro+ 
 --     * IQ File Source 
 --     * Osmocom RTLSDR 
 --     * RTLSDR TCP Client 
 --     * Ettus USRP Devices 
 --     * Osmocom MiriSDR 
 --     * HackRF Jawbreaker 
 --     * nuand bladeRF 
 --  
 -- ###################################################### 
 -- # gr-osmosdr disabled components                         
 -- ###################################################### 
 --  
 -- Building for version: v0.1.0-4-g37aba331 4c101ea4 / 0.1.1git 0.0.1git 
 -- Using install prefix: /usr/local 
 }}} 

 Now build & install 
 {{{ 
 make 
 sudo make install 
 sudo ldconfig 
 }}} 

 NOTE: The osmocom source/sink blocks will appear under 'Sources' and 'Sinks' categories in GRC menu. 

 To build the API documentation: 
 {{{ 
 cd build/ 
 cmake ../ -DENABLE_DOXYGEN=1 
 make -C docs 
 }}} 

 == Automated installation == 

 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. 

 == Device specification == 
 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]. 

 === FCD Source === 
 ||Argument||Notes|| 
 ||fcd=<device-index>|| 0-based device identifier|| 
 ||fcd,device=hw:2,type=2|| || 

 The "device" argument overrides the audio device used by the underlying driver to access the dongle's IQ sample stream. 

 The "type" argument selects the dongle type, 1 for Classic, 2 for Pro+. 

 === OsmoSDR Source === 
 ||Argument||Notes|| 
 ||osmosdr=<device-index>|| 0-based device identifier|| 
 ||buffers=<number-of-buffers>|| Default is 32|| 
 ||buflen=<length-of-buffer>|| Default is 256kB, must be multiple of 512|| 

 === RTL-SDR Source === 
 ||Argument||Notes|| 
 ||rtl=<device-index>|| 0-based device identifier OR serial number|| 
 ||rtl_xtal=<frequency>|| Frequency (Hz) used for the RTL chip, accepts eng notation|| 
 ||tuner_xtal=<frequency>|| Frequency (Hz) used for the tuner chip, accepts eng notation|| 
 ||buffers=<number-of-buffers>|| Default is 32|| 
 ||buflen=<length-of-buffer>|| Default is 256kB, must be multiple of 512|| 
 ||direct_samp=0|1|2|| Enable direct sampling mode on the RTL chip. 0: Disable, 1: use I channel, 2: use Q channel|| 
 ||offset_tune=0|1|| Enable offset tune mode for E4000 tuners|| 

 NOTE: use rtl_eeprom -s to program your own serial number to the device 

 NOTE: if you don't specify rtl_xtal/tuner_xtal, the underlying driver will use 28.0MHz 

 === RTL-SDR TCP Source === 
 ||Argument||Notes|| 
 ||rtl_tcp=<hostname>:<port>|| hostname defaults to "localhost", port to "1234"|| 
 ||psize=<payload-size>|| Default is 16384 bytes|| 
 ||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|| 
 ||offset_tune=0|1|| Enable offset tune mode for E4000 tuners|| 

 === Miri Source === 
 ||Argument||Notes|| 
 ||miri=<device-index>|| 0-based device identifier|| 
 ||buffers=<number-of-buffers>|| Default is 32|| 

 NOTE: if you don't specify rtl_xtal/tuner_xtal, the underlying driver will use 28.0MHz 

 === UHD Source / Sink === 
 ||Argument||Notes|| 
 ||uhd|| Use this argument without a value|| 
 ||nchan=<channel-count>|| For multichannel USRP configurations use the subdev parameter to specify stream mapping|| 
 ||subdev=<subdev-spec>|| Examples: "A:0", "B:0", "A:0 B:0" when nchan=2. Refer original ettus documentation on this|| 
 ||lo_offset=<frequency>|| Offset frequency in Hz, must be within daughterboard bandwidth. Accepts eng notation|| 

 Additional argument/value pairs will be passed to the underlying driver, for more information see 
 [http://files.ettus.com/uhd_docs/manual/html/general.html#specifying-the-subdevice-to-use specifying the subdevice] and  
 [http://files.ettus.com/uhd_docs/manual/html/identification.html#common-device-identifiers common device identifiers] in the Ettus documentation. 

 === HackRF Source / Sink === 
 ||Argument||Notes|| 
 ||hackrf|| Use this argument without a value|| 
 ||buffers=<number-of-buffers>|| Default is 32|| 

 Only the first device found may be used at the moment because of libhackrf limitation. 

 Transmit support has been verified by using the [http://sdr.osmocom.org/trac/attachment/wiki/GrOsmoSDR/hackrf-dab.jpg crc-mmbTools DAB sdr transmitter]. 

 === IQ File Source === 
 ||Argument||Notes|| 
 ||file=<path-to-file-name>|||| 
 ||freq=<frequency>|| Center frequency in Hz, accepts eng notation|| 
 ||rate=<sampling-rate>|| Mandatory, in samples/s, accepts eng notation|| 
 ||repeat=true|false|| Default is true|| 
 ||throttle=true|false|| Throttle flow of samples, default is true|| 

 == Included Apps == 

 === Spectrum Browser === 

 [[Image(fft-lte.png)]] 

 usage examples: 
 {{{ 
 osmocom_fft -a rtl=0 -v -f 100e6 -s 2.4e6 -g 15 
 osmocom_fft -a hackrf -v 
 osmocom_fft -a uhd -v 
 }}} 
 === Signal generator === 

 [[Image(siggen-gsm.png)]] 

 usage examples: 
 {{{ 
 osmocom_siggen -a hackrf -f 100e6 --sine 
 osmocom_siggen -a hackrf -f 100e6 --sweep -x 2M -y 1 -c34 
 osmocom_siggen_nogui -a hackrf -f 100e6 --sweep -x 2e6 -y 10 -v 
 osmocom_siggen_nogui -a uhd,subdev=A:0 -f 100e6 --sweep -x 2e6 -y 10 -s 4e6 -v 
 }}} 
 === Spectrum sensing === 

 TODO: document 

 == Known Apps == 

 The following 3rd party applications are successfully using gr-osmosdr: 

 ||'''Name'''||'''Type'''||'''Author'''||'''URL'''|| 
 ||gr-pocsag||GRC Flowgraph||Marcus Leech||[https://www.cgran.org/browser/projects/gr-pocsag/trunk]|| 
 ||multimode RX||GRC Flowgraph||Marcus Leech||[https://www.cgran.org/browser/projects/multimode/trunk]|| 
 ||simple_fm_rvc||GRC Flowgraph||Marcus Leech||[https://www.cgran.org/browser/projects/simple_fm_rcv/trunk]|| 
 ||Wireless Temp. Sensor RX||Gnuradio App||Kevin Mehall||[https://github.com/kevinmehall/rtlsdr-433m-sensor]|| 
 ||gqrx||SDR GUI||Alexandru Csete||[https://github.com/csete/gqrx]|| 
 ||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] || 
 ||airprobe||GSM sniffer||osmocom team et al||[http://git.gnumonks.org/cgi-bin/gitweb.cgi?p=airprobe.git]|| 
 ||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]|| 
 ||gr-air-modes||ADS-B RX||Nick Foster||[https://www.cgran.org/wiki/gr-air-modes] call with --rtlsdr option|| 
 ||gr-ais (fork)||AIS RX||Nick Foster[[br]]Antoine Sirinelli[[br]]Christian Gagneraud||[https://github.com/chgans/gr-ais]|| 
 ||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]|| 
 ||gr-scan ||Scanner||techmeology||[http://www.techmeology.co.uk/gr-scan/]|| 
 ||pocsag-mrt||Multichannel Realtime[[br]]Decoder||iZsh||[https://github.com/iZsh/pocsag-mrt]|| 
 ||osmo-gmr-rtl||GMR1 RX||Dimitri Stolnikov||[http://gmr.osmocom.org/trac/wiki/GettingStarted#RTLSDRdongles]|| 
 ||simple_ra '''(NEW)'''||Radio Astronomy App||Marcus Leech||[https://cgran.org/wiki/simple_ra]|| 
 ||FS20_decode '''(NEW)'''||FS20 Decoder||Thomas Frisch||[https://github.com/eT0M/rtl_sdr_FS20_decoder]|| 
 ||OpenLTE '''(NEW)'''||LTE Toolkit||Ben Wojtowicz||[http://sourceforge.net/p/openlte/home/Home/]|| 


 == Credits == 

 gr-osmosdr is developed by Dimitri Stolnikov with contributions from Hoernchen and Steve Markgraf.
Add picture from clipboard (Maximum size: 48.8 MB)