wiki:Tutorials/k0SDR/Tutorial15

Zynq-based WISER platform - Spectrum sensing with multiple nodes (OEDL)

Table of Contents

  1. SDR Tutorials
    1. Working with USRP2 - Universal Software Radio Peripheral
      1. Description
      2. Hardware / Software Resources utilized
      3. Set up
      4. Usage
      5. Capture waveform and record to file & add time-domain plot of waveform
      6. Troubleshooting
    1. Simple radio example with GNURADIO benchmark scripts
      1. Description
      2. Hardware / Software Resources utilized
      3. Set up
      4. Running GNU Radio benchmark scripts
      5. Outputs from transmitter and receiver
      6. Troubleshooting
    1. Simple radio example with GNURADIO benchmark scripts (OEDL)
      1. Description
      2. Hardware / Software Resources utilized
      3. Set up
      4. Running OEDL script and viewing results
      5. OEDL script
    1. OFDM radio example with GNURADIO benchmark scripts
      1. Description
      2. Hardware / Software Resources utilized
      3. Set up
      4. Running OEDL script
    1. Spectrum sensing with USRP2 and wiserd
      1. Description
      2. Hardware / Software Resources utilized
      3. Set up
      4. Generate signal source file using octave
      5. Set up transmitting node
      6. Set up receiving node(s)
    1. Spectrum sensing with USRP2 and wiserd (OEDL and OML)
      1. Description
      2. Hardware / Software Resources utilized
      3. Transmit predefined tone
      4. Record spectrum data to an OML file
      5. Performing the experiment using OEDL
    1. Transmitting wideband signals using USRP X310 and wiserd
      1. Description
      2. Transmitting a signal using wiserd
      3. Creating the signal
    1. Running DSC match script from the grid console
    1. Working with GNURadio and Nutaq ZeptoSDR
      1. Description
      2. Set up
      3. Run the GRC scripts
    1. Realtek 2832 EZCap - A Frugal SDR
      1. Prereqs
      2. A cheap spectrum analyzer
    1. MacSwitch (Obsolete)
      1. Prerequisites
      2. Start Mac Switch
    1. Zynq-based WISER platform - Start-up test
      1. Description
      2. Hardware / Software Resources utilized
      3. Set up
      4. Loading the Zedboard
      5. Running a start up test
    1. Zynq-based WISER platform - Spectrum Sensing
      1. Description
      2. Hardware / Software Resources utilized
      3. Set up
      4. Start spectrum sensing
    1. Zynq-based WISER platform - Spectrum sensing with multiple nodes (OEDL)
      1. Description
      2. Hardware / Software Resources utilized
      3. Spectrum sensing with an OEDL script
    1. Zynq-based WISER platform - Building the Firmware
      1. Description
      2. Getting the FPGA source code
      3. Building the FPGA design
      4. Building ARM core software
    1. Nutaq - PicoSDR start-up and configuration
      1. Description
      2. Set up
      3. Launch demo scripts
    1. Multi channel sample collection with x310
      1. Description
      2. Set up
      3. Collect samples
    1. Getting started with RFNoC X310
      1. Description
      2. Set up
      3. Find USRP X310s
      4. Program the FPGA
    1. Multi Channel Sample Processing & Visualization
      1. Hardware / software resources utilized
      2. Receive multi channel signal for processing and plotting
      3. Transmit a signal using a single usrp
    2. Plot the IQ Constellation of received signal
      1. Multi-channel Uhd STreamer (MUST)
      2. Description
      3. How it works (without going into the source-code :-D
      4. Source code & compilation
      5. Hardware interface application
      6. XML file
      7. Command server
      8. Usage Example
      9. Signal handler applications
      10. Tutorials
    1. Using two RFNoC streams simultaneously on a single USRP device
      1. Description
      2. Set Up
      3. Running the Simulation
    1. Using 2 transmit or 2 receive antennas simultaneously
      1. Description
      2. Set Up
      3. Running the Experiment
    1. Generate random transmissions emulating Primary Transmitters
      1. Description
      2. Set Up
      3. Running the Experiment
    1. RFNoC Spectrum Sensing
      1. Description
      2. Set Up
        1. Prepare Receive Node
        2. Prepare Receive USRPs
        3. Prepare Transmit Node
        4. Prepare Transmit USRP
        5. Set up SSH tunnel from your local port 5100 to grid.orbit-lab.org:5100
        6. Set up a web proxy for the receive node
      3. Run the experiment

Description

This tutorial demonstrates how to record spectrum on multiple nodes using an OEDL script.

Hardware / Software Resources utilized

  1. SB6 nodes with WISER platform.
  2. wiser_sb6_zedboard.ndz: disk image loaded onto nodes.
  3. wiserd application - Check here for more info.

Spectrum sensing with an OEDL script

  • Follow the start-up instructions to program and setup the FPGAs on both the nodes.
  • The following OEDL script resides on the console of SB6 and can be used to run spectrum sensing on both the nodes at once.
    defProperty('radio',"zynq","")
    defProperty('rx_freq1', "800e6", "")
    defProperty('rx_freq2', "815e6", "")
    defProperty('rx_gain', "10", "")
    defProperty('rx_fft_bins',"256","")
    defProperty('rx_fft_scaling',"170","")
    defProperty('rx_fft_averaging',"256","")
    defProperty('start_fft',"0","")
    defProperty('time',10,"")
    
    require './wiserd.rb'
    
    defGroup('receiver', "node1-1.sb6.orbit-lab.org, node1-2.sb6.orbit-lab.org" ) do |node|
      node.addApplication("test:app:wiserd") do |app|
        app.setProperty('--radio',property.radio)
        if ((node).to_s.casecmp("node1-1.sb6.orbit-lab.org") == 0)
          app.setProperty('--zynq_rx_freq', property.rx_freq1)
        else
          app.setProperty('--zynq_rx_freq', property.rx_freq2)
        end
    
        app.setProperty('--zynq_rx_gain', property.rx_gain)
        app.setProperty('--zynq_fft_bins', property.rx_fft_bins)
        app.setProperty('--zynq_fft_scaling', property.rx_fft_scaling)
        app.setProperty('--zynq_avg_window', property.rx_fft_averaging)
        app.setProperty('--fft_engine',property.start_fft)
      end
    end
    
    onEvent(:ALL_UP_AND_INSTALLED) do |event|
      wait 5
      info "Starting the Receiver"
      group("receiver").startApplications
      wait 1
      property.start_fft = "1"
      wait property.time
      property.start_fft = "0"
      group("receiver").stopApplications
      Experiment.done
    end 
    
  • The script here takes the receive center frequencies and run time as parameters along with the number of fft bins etc. Run the script by typing
    omf exec system:exp:zynq_spec_sense.rb --time 20
    
  • Run tcpdump on the nodes to see packets coming from the zedboard to the node
    root@node1-2:~# tcpdump -i eth2
    
  • FFT bin data is collected in /zynq_rx_fft.bin on each of the nodes. These files can be copied to the console and the spectrum can be plotted using an octave script.
Last modified 2 years ago Last modified on 09/24/15 11:40:53