Changes between Version 57 and Version 58 of Old/Tutorials/k0SDR/Tutorial00


Ignore:
Timestamp:
Jul 16, 2007, 7:53:13 PM (17 years ago)
Author:
jonshan
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Old/Tutorials/k0SDR/Tutorial00

    v57 v58  
    1 This document is not meant to be a complete tutorial on GnuRadio, but to help you start to play around GnuRadio on Orbit Sandbox and to share my experiences on exploring this wonderful toy.
     1This document is not meant to be a complete tutorial on GNU Radio, but to help you start to play around GNU Radio on Orbit Sandbox and to share my experiences on exploring this wonderful toy.
    22
    33
     
    55 
    66
    7 Before you jump into GnuRadio on Orbit, you should have a clear picture on what GnuRadio is. An excellent starting reading material is Eric Blossom’s Exploring GNU Radio:[http://www.gnu.org/software/gnuradio/doc/exploring-gnuradio.html]. Eric is the founder of the whole GNU Radio project. Make sure you understand the data flow paths, including the receive path and the transmit path, understand the role that the USRP plays. USRP is a flexible USB device that connects the PC to the RF world. USRP has one motherboard, which connected to the PC via USB 2.0 and can support up to four daughterboard. Each daughterboard has RF ends that can either transmit or receive waveform from the air. There are different types of daughterboard supporting a variety radio range, e.g. for example, Flex400 supports both transmit and receive in the frequency band 400MHz to 500 Mhz. You need to refresh your memory on the sample theory.
     7Before you jump into GNU Radio on Orbit, you should have a clear picture on what GNU Radio is. An excellent starting reading material is Eric Blossom’s Exploring GNU Radio:[http://www.gnu.org/software/gnuradio/doc/exploring-gnuradio.html]. Eric is the founder of the whole GNU Radio project. Make sure you understand the data flow paths, including the receive path and the transmit path, understand the role that the USRP (Universal Software Radio Peripheral) plays. USRP is a flexible USB device that connects the PC to the RF world. USRP has one motherboard, which connected to the PC via USB 2.0 and can support up to four daughterboard. Each daughterboard has RF ends that can either transmit or receive waveform from the air. There are different types of daughterboard supporting a variety radio range, e.g. for example, Flex400 supports both transmit and receive in the frequency band 400MHz to 500 Mhz. You need to refresh your memory on the sample theory.
    88
    99To program GnuRadio, you need to build a radio by creating a graph (as in graph theory) where the vertices are signal processing blocks and the edges represent the data flow between them. The signal processing blocks are implemented in C++. The graphs are constructed and run in Python. If you are not familiar with C++ or Python, find a tutorial online and learn it.
     
    1818The frequency that the BasicTX operates on ranges from 2 MHz to 200 MHz, and the BasicRX can receive from 2 MHz to 300+ MHz.
    1919
    20 Since there is no way to put a matching antenna on BasicTX/BasicRX, the two BasicTX/BasicRX daughterboard are connected through two wires, which means the waveform transmitted from BasicTX to BasicRX doesn’t go through air but the two wires. For right now, the TX_B port of the BasicTX on node1-1is wired to the RX_B on the BasicRX on node1-2, and the the TX_A of the BasicTX on node1-1 is wired to the RX_B on the BasicRX mounted on node1-2. Therefore, make sure you have node1-1 as the transmitter and have node 1-2 be the receiver.
     20Since there is no way to put a matching antenna on BasicTX/BasicRX, the two BasicTX/BasicRX daughterboard are connected through two wires, which means the waveform transmitted from BasicTX to BasicRX doesn’t go through air but the two wires. For right now, the TX_B port of the BasicTX on node1-1 is wired to the RX_B on the BasicRX on node1-2, and the the TX_A of the BasicTX on node1-1 is wired to the RX_B on the BasicRX mounted on node1-2. Therefore, make sure you have node1-1 as the transmitter and have node 1-2 be the receiver.
    2121
    2222{{{
     
    2626
    2727== Make sandbox5 ready, step by step. ==
    28 I assume you’ve read the tutorial about Orbit, and you know how to reserve a time slot, how to log into the nodes, and how to image the nodes. (Otherwise read [wiki:HowToGetStarted Getting Started].)
     28I assume you’ve read the tutorial about Orbit, and you know how to reserve a time slot, how to log into the nodes, and how to image the nodes. (Otherwise, read [wiki:HowToGetStarted Getting Started].)
    2929
    3030To load the nodes with the right image:
     
    6868      ./usrp1_rx_cfile.py -f 10e3 -N21000 -g 10 noise.dat
    6969   }}}
    70     * '-f 10e3': tells the GnuRadio to listen to the frequency band 10kHz.
    71     * '-N21000': sample 21000 data points.
     70    * '-f 10e3': tells the GnuRadio to listen to the frequency band centered at 10kHz.
     71    * '-N21000': write 21000 data points to file.
    7272    * '-g 10': set the gain to 10.
    7373    * 'noise.dat': set the file name that will store the data samples.
    7474
    7575
    76     Using the matlab script [http://www.orbit-lab.org/attachment/wiki/Documentation/GNURadio/plotall.m plotall('noise.dat')], you can get the following figure:
     76    Using the matlab script [http://www.orbit-lab.org/attachment/wiki/Documentation/GNURadio/plotall.m plotall('noise.dat')], you will see the following output:
    7777
    7878[[Image(Documentation/GNURadio:noise.dat.jpeg)]]
     
    8484       ./usrp_siggen_multiple_sine.py -f 1e6 -w 10k -a 1000 -m 1 --sine
    8585   }}}
    86     * '-f 1e6': tells the GnuRadio to modulate the baseband waveform to 1MHz.
    87     * '--sine': the format of the waveform that will be sent out is a sine wave.
    88     * '-w 10k': set the original baseband frequency to 10k,
     86    * '-f 1e6': tells the USRP to modulate the baseband waveform to 1MHz.
     87    * '--sine': the type of the waveform that will be sent out is a sine wave.
     88    * '-w 10k': set the original baseband frequency to 10k.
    8989    * '-a 1000': set the amplitude to 1000.
    9090    * '-m 1': only transmit one sine wave, instead of multiple sine waves.
     
    9494      ./usrp1_rx_cfile.py -f 1e6 -N21000 -g 10 rx_1m.dat
    9595   }}}
    96     * '-f 1e6': tells the GnuRadio to listen to the frequency band 1MHz.
    97     * '-N21000': sample 21000 data points.
     96    * '-f 1e6': tells the GnuRadio to listen to the frequency band centered at 1MHz.
     97    * '-N21000': write 21000 data points to file.
    9898    * '-g 10': set the gain to 10.
    9999    * 'rx_1m.dat': set the file name that will store the data samples.