User:Duggabe: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
(third revision)
No edit summary
(71 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= DRAFT 3rd REVISION Guided_Tutorial_Hardware_Considerations =
Barry Duggan is a graduate of Georgia Tech in Electrical Engineering and is a career computer programmer specializing in real-time control, data communication systems, and email security. He has been an amateur radio operator since 1953, and now devotes most of his time to the GNU Radio project. He is a member of the GRCon22 Organizing Committee.
<!-- "Using GNU Radio with Hardware" -->
<!-- 16 May 2020 -->
== 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.
summary of programming languages I have used:
 
* FORTRAN
== Prerequisites ==
* COBOL
 
* Pascal
* Tutorials:
* assembly languages of various computers
** [[Guided_Tutorial_Introduction|'''A brief introduction to GNU Radio, SDR, and DSP''']]
* C
** [[Guided_Tutorial_GRC|'''Intro to GR usage: GRC and flowgraphs''']]
* HTML5
** [[Sample_Rate_Tutorial|'''Understanding sample rate''']]
* CSS3
 
* XML
== What Will I Need? ==
* JavaScript
 
* JSON
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]].
* node.js
 
* Python
== Creating a Software Radio Spectrum Analyzer ==
* PHP
 
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>
 
[[File:HW_tutorial_fg.png]]
 
=== Setting Parameters ===
 
The parameters are set as shown:
 
[[File:HW_tutorial_p1.png|400px]] &nbsp;&nbsp;&nbsp;&nbsp; [[File:HW_tutorial_p2.png|400px]]
 
=== Tuning and Using the Spectrum Analyzer ===
 
Set the following parameters in the [[QT_GUI_Sink|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. This trace shows four FM stations.
 
[[File:HW_tutorial_freq.png|800px]]
 
== Hardware Considerations ==
 
Setting the sample rate involves 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.
 
* [[WBFM_Receive|Wide Band FM Receive Block]]
* [[NBFM_Receive|Narrow Band FM Receive Block]]
* [https://wiki.gnuradio.org/index.php/File:RTLSDR_receive_fg.png RTL-SDR FM Receiver]
 
For audio considerations, see [[Audio_Sink]].

Revision as of 13:36, 18 November 2021

Barry Duggan is a graduate of Georgia Tech in Electrical Engineering and is a career computer programmer specializing in real-time control, data communication systems, and email security. He has been an amateur radio operator since 1953, and now devotes most of his time to the GNU Radio project. He is a member of the GRCon22 Organizing Committee.

summary of programming languages I have used:

  • FORTRAN
  • COBOL
  • Pascal
  • assembly languages of various computers
  • C
  • HTML5
  • CSS3
  • XML
  • JavaScript
  • JSON
  • node.js
  • Python
  • PHP