== Zynq-based WISER platform - Spectrum sensing with multiple nodes (OEDL) == [[TOC(Tutorials/k0SDR*)]] === 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 - [http://wiser.orbit-lab.org/wiki/wiser Check here for more info]. === Spectrum sensing with an OEDL script === * Follow the [wiki:Tutorials/k0SDR/Tutorial13 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| defGroup('receiver', "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 sys: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.