Gnuradio & bladeRF full-duplex example

Follow our development of DSP and SDR tutorials
Post Reply
mantydze
Posts: 1
Joined: Wed Oct 09, 2013 8:18 am

Gnuradio & bladeRF full-duplex example

Post by mantydze »

Hello guys,

I followed instructions and RX/TX works fine separately (osmocom_fft and osmocom_siggen),
https://github.com/Nuand/bladeRF/wiki/G ... _operation

but...
If you'd like to run a quick test in a full-duplex configuration, consider creating a GRC flowgraph.
Does anyone where to find simple(relatively) full-duplex flowgraph examples? Or maybe someone can make one?


I'm new here... :)

Thanks
spyhound
Posts: 3
Joined: Sat May 03, 2014 11:03 am

Re: Gnuradio & bladeRF full-duplex example

Post by spyhound »

I am also looking for the same info to use bladerf as a vector network analyzer.
bpadalino
Posts: 303
Joined: Mon Mar 04, 2013 4:53 pm

Re: Gnuradio & bladeRF full-duplex example

Post by bpadalino »

I don't have the flowgraph handy, but I've asked jynik to post the one we've been using recently for loopback testing.

spyhound, something to take careful note of is that the PLL's inside of the LMS6002D are independent and can lock to a different phase for every lock. After each retuning of the front end, you will need to figure out and compensate that initial phase offset.

Brian
jynik
Posts: 455
Joined: Thu Jun 06, 2013 8:15 pm

Re: Gnuradio & bladeRF full-duplex example

Post by jynik »

bpadalino, you rang? :P

Here's a little PSK loopback graph, which we using as a quick sanity check that loopback modes were operational. The loopback mode can be specified via the loopback device argument.

Code: Select all

<?xml version='1.0' encoding='ASCII'?>
<flow_graph>
  <timestamp>Sat May 17 13:06:40 2014</timestamp>
  <block>
    <key>options</key>
    <param>
      <key>id</key>
      <value>psk_loopback</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>title</key>
      <value>PSK Loopback</value>
    </param>
    <param>
      <key>author</key>
      <value></value>
    </param>
    <param>
      <key>description</key>
      <value></value>
    </param>
    <param>
      <key>window_size</key>
      <value>1280, 1024</value>
    </param>
    <param>
      <key>generate_options</key>
      <value>wx_gui</value>
    </param>
    <param>
      <key>category</key>
      <value>Custom</value>
    </param>
    <param>
      <key>run_options</key>
      <value>prompt</value>
    </param>
    <param>
      <key>run</key>
      <value>True</value>
    </param>
    <param>
      <key>max_nouts</key>
      <value>0</value>
    </param>
    <param>
      <key>realtime_scheduling</key>
      <value></value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(10, 10)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>variable</key>
    <param>
      <key>id</key>
      <value>sps</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>value</key>
      <value>8</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(296, 11)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>variable</key>
    <param>
      <key>id</key>
      <value>samp_rate</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>value</key>
      <value>2.5e6</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(183, 10)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>root_raised_cosine_filter</key>
    <param>
      <key>id</key>
      <value>root_raised_cosine_filter_0_0</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>type</key>
      <value>fir_filter_ccf</value>
    </param>
    <param>
      <key>decim</key>
      <value>1</value>
    </param>
    <param>
      <key>interp</key>
      <value>1</value>
    </param>
    <param>
      <key>gain</key>
      <value>1</value>
    </param>
    <param>
      <key>samp_rate</key>
      <value>samp_rate</value>
    </param>
    <param>
      <key>sym_rate</key>
      <value>samp_rate / sps</value>
    </param>
    <param>
      <key>alpha</key>
      <value>0.35</value>
    </param>
    <param>
      <key>ntaps</key>
      <value>11*sps</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(823, 375)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>wxgui_constellationsink2</key>
    <param>
      <key>id</key>
      <value>wxgui_constellationsink2_0</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>title</key>
      <value>RX</value>
    </param>
    <param>
      <key>samp_rate</key>
      <value>samp_rate</value>
    </param>
    <param>
      <key>frame_rate</key>
      <value>30</value>
    </param>
    <param>
      <key>const_size</key>
      <value>2048</value>
    </param>
    <param>
      <key>M</key>
      <value>4</value>
    </param>
    <param>
      <key>theta</key>
      <value>0</value>
    </param>
    <param>
      <key>loop_bw</key>
      <value>6.28/100.0</value>
    </param>
    <param>
      <key>fmax</key>
      <value>0.06</value>
    </param>
    <param>
      <key>mu</key>
      <value>0.5</value>
    </param>
    <param>
      <key>gain_mu</key>
      <value>0.005</value>
    </param>
    <param>
      <key>symbol_rate</key>
      <value>samp_rate/sps</value>
    </param>
    <param>
      <key>omega_limit</key>
      <value>0.005</value>
    </param>
    <param>
      <key>win_size</key>
      <value></value>
    </param>
    <param>
      <key>grid_pos</key>
      <value>0,1,1,1</value>
    </param>
    <param>
      <key>notebook</key>
      <value>nb_plots,2</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(564, 587)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>analog_random_source_x</key>
    <param>
      <key>id</key>
      <value>analog_random_source_x_0</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>type</key>
      <value>byte</value>
    </param>
    <param>
      <key>min</key>
      <value>0</value>
    </param>
    <param>
      <key>max</key>
      <value>255</value>
    </param>
    <param>
      <key>num_samps</key>
      <value>1000</value>
    </param>
    <param>
      <key>repeat</key>
      <value>True</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(17, 112)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>blocks_multiply_const_vxx</key>
    <param>
      <key>id</key>
      <value>blocks_multiply_const_vxx_0</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>type</key>
      <value>complex</value>
    </param>
    <param>
      <key>const</key>
      <value>0.3</value>
    </param>
    <param>
      <key>vlen</key>
      <value>1</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(560, 66)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>wxgui_scopesink2</key>
    <param>
      <key>id</key>
      <value>wxgui_scopesink2_0_0</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>type</key>
      <value>complex</value>
    </param>
    <param>
      <key>title</key>
      <value>TX</value>
    </param>
    <param>
      <key>samp_rate</key>
      <value>samp_rate</value>
    </param>
    <param>
      <key>v_scale</key>
      <value>.325</value>
    </param>
    <param>
      <key>v_offset</key>
      <value>0</value>
    </param>
    <param>
      <key>t_scale</key>
      <value>0</value>
    </param>
    <param>
      <key>ac_couple</key>
      <value>False</value>
    </param>
    <param>
      <key>xy_mode</key>
      <value>True</value>
    </param>
    <param>
      <key>num_inputs</key>
      <value>1</value>
    </param>
    <param>
      <key>win_size</key>
      <value></value>
    </param>
    <param>
      <key>grid_pos</key>
      <value>0,0,1,1</value>
    </param>
    <param>
      <key>notebook</key>
      <value>nb_plots, 1</value>
    </param>
    <param>
      <key>trig_mode</key>
      <value>wxgui.TRIG_MODE_AUTO</value>
    </param>
    <param>
      <key>y_axis_label</key>
      <value>Counts</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(1082, 305)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>wxgui_fftsink2</key>
    <param>
      <key>id</key>
      <value>wxgui_fftsink2_0</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>type</key>
      <value>complex</value>
    </param>
    <param>
      <key>title</key>
      <value>TX</value>
    </param>
    <param>
      <key>samp_rate</key>
      <value>samp_rate</value>
    </param>
    <param>
      <key>baseband_freq</key>
      <value>0</value>
    </param>
    <param>
      <key>y_per_div</key>
      <value>10</value>
    </param>
    <param>
      <key>y_divs</key>
      <value>10</value>
    </param>
    <param>
      <key>ref_level</key>
      <value>0</value>
    </param>
    <param>
      <key>ref_scale</key>
      <value>2.0</value>
    </param>
    <param>
      <key>fft_size</key>
      <value>1024</value>
    </param>
    <param>
      <key>fft_rate</key>
      <value>15</value>
    </param>
    <param>
      <key>peak_hold</key>
      <value>False</value>
    </param>
    <param>
      <key>average</key>
      <value>False</value>
    </param>
    <param>
      <key>avg_alpha</key>
      <value>0</value>
    </param>
    <param>
      <key>win</key>
      <value>None</value>
    </param>
    <param>
      <key>win_size</key>
      <value></value>
    </param>
    <param>
      <key>grid_pos</key>
      <value>0,0,1,1</value>
    </param>
    <param>
      <key>notebook</key>
      <value>nb_plots, 0</value>
    </param>
    <param>
      <key>freqvar</key>
      <value>None</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(560, 186)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>notebook</key>
    <param>
      <key>id</key>
      <value>nb_plots</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>style</key>
      <value>wx.NB_TOP</value>
    </param>
    <param>
      <key>labels</key>
      <value>['FFT', 'Scope', 'Constellation']</value>
    </param>
    <param>
      <key>grid_pos</key>
      <value>1,0,1,2</value>
    </param>
    <param>
      <key>notebook</key>
      <value></value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(951, 924)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>notebook</key>
    <param>
      <key>id</key>
      <value>nb_modules</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>style</key>
      <value>wx.NB_TOP</value>
    </param>
    <param>
      <key>labels</key>
      <value>['TX' , 'RX']</value>
    </param>
    <param>
      <key>grid_pos</key>
      <value>0,0,1,2</value>
    </param>
    <param>
      <key>notebook</key>
      <value></value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(1111, 921)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>variable_slider</key>
    <param>
      <key>id</key>
      <value>rx_rfgain</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>label</key>
      <value></value>
    </param>
    <param>
      <key>value</key>
      <value>0</value>
    </param>
    <param>
      <key>min</key>
      <value>0</value>
    </param>
    <param>
      <key>max</key>
      <value>100</value>
    </param>
    <param>
      <key>num_steps</key>
      <value>100</value>
    </param>
    <param>
      <key>style</key>
      <value>wx.SL_HORIZONTAL</value>
    </param>
    <param>
      <key>converver</key>
      <value>float_converter</value>
    </param>
    <param>
      <key>grid_pos</key>
      <value></value>
    </param>
    <param>
      <key>notebook</key>
      <value>nb_modules,1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(14, 258)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>variable_slider</key>
    <param>
      <key>id</key>
      <value>rx_ifgain</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>label</key>
      <value></value>
    </param>
    <param>
      <key>value</key>
      <value>0</value>
    </param>
    <param>
      <key>min</key>
      <value>0</value>
    </param>
    <param>
      <key>max</key>
      <value>100</value>
    </param>
    <param>
      <key>num_steps</key>
      <value>100</value>
    </param>
    <param>
      <key>style</key>
      <value>wx.SL_HORIZONTAL</value>
    </param>
    <param>
      <key>converver</key>
      <value>float_converter</value>
    </param>
    <param>
      <key>grid_pos</key>
      <value></value>
    </param>
    <param>
      <key>notebook</key>
      <value>nb_modules,1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(164, 258)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>variable_slider</key>
    <param>
      <key>id</key>
      <value>rx_bbgain</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>label</key>
      <value></value>
    </param>
    <param>
      <key>value</key>
      <value>0</value>
    </param>
    <param>
      <key>min</key>
      <value>0</value>
    </param>
    <param>
      <key>max</key>
      <value>100</value>
    </param>
    <param>
      <key>num_steps</key>
      <value>100</value>
    </param>
    <param>
      <key>style</key>
      <value>wx.SL_HORIZONTAL</value>
    </param>
    <param>
      <key>converver</key>
      <value>float_converter</value>
    </param>
    <param>
      <key>grid_pos</key>
      <value></value>
    </param>
    <param>
      <key>notebook</key>
      <value>nb_modules,1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(314, 258)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>variable_slider</key>
    <param>
      <key>id</key>
      <value>tx_rfgain</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>label</key>
      <value></value>
    </param>
    <param>
      <key>value</key>
      <value>10</value>
    </param>
    <param>
      <key>min</key>
      <value>0</value>
    </param>
    <param>
      <key>max</key>
      <value>100</value>
    </param>
    <param>
      <key>num_steps</key>
      <value>100</value>
    </param>
    <param>
      <key>style</key>
      <value>wx.SL_HORIZONTAL</value>
    </param>
    <param>
      <key>converver</key>
      <value>float_converter</value>
    </param>
    <param>
      <key>grid_pos</key>
      <value></value>
    </param>
    <param>
      <key>notebook</key>
      <value>nb_modules,0</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(14, 386)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>variable_slider</key>
    <param>
      <key>id</key>
      <value>tx_ifgain</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>label</key>
      <value></value>
    </param>
    <param>
      <key>value</key>
      <value>20</value>
    </param>
    <param>
      <key>min</key>
      <value>0</value>
    </param>
    <param>
      <key>max</key>
      <value>100</value>
    </param>
    <param>
      <key>num_steps</key>
      <value>100</value>
    </param>
    <param>
      <key>style</key>
      <value>wx.SL_HORIZONTAL</value>
    </param>
    <param>
      <key>converver</key>
      <value>float_converter</value>
    </param>
    <param>
      <key>grid_pos</key>
      <value></value>
    </param>
    <param>
      <key>notebook</key>
      <value>nb_modules,0</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(165, 387)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>variable_slider</key>
    <param>
      <key>id</key>
      <value>tx_freq</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>label</key>
      <value></value>
    </param>
    <param>
      <key>value</key>
      <value>450e6</value>
    </param>
    <param>
      <key>min</key>
      <value>300e6</value>
    </param>
    <param>
      <key>max</key>
      <value>3e9</value>
    </param>
    <param>
      <key>num_steps</key>
      <value>1000</value>
    </param>
    <param>
      <key>style</key>
      <value>wx.SL_HORIZONTAL</value>
    </param>
    <param>
      <key>converver</key>
      <value>float_converter</value>
    </param>
    <param>
      <key>grid_pos</key>
      <value></value>
    </param>
    <param>
      <key>notebook</key>
      <value>nb_modules,0</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(14, 515)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>variable_slider</key>
    <param>
      <key>id</key>
      <value>rx_freq</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>label</key>
      <value></value>
    </param>
    <param>
      <key>value</key>
      <value>450e6</value>
    </param>
    <param>
      <key>min</key>
      <value>300e6</value>
    </param>
    <param>
      <key>max</key>
      <value>3e9</value>
    </param>
    <param>
      <key>num_steps</key>
      <value>1000</value>
    </param>
    <param>
      <key>style</key>
      <value>wx.SL_HORIZONTAL</value>
    </param>
    <param>
      <key>converver</key>
      <value>float_converter</value>
    </param>
    <param>
      <key>grid_pos</key>
      <value></value>
    </param>
    <param>
      <key>notebook</key>
      <value>nb_modules, 1</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(166, 515)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>variable_slider</key>
    <param>
      <key>id</key>
      <value>tx_bbgain</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>label</key>
      <value></value>
    </param>
    <param>
      <key>value</key>
      <value>20</value>
    </param>
    <param>
      <key>min</key>
      <value>0</value>
    </param>
    <param>
      <key>max</key>
      <value>100</value>
    </param>
    <param>
      <key>num_steps</key>
      <value>100</value>
    </param>
    <param>
      <key>style</key>
      <value>wx.SL_HORIZONTAL</value>
    </param>
    <param>
      <key>converver</key>
      <value>float_converter</value>
    </param>
    <param>
      <key>grid_pos</key>
      <value></value>
    </param>
    <param>
      <key>notebook</key>
      <value>nb_modules,0</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(315, 386)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>wxgui_constellationsink2</key>
    <param>
      <key>id</key>
      <value>wxgui_constellationsink2_0_0</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>title</key>
      <value>TX</value>
    </param>
    <param>
      <key>samp_rate</key>
      <value>samp_rate</value>
    </param>
    <param>
      <key>frame_rate</key>
      <value>30</value>
    </param>
    <param>
      <key>const_size</key>
      <value>2048</value>
    </param>
    <param>
      <key>M</key>
      <value>4</value>
    </param>
    <param>
      <key>theta</key>
      <value>0</value>
    </param>
    <param>
      <key>loop_bw</key>
      <value>6.28/100.0</value>
    </param>
    <param>
      <key>fmax</key>
      <value>0.06</value>
    </param>
    <param>
      <key>mu</key>
      <value>0.5</value>
    </param>
    <param>
      <key>gain_mu</key>
      <value>0.005</value>
    </param>
    <param>
      <key>symbol_rate</key>
      <value>samp_rate/sps</value>
    </param>
    <param>
      <key>omega_limit</key>
      <value>0.005</value>
    </param>
    <param>
      <key>win_size</key>
      <value></value>
    </param>
    <param>
      <key>grid_pos</key>
      <value>0,0,1,1</value>
    </param>
    <param>
      <key>notebook</key>
      <value>nb_plots, 2</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(1084, 472)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>digital_psk_mod</key>
    <param>
      <key>id</key>
      <value>digital_psk_mod_0</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>constellation_points</key>
      <value>4</value>
    </param>
    <param>
      <key>mod_code</key>
      <value>"none"</value>
    </param>
    <param>
      <key>differential</key>
      <value>True</value>
    </param>
    <param>
      <key>samples_per_symbol</key>
      <value>sps</value>
    </param>
    <param>
      <key>excess_bw</key>
      <value>0.35</value>
    </param>
    <param>
      <key>verbose</key>
      <value>True</value>
    </param>
    <param>
      <key>log</key>
      <value>False</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(253, 96)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>root_raised_cosine_filter</key>
    <param>
      <key>id</key>
      <value>root_raised_cosine_filter_0</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>type</key>
      <value>fir_filter_ccf</value>
    </param>
    <param>
      <key>decim</key>
      <value>1</value>
    </param>
    <param>
      <key>interp</key>
      <value>1</value>
    </param>
    <param>
      <key>gain</key>
      <value>1</value>
    </param>
    <param>
      <key>samp_rate</key>
      <value>samp_rate</value>
    </param>
    <param>
      <key>sym_rate</key>
      <value>samp_rate / sps</value>
    </param>
    <param>
      <key>alpha</key>
      <value>0.35</value>
    </param>
    <param>
      <key>ntaps</key>
      <value>11*sps</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(303, 897)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>wxgui_scopesink2</key>
    <param>
      <key>id</key>
      <value>wxgui_scopesink2_0</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>type</key>
      <value>complex</value>
    </param>
    <param>
      <key>title</key>
      <value>RX</value>
    </param>
    <param>
      <key>samp_rate</key>
      <value>samp_rate</value>
    </param>
    <param>
      <key>v_scale</key>
      <value>.325</value>
    </param>
    <param>
      <key>v_offset</key>
      <value>0</value>
    </param>
    <param>
      <key>t_scale</key>
      <value>0</value>
    </param>
    <param>
      <key>ac_couple</key>
      <value>False</value>
    </param>
    <param>
      <key>xy_mode</key>
      <value>True</value>
    </param>
    <param>
      <key>num_inputs</key>
      <value>1</value>
    </param>
    <param>
      <key>win_size</key>
      <value></value>
    </param>
    <param>
      <key>grid_pos</key>
      <value>0,1,1,1</value>
    </param>
    <param>
      <key>notebook</key>
      <value>nb_plots,1</value>
    </param>
    <param>
      <key>trig_mode</key>
      <value>wxgui.TRIG_MODE_AUTO</value>
    </param>
    <param>
      <key>y_axis_label</key>
      <value>Counts</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(595, 880)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>osmosdr_sink</key>
    <param>
      <key>id</key>
      <value>osmosdr_sink_0</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>type</key>
      <value>fc32</value>
    </param>
    <param>
      <key>args</key>
      <value>bladerf=0</value>
    </param>
    <param>
      <key>nchan</key>
      <value>1</value>
    </param>
    <param>
      <key>sample_rate</key>
      <value>samp_rate</value>
    </param>
    <param>
      <key>freq0</key>
      <value>tx_freq</value>
    </param>
    <param>
      <key>corr0</key>
      <value>0</value>
    </param>
    <param>
      <key>gain0</key>
      <value>tx_rfgain</value>
    </param>
    <param>
      <key>if_gain0</key>
      <value>tx_ifgain</value>
    </param>
    <param>
      <key>bb_gain0</key>
      <value>tx_bbgain</value>
    </param>
    <param>
      <key>ant0</key>
      <value></value>
    </param>
    <param>
      <key>bw0</key>
      <value>0</value>
    </param>
    <param>
      <key>freq1</key>
      <value>100e6</value>
    </param>
    <param>
      <key>corr1</key>
      <value>0</value>
    </param>
    <param>
      <key>gain1</key>
      <value>10</value>
    </param>
    <param>
      <key>if_gain1</key>
      <value>20</value>
    </param>
    <param>
      <key>bb_gain1</key>
      <value>20</value>
    </param>
    <param>
      <key>ant1</key>
      <value></value>
    </param>
    <param>
      <key>bw1</key>
      <value>0</value>
    </param>
    <param>
      <key>freq2</key>
      <value>100e6</value>
    </param>
    <param>
      <key>corr2</key>
      <value>0</value>
    </param>
    <param>
      <key>gain2</key>
      <value>10</value>
    </param>
    <param>
      <key>if_gain2</key>
      <value>20</value>
    </param>
    <param>
      <key>bb_gain2</key>
      <value>20</value>
    </param>
    <param>
      <key>ant2</key>
      <value></value>
    </param>
    <param>
      <key>bw2</key>
      <value>0</value>
    </param>
    <param>
      <key>freq3</key>
      <value>100e6</value>
    </param>
    <param>
      <key>corr3</key>
      <value>0</value>
    </param>
    <param>
      <key>gain3</key>
      <value>10</value>
    </param>
    <param>
      <key>if_gain3</key>
      <value>20</value>
    </param>
    <param>
      <key>bb_gain3</key>
      <value>20</value>
    </param>
    <param>
      <key>ant3</key>
      <value></value>
    </param>
    <param>
      <key>bw3</key>
      <value>0</value>
    </param>
    <param>
      <key>freq4</key>
      <value>100e6</value>
    </param>
    <param>
      <key>corr4</key>
      <value>0</value>
    </param>
    <param>
      <key>gain4</key>
      <value>10</value>
    </param>
    <param>
      <key>if_gain4</key>
      <value>20</value>
    </param>
    <param>
      <key>bb_gain4</key>
      <value>20</value>
    </param>
    <param>
      <key>ant4</key>
      <value></value>
    </param>
    <param>
      <key>bw4</key>
      <value>0</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(809, 30)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>osmosdr_source</key>
    <param>
      <key>id</key>
      <value>osmosdr_source_0</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>type</key>
      <value>fc32</value>
    </param>
    <param>
      <key>args</key>
      <value>bladerf=0,loopback=rf_lna1</value>
    </param>
    <param>
      <key>nchan</key>
      <value>1</value>
    </param>
    <param>
      <key>sample_rate</key>
      <value>samp_rate</value>
    </param>
    <param>
      <key>freq0</key>
      <value>rx_freq</value>
    </param>
    <param>
      <key>corr0</key>
      <value>0</value>
    </param>
    <param>
      <key>dc_offset_mode0</key>
      <value>0</value>
    </param>
    <param>
      <key>iq_balance_mode0</key>
      <value>2</value>
    </param>
    <param>
      <key>gain_mode0</key>
      <value>False</value>
    </param>
    <param>
      <key>gain0</key>
      <value>rx_rfgain</value>
    </param>
    <param>
      <key>if_gain0</key>
      <value>rx_ifgain</value>
    </param>
    <param>
      <key>bb_gain0</key>
      <value>rx_bbgain</value>
    </param>
    <param>
      <key>ant0</key>
      <value></value>
    </param>
    <param>
      <key>bw0</key>
      <value>0</value>
    </param>
    <param>
      <key>freq1</key>
      <value>100e6</value>
    </param>
    <param>
      <key>corr1</key>
      <value>0</value>
    </param>
    <param>
      <key>dc_offset_mode1</key>
      <value>1</value>
    </param>
    <param>
      <key>iq_balance_mode1</key>
      <value>0</value>
    </param>
    <param>
      <key>gain_mode1</key>
      <value>False</value>
    </param>
    <param>
      <key>gain1</key>
      <value>10</value>
    </param>
    <param>
      <key>if_gain1</key>
      <value>20</value>
    </param>
    <param>
      <key>bb_gain1</key>
      <value>20</value>
    </param>
    <param>
      <key>ant1</key>
      <value></value>
    </param>
    <param>
      <key>bw1</key>
      <value>0</value>
    </param>
    <param>
      <key>freq2</key>
      <value>100e6</value>
    </param>
    <param>
      <key>corr2</key>
      <value>0</value>
    </param>
    <param>
      <key>dc_offset_mode2</key>
      <value>0</value>
    </param>
    <param>
      <key>iq_balance_mode2</key>
      <value>0</value>
    </param>
    <param>
      <key>gain_mode2</key>
      <value>False</value>
    </param>
    <param>
      <key>gain2</key>
      <value>10</value>
    </param>
    <param>
      <key>if_gain2</key>
      <value>20</value>
    </param>
    <param>
      <key>bb_gain2</key>
      <value>20</value>
    </param>
    <param>
      <key>ant2</key>
      <value></value>
    </param>
    <param>
      <key>bw2</key>
      <value>0</value>
    </param>
    <param>
      <key>freq3</key>
      <value>100e6</value>
    </param>
    <param>
      <key>corr3</key>
      <value>0</value>
    </param>
    <param>
      <key>dc_offset_mode3</key>
      <value>0</value>
    </param>
    <param>
      <key>iq_balance_mode3</key>
      <value>0</value>
    </param>
    <param>
      <key>gain_mode3</key>
      <value>False</value>
    </param>
    <param>
      <key>gain3</key>
      <value>10</value>
    </param>
    <param>
      <key>if_gain3</key>
      <value>20</value>
    </param>
    <param>
      <key>bb_gain3</key>
      <value>20</value>
    </param>
    <param>
      <key>ant3</key>
      <value></value>
    </param>
    <param>
      <key>bw3</key>
      <value>0</value>
    </param>
    <param>
      <key>freq4</key>
      <value>100e6</value>
    </param>
    <param>
      <key>corr4</key>
      <value>0</value>
    </param>
    <param>
      <key>dc_offset_mode4</key>
      <value>0</value>
    </param>
    <param>
      <key>iq_balance_mode4</key>
      <value>0</value>
    </param>
    <param>
      <key>gain_mode4</key>
      <value>False</value>
    </param>
    <param>
      <key>gain4</key>
      <value>10</value>
    </param>
    <param>
      <key>if_gain4</key>
      <value>20</value>
    </param>
    <param>
      <key>bb_gain4</key>
      <value>20</value>
    </param>
    <param>
      <key>ant4</key>
      <value></value>
    </param>
    <param>
      <key>bw4</key>
      <value>0</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>minoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>maxoutbuf</key>
      <value>0</value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(22, 764)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <block>
    <key>wxgui_fftsink2</key>
    <param>
      <key>id</key>
      <value>wxgui_fftsink2_1</value>
    </param>
    <param>
      <key>_enabled</key>
      <value>True</value>
    </param>
    <param>
      <key>type</key>
      <value>complex</value>
    </param>
    <param>
      <key>title</key>
      <value>RX</value>
    </param>
    <param>
      <key>samp_rate</key>
      <value>samp_rate</value>
    </param>
    <param>
      <key>baseband_freq</key>
      <value>0</value>
    </param>
    <param>
      <key>y_per_div</key>
      <value>10</value>
    </param>
    <param>
      <key>y_divs</key>
      <value>10</value>
    </param>
    <param>
      <key>ref_level</key>
      <value>0</value>
    </param>
    <param>
      <key>ref_scale</key>
      <value>2.0</value>
    </param>
    <param>
      <key>fft_size</key>
      <value>1024</value>
    </param>
    <param>
      <key>fft_rate</key>
      <value>15</value>
    </param>
    <param>
      <key>peak_hold</key>
      <value>False</value>
    </param>
    <param>
      <key>average</key>
      <value>False</value>
    </param>
    <param>
      <key>avg_alpha</key>
      <value>0</value>
    </param>
    <param>
      <key>win</key>
      <value>None</value>
    </param>
    <param>
      <key>win_size</key>
      <value></value>
    </param>
    <param>
      <key>grid_pos</key>
      <value>0,1,1,1</value>
    </param>
    <param>
      <key>notebook</key>
      <value>nb_plots,0</value>
    </param>
    <param>
      <key>freqvar</key>
      <value>None</value>
    </param>
    <param>
      <key>affinity</key>
      <value></value>
    </param>
    <param>
      <key>_coordinate</key>
      <value>(303, 670)</value>
    </param>
    <param>
      <key>_rotation</key>
      <value>0</value>
    </param>
  </block>
  <connection>
    <source_block_id>analog_random_source_x_0</source_block_id>
    <sink_block_id>digital_psk_mod_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>digital_psk_mod_0</source_block_id>
    <sink_block_id>wxgui_fftsink2_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>digital_psk_mod_0</source_block_id>
    <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>root_raised_cosine_filter_0</source_block_id>
    <sink_block_id>wxgui_scopesink2_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>root_raised_cosine_filter_0</source_block_id>
    <sink_block_id>wxgui_constellationsink2_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>root_raised_cosine_filter_0_0</source_block_id>
    <sink_block_id>wxgui_scopesink2_0_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>blocks_multiply_const_vxx_0</source_block_id>
    <sink_block_id>root_raised_cosine_filter_0_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>blocks_multiply_const_vxx_0</source_block_id>
    <sink_block_id>osmosdr_sink_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>osmosdr_source_0</source_block_id>
    <sink_block_id>root_raised_cosine_filter_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>osmosdr_source_0</source_block_id>
    <sink_block_id>wxgui_fftsink2_1</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
  <connection>
    <source_block_id>root_raised_cosine_filter_0_0</source_block_id>
    <sink_block_id>wxgui_constellationsink2_0_0</sink_block_id>
    <source_key>0</source_key>
    <sink_key>0</sink_key>
  </connection>
</flow_graph>
Post Reply