User:Duggabe: Difference between revisions
(DRAFT 2nd REVISION) |
|||
Line 1: | Line 1: | ||
<!-- Guided_Tutorial_Hardware_Considerations --> | <!-- Guided_Tutorial_Hardware_Considerations --> | ||
<!-- "Using GNU Radio with Hardware" --> | <!-- "Using GNU Radio with Hardware" --> | ||
<!-- | <!-- 14 May 2020 --> | ||
= DRAFT REVISION Guided_Tutorial_Hardware_Considerations = | = DRAFT 2nd REVISION Guided_Tutorial_Hardware_Considerations = | ||
== Introduction == | == Introduction == | ||
One of the | One of the more basic (and also incredibly useful) things you can do in GNU Radio with a receiver is to create a software radio spectrum analyzer. This is also a great first step because it will verify that your hardware is working correctly. Later we will create a broadcast FM receiver. | ||
== Prerequisites == | == Prerequisites == | ||
* Tutorials: | * Tutorials: | ||
** [[Guided_Tutorial_Introduction|'''A brief introduction to GNU Radio, SDR, and DSP''']] | ** [[Guided_Tutorial_Introduction|'''A brief introduction to GNU Radio, SDR, and DSP''']] | ||
Line 17: | Line 16: | ||
== What Will I Need? == | == What Will I Need? == | ||
There is a large and growing number of vendors who provide hardware with GNU Radio drivers.They span from very cheap ($20) receivers to very high-performance tens-of-thousands-of-dollars systems. Parameters for four of the most popular devices are presented below. Other devices are listed in [[Hardware]]. | |||
== Creating a Software Radio Spectrum Analyzer == | |||
Using gnuradio-companion (GRC) and the following Block descriptions, build this flowgraph.<br> | |||
(put flowgraph here) | |||
=== Parameters For Popular Devices === | |||
This example uses an [https://kb.ettus.com/B200/B210/B200mini/B205mini Ettus Research USRP B200] and uses the [https://github.com/EttusResearch/uhd USRP Hardware Driver (UHD)]. | |||
* | * The USRP B200 provides a fully integrated, single board Universal Software Radio Peripheral platform with continuous frequency coverage from 70 MHz to 6 GHz. In order to use UHD blocks, you must have UHD installed. See [https://kb.ettus.com/Building_and_Installing_the_USRP_Open-Source_Toolchain_(UHD_and_GNU_Radio)_on_Linux Installing the USRP]. | ||
The USRP B200 provides a fully integrated, single board Universal Software Radio Peripheral platform with continuous frequency coverage from 70 MHz to 6 GHz. | |||
** General Tab | ** General Tab | ||
*** Output Type: Complex float32 | *** Output Type: Complex float32 | ||
Line 208: | Line 48: | ||
** RF Options Tab | ** RF Options Tab | ||
*** Ch0: Center Freq (Hz): tuning | *** Ch0: Center Freq (Hz): tuning | ||
*** Ch0: AGC: | *** Ch0: AGC: Disabled | ||
*** Ch0: Gain Value: rf_gain | |||
*** Ch0: Gain Type: Absolute (dB) | |||
*** Ch0: Antenna: TX/RX | *** Ch0: Antenna: TX/RX | ||
*** Ch0: Bandwidth (Hz): 500000 | *** Ch0: Bandwidth (Hz): 500000 | ||
<br> | |||
* | * The ADALM-PLUTO (PlutoSDR) is a portable, self-contained RF learning module which is supported by GNU Radio source and sink blocks. It can operate from 70MHz to 3.8GHz. The source and sink blocks are created by an 'Industrial I/O' module. See https://wiki.analog.com/resources/tools-software/linux-software/gnuradio for details. | ||
** | ** IIO context URI: "ip:192.168.2.1" (without the quotes) | ||
** LO Frequency: tuning | |||
** Sample Rate: samp_rate | |||
** RF Bandwidth: 500000 | |||
** | ** Buffer size: 16384 | ||
** | ** Quadrature: True | ||
** RF DC Correction: True | |||
** | ** BB DC Correction: True | ||
** Gain Mode (Rx1): Manual | |||
** Manual Gain (Rx1)(dB): rf_gain | |||
** Filter: (leave blank) | |||
** Filter Auto: True | |||
** | <br> | ||
** | |||
* | |||
* | |||
** | |||
* | |||
* | |||
** | |||
** | |||
** | |||
< | |||
* The RTL-SDR is a receive-only, low-cost, self-contained RF signal tuner supported by GNU Radio. There are several varieties of this device; the one used in this section is the V.3 Model. The full description is RTL2832U R820T2 TCXC + BIAS T + HF. The device has a frequency range of 500 kHz to 1766 MHz, with operation from 500 kHz to 24 MHz in direct sampling mode. The source block is created by an Out of Tree module. See https://github.com/osmocom/gr-osmosdr for details. | |||
The RTL-SDR is a receive-only, low-cost, self-contained RF signal tuner supported by GNU Radio. There are several varieties of this device; the one used in this section is the V.3 Model. The full description is RTL2832U R820T2 TCXC + BIAS T + HF. The device has a frequency range of 500 kHz to 1766 MHz, with operation from 500 kHz to 24 MHz in direct sampling mode. | |||
The source block is created by an Out of Tree module. See https://github.com/osmocom/gr-osmosdr for details. | |||
** Output Type: Complex Float32 | ** Output Type: Complex Float32 | ||
** Device Arguments: rtl=0 | ** Device Arguments: rtl=0 | ||
Line 261: | Line 79: | ||
** Ch0: BB Gain (dB): 20 | ** Ch0: BB Gain (dB): 20 | ||
** Ch0: Bandwidth (Hz): 200000 | ** Ch0: Bandwidth (Hz): 200000 | ||
<br> | |||
* | * The FunCube Pro+ is a receive only USB "dongle" with a range of 150kHz to 240MHz and 420MHz to 1.9GHz. The source block is created by an Out of Tree module. See https://github.com/dl1ksv/gr-fcdproplus for details. | ||
The FunCube Pro+ is a | |||
The source block is created by an Out of Tree module. See https://github.com/dl1ksv/gr-fcdproplus for details. | |||
** Device Name: (see [[Audio_Source#Device_Name]] for details) | ** Device Name: (see [[Audio_Source#Device_Name]] for details) | ||
** Unit: 1 | ** Unit: 1 | ||
Line 301: | Line 88: | ||
** Frequency (Unit Hz): tuning | ** Frequency (Unit Hz): tuning | ||
** Frequency corr. (ppm): 0 (frequency correction in parts per million) | ** Frequency corr. (ppm): 0 (frequency correction in parts per million) | ||
** If gain: | ** If gain: rf_gain | ||
=== Tuning and Using the Spectrum Analyzer === | |||
Set the following parameters in the QT GUI Sink | |||
* | * Center Frequency (Hz): tuning | ||
* | * Bandwidth (Hz): samp_rate | ||
* Show RF Freq: Yes | |||
* | |||
The analyzer can be tuned with the Frequency control widget. If you check the "Display RF Frequencies" box in the run-time GUI window, then the scale on the 'Frequency Display' and 'Waterfall Display' tabs will show the actual frequencies with the tuned frequency in the center. | |||
== Building an FM Radio Receiver == | |||
Now that you have a basic receiver application running with a real-time display of your received data, let's build a useful application! Leave your current flowgraph in place. We will simply add more functionality rather than replacing what is already there. | |||
Choose the flowgraph below for your hardware device. | |||
<b>UHD / USRP</b> | |||
[[File:USRP_FM_fg.png|800px]] | |||
<hr> | |||
<b>ADALM-PLUTO</b> | |||
[[File:Pluto_FM_fg.png|800px]] | |||
<hr> | |||
<b>RTL-SDR dongle</b> | |||
[[File:RTLSDR_receive_fg.png|800px]] | |||
<hr> | |||
<b>FunCube Pro+</b> | |||
[[File:FunCube_FM_fg.png|800px]] |
Revision as of 17:17, 14 May 2020
DRAFT 2nd REVISION Guided_Tutorial_Hardware_Considerations
Introduction
One of the more basic (and also incredibly useful) things you can do in GNU Radio with a receiver is to create a software radio spectrum analyzer. This is also a great first step because it will verify that your hardware is working correctly. Later we will create a broadcast FM receiver.
Prerequisites
- Tutorials:
What Will I Need?
There is a large and growing number of vendors who provide hardware with GNU Radio drivers.They span from very cheap ($20) receivers to very high-performance tens-of-thousands-of-dollars systems. Parameters for four of the most popular devices are presented below. Other devices are listed in Hardware.
Creating a Software Radio Spectrum Analyzer
Using gnuradio-companion (GRC) and the following Block descriptions, build this flowgraph.
(put flowgraph here)
Parameters For Popular Devices
This example uses an Ettus Research USRP B200 and uses the USRP Hardware Driver (UHD).
- The USRP B200 provides a fully integrated, single board Universal Software Radio Peripheral platform with continuous frequency coverage from 70 MHz to 6 GHz. In order to use UHD blocks, you must have UHD installed. See Installing the USRP.
- General Tab
- Output Type: Complex float32
- Wire Format: Automatic
- Stream args: (blank)
- Stream channels: []
- Device Address: "serial=xxxxxx" (supply your serial number)
- Device Arguments: ""
- Sync: No Sync
- Clock Rate (Hz): Default
- Num Mboards: 1
- Mb0: Clock Source: Default
- Mb0: Time Source: Default
- Mb0: Subdev Spec: (blank)
- Num Channels: 1
- Samp rate (sps): samp_rate
- Advanced Tab
- Show LO Controls: False
- RF Options Tab
- Ch0: Center Freq (Hz): tuning
- Ch0: AGC: Disabled
- Ch0: Gain Value: rf_gain
- Ch0: Gain Type: Absolute (dB)
- Ch0: Antenna: TX/RX
- Ch0: Bandwidth (Hz): 500000
- General Tab
- The ADALM-PLUTO (PlutoSDR) is a portable, self-contained RF learning module which is supported by GNU Radio source and sink blocks. It can operate from 70MHz to 3.8GHz. The source and sink blocks are created by an 'Industrial I/O' module. See https://wiki.analog.com/resources/tools-software/linux-software/gnuradio for details.
- IIO context URI: "ip:192.168.2.1" (without the quotes)
- LO Frequency: tuning
- Sample Rate: samp_rate
- RF Bandwidth: 500000
- Buffer size: 16384
- Quadrature: True
- RF DC Correction: True
- BB DC Correction: True
- Gain Mode (Rx1): Manual
- Manual Gain (Rx1)(dB): rf_gain
- Filter: (leave blank)
- Filter Auto: True
- The RTL-SDR is a receive-only, low-cost, self-contained RF signal tuner supported by GNU Radio. There are several varieties of this device; the one used in this section is the V.3 Model. The full description is RTL2832U R820T2 TCXC + BIAS T + HF. The device has a frequency range of 500 kHz to 1766 MHz, with operation from 500 kHz to 24 MHz in direct sampling mode. The source block is created by an Out of Tree module. See https://github.com/osmocom/gr-osmosdr for details.
- Output Type: Complex Float32
- Device Arguments: rtl=0
- Sample Rate (sps): samp_rate
- Ch0: Frequency (Hz): tuning
- Ch0: RF Gain (dB): rf_gain
- Ch0: IF Gain (dB): 20
- Ch0: BB Gain (dB): 20
- Ch0: Bandwidth (Hz): 200000
- The FunCube Pro+ is a receive only USB "dongle" with a range of 150kHz to 240MHz and 420MHz to 1.9GHz. The source block is created by an Out of Tree module. See https://github.com/dl1ksv/gr-fcdproplus for details.
- Device Name: (see Audio_Source#Device_Name for details)
- Unit: 1
- Lna enable, disable: 1 (enables low noise amplifier)
- Mixer gain enable, disable: 1
- Frequency (Unit Hz): tuning
- Frequency corr. (ppm): 0 (frequency correction in parts per million)
- If gain: rf_gain
Tuning and Using the Spectrum Analyzer
Set the following parameters in the QT GUI Sink
- Center Frequency (Hz): tuning
- Bandwidth (Hz): samp_rate
- Show RF Freq: Yes
The analyzer can be tuned with the Frequency control widget. If you check the "Display RF Frequencies" box in the run-time GUI window, then the scale on the 'Frequency Display' and 'Waterfall Display' tabs will show the actual frequencies with the tuned frequency in the center.
Building an FM Radio Receiver
Now that you have a basic receiver application running with a real-time display of your received data, let's build a useful application! Leave your current flowgraph in place. We will simply add more functionality rather than replacing what is already there.
Choose the flowgraph below for your hardware device.
UHD / USRP
ADALM-PLUTO
RTL-SDR dongle
FunCube Pro+