User:Duggabe: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
(add flowgraph)
(third revision)
Line 1: Line 1:
<!-- Guided_Tutorial_Hardware_Considerations -->
= DRAFT 3rd REVISION Guided_Tutorial_Hardware_Considerations =
<!-- "Using GNU Radio with Hardware" -->
<!-- "Using GNU Radio with Hardware" -->
<!-- 14 May 2020 -->
<!-- 16 May 2020 -->
= DRAFT 2nd REVISION Guided_Tutorial_Hardware_Considerations =
== Introduction ==
== 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.
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.


== Prerequisites ==
== Prerequisites ==
Line 19: Line 18:


== Creating a Software Radio Spectrum Analyzer ==
== Creating a Software Radio Spectrum Analyzer ==
This example uses an [https://kb.ettus.com/B200/B210/B200mini/B205mini Ettus Research USRP B200] and the [https://github.com/EttusResearch/uhd USRP Hardware Driver (UHD)]. The B200 provides a fully integrated 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].


Using gnuradio-companion (GRC) and the following Block descriptions, build this flowgraph.<br>
Using gnuradio-companion (GRC) and the following Block descriptions, build this flowgraph.<br>
Line 24: Line 27:
[[File:HW_tutorial_fg.png]]
[[File:HW_tutorial_fg.png]]


=== Parameters For Popular Devices ===
The parameters are set as shown:
 
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].
** 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
<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.
** 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
<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.
[[File:HW_tutorial_p1.png|400px]] &nbsp;&nbsp;&nbsp;&nbsp; [[File:HW_tutorial_p2.png|400px]]
** 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 ===
=== Tuning and Using the Spectrum Analyzer ===


Set the following parameters in the QT GUI Sink
Set the following parameters in the [[QT_GUI_Sink|QT GUI Sink block]]:
* Center Frequency (Hz): tuning
* Center Frequency (Hz): tuning
* Bandwidth (Hz): samp_rate
* Bandwidth (Hz): samp_rate
Line 99: Line 40:
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.
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 ==
You can adjust the Sample Rate to see the effects on the received spectrum.
 
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:HW_tutorial_freq.png|800px]]


[[File:Pluto_FM_fg.png|800px]]
== Hardware Considerations ==
<hr>


<b>RTL-SDR dongle</b>
Setting the sample rate has several factors to consider.
* The various hardware devices have limits on what sample rates they can deliver. Some, such as the FunCube Pro+, have a fixed sample rate of 192kHz. Setting the flowgraph sample rate must be within the limitations of the device.
* The computer hardware and operating system you are using will set limitations on the data throughput, such as:
** USB2 vs USB3
** processor speed
** number of CPU cores
* Data overruns are indicated by the letter 'O' displayed on the terminal screen. These are because the input data stream is producing data faster than the flowgraph can consume it. Adjusting the sample rate and/or the input buffer size (where available) should alleviate the problem.


[[File:RTLSDR_receive_fg.png|800px]]
== Building an FM Receiver ==
<hr>


<b>FunCube Pro+</b>
Now that you have a tested input device, you can build an FM Receiver with it. See the following examples and use your hardware.


[[File:FunCube_FM_fg.png|800px]]
* [[WBFM_Receive|Wide Band FM Receive Block]]
* [[NBFM_Receive|Narrow Band FM Receive Block]]

Revision as of 16:14, 16 May 2020

DRAFT 3rd 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.

Prerequisites

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

This example uses an Ettus Research USRP B200 and the USRP Hardware Driver (UHD). The B200 provides a fully integrated 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.

Using gnuradio-companion (GRC) and the following Block descriptions, build this flowgraph.

HW tutorial fg.png

The parameters are set as shown:

HW tutorial p1.png      HW tutorial p2.png

Tuning and Using the Spectrum Analyzer

Set the following parameters in the QT GUI Sink block:

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

You can adjust the Sample Rate to see the effects on the received spectrum.

HW tutorial freq.png

Hardware Considerations

Setting the sample rate has several factors to consider.

  • The various hardware devices have limits on what sample rates they can deliver. Some, such as the FunCube Pro+, have a fixed sample rate of 192kHz. Setting the flowgraph sample rate must be within the limitations of the device.
  • The computer hardware and operating system you are using will set limitations on the data throughput, such as:
    • USB2 vs USB3
    • processor speed
    • number of CPU cores
  • Data overruns are indicated by the letter 'O' displayed on the terminal screen. These are because the input data stream is producing data faster than the flowgraph can consume it. Adjusting the sample rate and/or the input buffer size (where available) should alleviate the problem.

Building an FM Receiver

Now that you have a tested input device, you can build an FM Receiver with it. See the following examples and use your hardware.