Changes between Version 2 and Version 3 of Tutorials/k0SDR/Tutorial14


Ignore:
Timestamp:
Sep 8, 2015, 6:25:33 PM (9 years ago)
Author:
prasanthi
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tutorials/k0SDR/Tutorial14

    v2 v3  
    1 == Zybq-based WISER platform startup ==
     1== Zynq-based WISER platform startup ==
    22
    33[[TOC(Tutorials/k0SDR*)]]
     
    1616 * After logging into SB6 console, make sure all nodes are turned off
    1717{{{
    18 nilanjan@console.grid:~$ omf tell -a offh -t system:topo:all
     18 omf tell -a offh -t system:topo:all
    1919}}}
    2020
    2121 * Verify state of node before continuing. Make sure all nodes are in the POWEROFF state.
    2222{{{
    23 nilanjan@console.grid:~$ omf stat
     23 omf stat -t all
    2424}}}
    2525
    26  * Image nodes
     26 * Image a node
    2727{{{
    28 nilanjan@console.grid:~$ omf load -i ubuntu-14-04-64bit-sdr.ndz -t node20-20,node19-19,node8-8 -r 20
     28omf load -i wiser_sb6_zedboard.ndz -t node1-1
    2929}}}
     30 
     31=== Starting up Zedboard and Testing the RF setup
    3032
    31  * After nodes are imaged, verify that nodes are in POWEROFF state. Otherwise issue the following to turn them off for a reboot
    32 {{{
    33 nilanjan@console.grid:~$ omf tell -a offh -t system:topo:all
    34 }}}
    35 
    36  * Turn nodes back on and verify they are in POWERON state
    37 {{{
    38 nilanjan@console.grid:~$ omf tell -a on -t node20-20,node19-19,node8-8
    39 }}}
    40 
    41 In this example node8-8 and node19-19 is used as the transmitting nodes and the node20-20 as the receiver
    42 
    43 === Generate signal source file using octave ===
    44 
    45 On each transmiting node, create a signal file using octave. You can use the scripts provided here as an example. On node8-8 create a file ''s1.bin'' using the lines below
    46 {{{
    47 root@node8-8:~# cd wiserd
    48 root@node8-8:~/wiserd# octave
    49 octave:1> signal = fGenFDSignal(256,50,10,'1half');
    50 octave:2> saveToWiserdFile(signal,'s1.bin');
    51 octave:3> exit
    52 }}}
    53 
    54 The signal will look something like the following in the frequency domain - notice the first half of the spectrum is populated:
    55   || [[Image(s1.png, width=500px)]] ||
    56 
    57 Create a similar signal on node19-19 but with the 2nd half of the spectrum populated
    58 {{{
    59 octave:1> signal = fGenFDSignal(256,50,10,'2half');
    60 octave:2> saveToWiserdFile(signal,'s2.bin');
    61 }}}
    62   || [[Image(s2.png, width=500px)]] ||
    63 
    64 
    65 === Set up transmitting node ===
    66 
    67 
    68  * ssh into each node and start the wiserd interface:
    69 {{{
    70 root@node8-8> wiserd
    71 linux; GNU C++ version 4.8.2; Boost_105400; UHD_003.008.002-86-g566dbc2b
    72 
    73 -- Opening a USRP2/N-Series device...
    74 -- Current recv frame size: 1472 bytes
    75 -- Current send frame size: 1472 bytes
    76 -- Detecting internal GPSDO.... No GPSDO found
    77 -- Successfully tuned to 900.000000 MHz
    78 --
    79 -- Successfully tuned to 900.000000 MHz
    80 --
    81 Ready!
    82 >
    83 }}}
    84 
    85  * At the wiserd prompt set the carrier frequency, sampling rate & gain. Then link the transmitter to the signal source which is the binary file generated in octave from prior step:
    86 {{{
    87 > --uhd_tx_freq 700e6 --uhd_tx_rate 5e6 --uhd_tx_gain 20 --tran_wavefilename s1.bin
    88 -- Successfully tuned to 700.000000 MHz
    89 uhd_tx_freq 700000000
    90 uhd_tx_gain 20
    91 uhd_tx_rate 5000000
    92 > --addmodule signalfromfile
    93 Consumer signalfromfile added
    94 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
    95 >
    96 }}}
    97 
    98 In order to set parameter values, multiple arguments can be used in one line:
    99 
    100  ''--uhd_tx_freq'' set carrier frequenct to 700MHz
    101 
    102  ''--uhd_tx_rate'' set sampling rate to 5M samples/sec
    103 
    104  ''--uhd_tx_gain'' set transmit gain to 20dB.
    105 
    106  ''--tran_wavefilename''  tells the links the transmitter source to a binary filename.
    107 
    108 ''--addmodule signalfromfile'' opens the above filename, reads the samples and streams to the usrp.
    109 
    110 At this point the USRP will continuously transmit the signal util the delete command is issued:
    111 
    112  ''--delmodule signalfromfile'' stops tranmitting signal.
    113 
    114 
    115 Now set up the transmitter on node19-19 using similar commands.
    116 
    117 
    118 
    119 === Set up receiving node(s) ===
    120 On the receiving node (node20-20), run wiserd to capture a snapshot of the signal from both transmitters.
    121 {{{
    122 root@node20-20> wiserd
    123 linux; GNU C++ version 4.8.2; Boost_105400; UHD_003.008.002-86-g566dbc2b
    124 
    125 -- Opening a USRP2/N-Series device...
    126 -- Current recv frame size: 1472 bytes
    127 -- Current send frame size: 1472 bytes
    128 -- Detecting internal GPSDO.... No GPSDO found
    129 -- Successfully tuned to 900.000000 MHz
    130 --
    131 -- Successfully tuned to 900.000000 MHz
    132 --
    133 Ready!
    134 > --uhd_rx_freq 700e6 --uhd_rx_rate 5e6 --uhd_rx_gain 20 --recv_running_time 1000 --recv_output_filename rx_signal
    135 -- Successfully tuned to 700.000000 MHz
    136 --
    137 recv_output_filename rx_signal
    138 recv_running_time 1000
    139 uhd_rx_freq 700000000
    140 uhd_rx_gain 20
    141 uhd_rx_rate 5000000
    142 > --addmodule timesamplestofile --timed
    143 Consumer timesamplestofile added
    144 Consumer timesamplestofile finished
    145 
    146 > exit
    147 }}}
    148 
    149 
    150 Here the set command has an additional argument to limit capturing to 1000 milliseconds:
    151 
    152  ''--recv_output_filename'' set receiving signal filename.
    153 
    154  ''--recv_running_time''    set receiver run time in milliseconds. (optional)
    155 
    156 The --addmodule command options
    157 
    158  ''--addmodule timesamplestofile'' streams data from receiver to file
    159 
    160  ''--timed''             runs receiver for the specified amount of time. (optional)
    161 
    162 Received signal file name will automatically be appended with the frequency, rate and gain:
    163 {{{
    164 root@node20-20> ls -ltr *.bin
    165 -rw-r--r-- 1 root root 40003072 May 21 10:56 rx_signal_freq700000000_rate5000000_gain20.bin
    166 }}}
    167 
    168 Use octave to view the spectrum image:
    169 {{{
    170 octave:1> fReconFDSignal(readWiserdFile('rx_signal_freq700000000_rate5000000_gain20.bin', 256*500), 256);
    171 }}}
    172 
    173 Received signal should look simiar to
    174   || [[Image(signal.png, width=500px)]] ||