wiki:Tutorials/k0SDR/Tutorial01b

Version 10 (modified by nilanjan, 10 years ago) ( diff )

Simple radio example with GNURADIO benchmark scripts

Description

This example will utilize an OEDL experiment script to execute packet transfers over a radio link created using GNU Radio. This is will involve running a GNU Radio benchmark script two nodes each with a USRP2.

Hardware / Software Resources utilized

  1. Grid nodes with a USRP2 connect via Ethernet.
  2. baseline-12-04-gnu.ndz: disk image loaded onto nodes. This image has all the precompiled - software required to configure the USRP2s and all the required GNU Radio software libraries. The USRP2's interface with the node is already configured.
  3. GNU Radio - software library to create SDR. Click here for additional info.
  4. USRP2 - hardware platform for SDR. Click here for more info.

Set up

  • After logging into grid console, make sure all nodes are turned off
    nilanjan@console.grid:~$ omf tell -a offh -t system:topo:all
    
  • Verify state of node before continuing. Make sure all nodes are in the POWEROFF state.
    nilanjan@console.grid:~$ omf stat
    
  • Image nodes. Two (2) are required to run - check inventory status to find nodes with 2 similar USRP2s. In this examples we'll use node1-1 and node1-2.
    nilanjan@console.grid:~$ omf load -i baseline-12-04-gnu.ndz -t node1-1,node1-2
    
  • Turn nodes back on and verify they are in POWERON state
    nilanjan@console.grid:~$ omf tell -a on -t system:topo:imaged
    

OEDL script overview

blah blah and ?

Running OEDL script and viewing results

  • Run the experiment script using the following OMF command. The output is show as well.
    nilanjan@console.grid:~$ omf exec system:exp:gnu-benchmark
    
     INFO NodeHandler: OMF Experiment Controller 5.4 (git 3fb37b9)
     INFO NodeHandler: Reading configuration file /etc/omf-expctl-5.4/services.yaml
     INFO NodeHandler: Add domain http - http://internal1.orbit-lab.org:5054/
     INFO NodeHandler: Add domain http - http://repository1.orbit-lab.org:5054/
     INFO NodeHandler: Slice ID: default_slice (default)
     INFO NodeHandler: Experiment ID: default_slice-2014-07-17t14.20.09.457-04.00
     INFO NodeHandler: Message authentication is disabled
     INFO Experiment: load system:exp:stdlib
     INFO property.resetDelay: resetDelay = 230 (Fixnum)
     INFO property.resetTries: resetTries = 1 (Fixnum)
     INFO Experiment: load system:exp:eventlib
     INFO Experiment: load system:exp:winlib
     INFO Experiment: load system:exp:gnu-benchmark
     INFO property.rate: rate = ".250M" (String)
     INFO property.modulation: modulation = "bpsk" (String)
     INFO property.freq: freq = "2410000000" (String)
     INFO property.runtime: runtime = 10 (Fixnum)
     INFO Topology: Loaded topology '/tmp/pxe_slice-2014-07-17t13.52.30.457-04.00-topo-success'.
     INFO Topology: Loaded topology 'system:topo:imaged'.
    TX: node1-2.grid.orbit-lab.org
    RX: node1-1.grid.orbit-lab.org
     INFO ALL_UP_AND_INSTALLED: Event triggered. Starting the associated tasks.
     INFO exp: Request from Experiment Script: Wait for 2s....
     INFO exp: Start receiver app
     INFO exp: Request from Experiment Script: Wait for 2s....
     INFO exp: Start sending packets
     INFO exp: Request from Experiment Script: Wait for 10s....
     INFO exp: Stop transmitter and receiver
     INFO exp: Request from Experiment Script: Wait for 2s....
     INFO exp: done
     INFO EXPERIMENT_DONE: Event triggered. Starting the associated tasks.
     INFO NodeHandler:
     INFO NodeHandler: Shutting down experiment, please wait...
     INFO NodeHandler:
     INFO run: Experiment default_slice-2014-07-17t14.20.09.457-04.00 finished after 0:25
    
    nilanjan@console.grid:~$
    
  • Results from running the OEDL experiment can be found in a log file in /tmp directory. The name of the log file is the default_slice name found from the OEDL output appended with .log. A successful run will have several lines similar to the following. This is will show the packet number, number of packets received and the number of correctly formed packets as seen from the receiver.
    :
    :
    2014-07-21 10:51:07 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'test:app:benchmark_rx#1' (node1-1.grid.orbit-lab.org) - msg: 'ok =  True  pktno =  140  n_rcvd =  140  n_right =  140'
    2014-07-21 10:51:07 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'test:app:benchmark_rx#1' (node1-1.grid.orbit-lab.org) - msg: 'ok =  True  pktno =  141  n_rcvd =  141  n_right =  141'
    2014-07-21 10:51:07 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'test:app:benchmark_rx#1' (node1-1.grid.orbit-lab.org) - msg: 'ok =  True  pktno =  142  n_rcvd =  142  n_right =  142'
    :
    :
    

The output from the transmitter will up as a series of periods '.' similar to the following:

2014-07-21 10:51:09 DEBUG nodeHandler::AgentCommands: APP_EVENT STDERR from: 'test:app:benchmark_tx#1' (node1-2.grid.orbit-lab.org) - msg: '.................................................................U............................................................................................................................................................................................................................'
Note: See TracWiki for help on using the wiki.