Tutorials: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
No edit summary
(UsingVSCode)
 
(20 intermediate revisions by 7 users not shown)
Line 1: Line 1:
For someone brand new to GNU Radio, we recommend the following sequence:
# All beginner tutorials
# The three "Core GNU Radio Mechanics" reference pages
# A couple mod/demod tutorials
Please leave tutorials-related feedback (either for an individual tutorial or overall organization) in the [[Talk:Tutorials|Discussion]] page of this article (tab at the top), we are always looking for ways to improve.
Please leave tutorials-related feedback (either for an individual tutorial or overall organization) in the [[Talk:Tutorials|Discussion]] page of this article (tab at the top), we are always looking for ways to improve.


Line 12: Line 6:
|
|
{| class="wikitable" style="background-color:#f1edff;" cellpadding="10"
{| class="wikitable" style="background-color:#f1edff;" cellpadding="10"
|'''Intermediate Tutorials'''
|'''Intermediate/Advanced Tutorials'''
Core GNU Radio Mechanics
Core GNU Radio Mechanics
# [[Stream_Tags|Stream Tags]]
# [[Stream_Tags|Stream Tags]]
# [[Polymorphic_Types_(PMTs)|Polymorphic Types (PMTs)]]
# [[Polymorphic_Types_(PMTs)|Polymorphic Types (PMTs)]]
# [[Message_Passing|Message Passing]]
# [[Message_Passing|Message Passing]]
Modulation and Demodulation (Pick One)
# [[Virtual_Sinks_and_Sources|Virtual Sinks and Sources]]
# [[Importing_Libraries|Importing Libraries]]
Modulation and Demodulation
# [[Simulation_example:_Narrowband_FM_transceiver|Narrowband FM]]
# [[Simulation_example:_Narrowband_FM_transceiver|Narrowband FM]]
# [[Simulation_example:_Single_Sideband_transceiver|Single Sideband (SSB)]]
# [[Simulation_example:_Single_Sideband_transceiver|Single Sideband (SSB)]]
# [[QPSK_Mod_and_Demod|QPSK Mod and Demod]]
# [[Simulation_example:_BPSK_Demodulation|BPSK Demodulation]]
# [[Simulation_example:_BPSK_Demodulation|BPSK Demodulation]]
# [[Guided_Tutorial_PSK_Demodulation|QPSK Mod and Demod]]
# [[Simulation_example:_FSK|Frequency Shift Keying (FSK)]]
# [[Simulation_example:_FSK|Frequency Shift Keying (FSK)]]
# [[Basic_OFDM_Tutorial|OFDM Basics]]
# [[Basic_OFDM_Tutorial|OFDM Basics]]
# [[Packet_Communications|Packet Communications]]
# [[Packet_Communications|Packet Communications]]
Creating Custom Blocks
# [[File_transfer_using_Packet_and_BPSK|File transfer using Packet and BPSK]]
# [[OutOfTreeModules|Out of Tree Modules (OOTs)]]
Custom Blocks and Out of Tree (OOT) Modules
# [[Guided_Tutorial_GNU_Radio_in_C%2B%2B|Writing blocks in C++]]
# [[Creating_Python_OOT_with_gr-modtool|Creating an OOT (Python block example)]]
# [[Creating_C++_OOT_with_gr-modtool|Creating an OOT (C++ block example)]]
# [[YAML_GRC|Writing the YAML file for a block (GR 3.8+)]]
# [[YAML_GRC|Writing the YAML file for a block (GR 3.8+)]]
Miscellaneous
Miscellaneous
Line 35: Line 32:
# [[Sample_Rate_Tutorial|Understanding Sample Rate]]
# [[Sample_Rate_Tutorial|Understanding Sample Rate]]
# [[Understanding_ZMQ_Blocks|Understanding ZMQ Blocks]]
# [[Understanding_ZMQ_Blocks|Understanding ZMQ Blocks]]
# [[Bandlimited_threshold_detector| Bandlimited Threshold and Detection Demo Application]]
# [[Pushbutton_IQ_Recorder_with_descriptive_filenames| Pushbutton I/Q Recorder with Descriptive File Names]]
|}
|}
|
|
Line 40: Line 39:
|'''Developer Resources'''
|'''Developer Resources'''
# [[Porting_Existing_Flowgraphs_to_a_Newer_Version|Porting Existing Flowgraphs to Newer Version]]
# [[Porting_Existing_Flowgraphs_to_a_Newer_Version|Porting Existing Flowgraphs to Newer Version]]
# [[GNU Radio 3.10 OOT Module Porting Guide|Porting Existing OOTs from 3.9 to 3.10]]
# [[GNU_Radio_3.9_OOT_Module_Porting_Guide|Porting Existing OOTs from 3.8 to 3.9]]
# [[GNU_Radio_3.8_OOT_Module_Porting_Guide|Porting Existing OOTs from 3.7 to 3.8]]
# [[GNU_Radio_3.8_OOT_Module_Porting_Guide|Porting Existing OOTs from 3.7 to 3.8]]
# [[GNU_Radio_3.9_OOT_Module_Porting_Guide|Porting Existing OOTs from 3.8 to 3.9]]
# [[VOLK_Guide|VOLK: What it does, why it rocks, how to write new kernels]]
# [[VOLK_Guide|Volk- what it does, why it rocks, how to write new kernels]]
# [[ALSAPulseAudio|Working with ALSA and Pulse Audio]]
# [[ALSAPulseAudio|Working with ALSA and Pulse Audio]]
# [[UsingVSCode|Using Visual Studio Code for Source level debugging of C++ OOTs]]
# [[UsingVSCode|Using Visual Studio Code for GNU Radio Development]]
# [[UsingEclipse|Using Eclipse for Building and Source level debugging C++ OOTs]]
# [[UsingEclipse|Using Eclipse for Building and Source level debugging C++ OOTs]]
# [[UsingCB|Using Code::Blocks IDE for GNU Radio Development]]
# [[UsingCB|Using Code::Blocks IDE for GNU Radio Development]]
# [[DevelopingWithGit|Git and GNU Radio]]
# [[DevelopingWithGit|Git and GNU Radio]]
# [[Octave|How to use Octave or Matlab with GNU Radio]]
# [[Octave|How to use Octave or Matlab with GNU Radio]]
# [http://www.trondeau.com/blog/2013/9/15/explaining-the-gnu-radio-scheduler.htmlThe GNU Radio Scheduler]
# [http://www.trondeau.com/blog/2013/9/15/explaining-the-gnu-radio-scheduler.html The GNU Radio Scheduler]
# [[CustomBuffers|Using Custom Buffers for Hardware Accelerated Blocks]]
# [[CustomBuffers|Using Custom Buffers for Hardware Accelerated Blocks]]
# [[Understanding_XMLRPC_Blocks|Remote Control and Automation of Flowgraphs with XMLRPC]]
# [[Understanding_XMLRPC_Blocks|Remote Control and Automation of Flowgraphs with XMLRPC]]
|}
|}
|}
|}

Latest revision as of 09:01, 4 September 2024

Please leave tutorials-related feedback (either for an individual tutorial or overall organization) in the Discussion page of this article (tab at the top), we are always looking for ways to improve.

Beginner Tutorials

Introducing GNU Radio

  1. What is GNU Radio?
  2. Installing GNU Radio
  3. Your First Flowgraph

Flowgraph Fundamentals

  1. Python Variables in GRC
  2. Variables in Flowgraphs
  3. Runtime Updating Variables
  4. Signal Data Types
  5. Converting Data Types
  6. Packing Bits
  7. Streams and Vectors
  8. Hier Blocks and Parameters

Creating and Modifying Python Blocks

  1. Creating Your First Block
  2. Python Block With Vectors
  3. Python Block Message Passing
  4. Python Block Tags

DSP Blocks

  1. Low Pass Filter Example
  2. Designing Filter Taps
  3. Sample Rate Change
  4. Frequency Shifting
  5. Reading and Writing Binary Files

SDR Hardware

  1. RTL-SDR FM Receiver
  2. B200-B205mini FM Receiver
Intermediate/Advanced Tutorials

Core GNU Radio Mechanics

  1. Stream Tags
  2. Polymorphic Types (PMTs)
  3. Message Passing
  4. Virtual Sinks and Sources
  5. Importing Libraries

Modulation and Demodulation

  1. Narrowband FM
  2. Single Sideband (SSB)
  3. QPSK Mod and Demod
  4. BPSK Demodulation
  5. Frequency Shift Keying (FSK)
  6. OFDM Basics
  7. Packet Communications
  8. File transfer using Packet and BPSK

Custom Blocks and Out of Tree (OOT) Modules

  1. Creating an OOT (Python block example)
  2. Creating an OOT (C++ block example)
  3. Writing the YAML file for a block (GR 3.8+)

Miscellaneous

  1. Understanding a Flowgraph's Python Code
  2. Using GNU Radio With SDRs
  3. IQ and Complex Signals
  4. Understanding Sample Rate
  5. Understanding ZMQ Blocks
  6. Bandlimited Threshold and Detection Demo Application
  7. Pushbutton I/Q Recorder with Descriptive File Names
Developer Resources
  1. Porting Existing Flowgraphs to Newer Version
  2. Porting Existing OOTs from 3.9 to 3.10
  3. Porting Existing OOTs from 3.8 to 3.9
  4. Porting Existing OOTs from 3.7 to 3.8
  5. VOLK: What it does, why it rocks, how to write new kernels
  6. Working with ALSA and Pulse Audio
  7. Using Visual Studio Code for GNU Radio Development
  8. Using Eclipse for Building and Source level debugging C++ OOTs
  9. Using Code::Blocks IDE for GNU Radio Development
  10. Git and GNU Radio
  11. How to use Octave or Matlab with GNU Radio
  12. The GNU Radio Scheduler
  13. Using Custom Buffers for Hardware Accelerated Blocks
  14. Remote Control and Automation of Flowgraphs with XMLRPC