Difference between revisions of "Tutorials"

From GNU Radio
Jump to: navigation, search
(Non-GNU Radio-specific tutorials hosted on this wiki)
(Beginner User Level)
 
(30 intermediate revisions by 5 users not shown)
Line 1: Line 1:
= Tutorials =
+
= Beginner User Level =
 +
These tutorials are designed to guide new GNU Radio users to a better understanding of the project.
 +
* [[Guided_Tutorial_Introduction|'''A brief introduction to GNU Radio, SDR, and DSP''']]
 +
* [[Guided_Tutorial_GRC|'''Intro to GR usage: GRC and flowgraphs''']]
 +
* [[Sample_Rate_Tutorial|'''Understanding sample rate''']]
 +
* [[Guided_Tutorial_Programming_Topics|'''Brief intro to PMTs, Stream Tags, and Messaging Passing''']]
 +
* [[Simulation_example:_AM_transmitter_and_receiver|'''Simulation example: AM transmitter and receiver''']]
 +
* [[Guided_Tutorial_Hardware_Considerations|'''Using GNU Radio with Hardware''']]
 +
* [[Guided_Tutorial_PSK_Demodulation|'''Example Usage of GNU Radio: PSK Modulation / Demodulation''']]
  
== Guided Tutorials ==
+
= Intermediate User Level =
 +
* [[Flowgraph_Python_Code|'''Understanding a flowgraph's python code''']]
 +
* [[Embedded_Python_Block|'''Writing your own block''' (using Embedded Python Block)]]
 +
* [[OutOfTreeModules|'''Out of Tree modules''']]
 +
* [[XML_GRC|'''Writing the XML file for a block''' (for 3.7)]]
 +
* [[YAML_GRC|'''Writing the YAML file for a block''' (new in 3.8)]]
 +
* [[Guided_Tutorial_GNU_Radio_in_C++|'''Writing blocks in C++''']]
 +
* [[GNU Radio 3.8 OOT Module Porting Guide|'''Porting Existing OOTs from 3.7 to 3.8''']]
  
See the [[Guided_Tutorials|Guided Tutorials]] from the [[UsersWG|GNU Radio Community Development Working Group]]. These cover the basics of what GNU Radio is, interacting with the GNU Radio Companion, programming blocks, advanced programming concepts, hardware issues and exploration, and some details on dealing with digital demodulation.
+
= Expert User Level =
 +
* [[VOLK_Guide|'''Volk- what it does, why it rocks, how to write new kernels''']]
 +
* [[ALSAPulseAudio|'''Working with ALSA and Pulse Audio''']]
 +
* [[TutorialsSimulations|'''Simulations''']]
 +
* [[TutorialsTaggedStreams|'''Tagged streams for variable-length PDUs''']]
 +
* [[Basic OFDM Tutorial|'''Basics of OFDM''']]
  
== Beginner-level tutorials ==
+
= Developer Level =
 
+
* [[UsingVSCode|'''Using Visual Studio Code for Source level debugging of C++ OOTs''']]
Note that even as a GNU Radio beginner, you'll be delving into the realm of software defined radio, which is a complex field.
+
* [[UsingEclipse|'''Using Eclipse for Building and Source level debugging C++ OOTs''']]
 
+
* [[UsingCB|'''Using Code::Blocks IDE for GNU Radio Development''']]
* [[TutorialsCoreConcepts|Core concepts of GNU Radio applications]] - A must-read for everyone
+
* [[DevelopingWithGit|'''Git and GNU Radio''']]
* [[TutorialsWritePythonApplications|WritePythonApplications]] - A tutorial on how to develop Python GNU Radio applications. Some DSP and programming background required.
+
* [[Octave|'''How to use Octave or Matlab with GNU Radio''']]
* [[TutorialsQTGUI|QTGUI Tutorial]] - A tutorial on how to develop Python GNU Radio applications. Some DSP and programming background required.
+
* [http://www.trondeau.com/blog/2013/9/15/explaining-the-gnu-radio-scheduler.html '''The GNU Radio Scheduler''']
* [http://www.trondeau.com/gr-tutorial/ Tom Rondeau's gr-tutorial] - Some tutorials from the boss himself.
 
* [[TutorialsSimulations|Simulations]] - A tutorial on how to use GNU Radio without hardware to verify performance and simulate RF conditions.
 
 
 
== Tutorials on developing with and for GNU Radio ==
 
 
 
=== Writing GNU Radio code ===
 
 
 
* [[OutOfTreeModules|Developing out-of-tree modules and writing blocks]] - This is the first tutorial you should entirely read and comprehend.
 
** [[OutOfTreeModulesConfig|Tutorial on how to configure OOT packages to find and link against GNU Radio]]
 
* [[TutorialsTaggedStreams|Tagged streams for variable-length PDUs]]
 
* [[TutorialPythonFunctions|Writing a Python Function for GRC]]
 
 
 
=== Advanced Development ===
 
 
 
* [[TutorialsDebugging|How to debug your applications]]
 
* The GNU Radio Scheduler http://www.trondeau.com/blog/2013/9/15/explaining-the-gnu-radio-scheduler.html
 
* [http://www.brainshark.com/SPS/vu?pi=zH8zQcV8dzAXPbz0 VOLK Introduction]
 
* [[TutorialsRemoteGUI|Remote GRC Operations]]
 
* [[ALSAPulseAudio|Working with ALSA and Pulse Audio (Audio sink/source under Linux)]]
 
 
 
=== Development tools ===
 
 
 
* [[DevelopingWithGit|Git and GNU Radio]] - A starter on how to use Git for GNU Radio development
 
* [[UsingVim|Using VIM for editing GNU Radio modules]]
 
* [[UsingCB|Using Code::Blocks for editing GNU Radio modules]]
 
 
 
== Non-GNU Radio-specific tutorials hosted on this wiki ==
 
 
 
* [[AllAboutDecibels|All about decibels (dB)]]
 
 
 
The 3rd-party documentation lives on a separate page which can be found [[ExternalDocumentation|here]].
 
 
 
== Attachments ==
 

Latest revision as of 00:11, 14 April 2020

Beginner User Level

These tutorials are designed to guide new GNU Radio users to a better understanding of the project.

Intermediate User Level

Expert User Level

Developer Level