diff --git a/gr-fcd/examples/grc/CMakeLists.txt b/gr-fcd/examples/grc/CMakeLists.txt
index e33fdf1..52998f7 100644
--- a/gr-fcd/examples/grc/CMakeLists.txt
+++ b/gr-fcd/examples/grc/CMakeLists.txt
@@ -21,6 +21,7 @@ INSTALL(FILES
   fcd_apt_rx.grc
   fcd_fft_wx.grc
   fcd_nfm_rx.grc
+  fcd_rx.grc
   DESTINATION ${GR_PKG_FCD_EXAMPLES_DIR}
   COMPONENT "fcd_examples"
-)
\ No newline at end of file
+)
diff --git a/gr-fcd/examples/grc/fcd_apt_rx.grc b/gr-fcd/examples/grc/fcd_apt_rx.grc
index c4d3e64..ea099f0 100644
--- a/gr-fcd/examples/grc/fcd_apt_rx.grc
+++ b/gr-fcd/examples/grc/fcd_apt_rx.grc
@@ -1,61 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Sun May  8 18:01:53 2011</timestamp>
-  <block>
-    <key>options</key>
-    <param>
-      <key>id</key>
-      <value>fcd_apt_rx</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>title</key>
-      <value>NOAA APT Receiver</value>
-    </param>
-    <param>
-      <key>author</key>
-      <value>Alexandru Csete OZ9AEC</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>realtime_scheduling</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(10, 10)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
+  <timestamp>Mon Jun 11 12:06:08 2012</timestamp>
   <block>
     <key>variable</key>
     <param>
@@ -473,6 +418,97 @@
     </param>
   </block>
   <block>
+    <key>wxgui_fftsink2</key>
+    <param>
+      <key>id</key>
+      <value>fftsink</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>complex</value>
+    </param>
+    <param>
+      <key>title</key>
+      <value>FCD Spectrum</value>
+    </param>
+    <param>
+      <key>samp_rate</key>
+      <value>samp_rate</value>
+    </param>
+    <param>
+      <key>baseband_freq</key>
+      <value>sat_freq</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.0</value>
+    </param>
+    <param>
+      <key>ref_scale</key>
+      <value>1.0</value>
+    </param>
+    <param>
+      <key>fft_size</key>
+      <value>512</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,2</value>
+    </param>
+    <param>
+      <key>notebook</key>
+      <value></value>
+    </param>
+    <param>
+      <key>freqvar</key>
+      <value>None</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(335, 103)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
     <key>low_pass_filter</key>
     <param>
       <key>id</key>
@@ -520,7 +556,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(334, 307)</value>
+      <value>(335, 319)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -550,6 +586,50 @@
       <value>fcd_lna_gain</value>
     </param>
     <param>
+      <key>lna_enhance</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>mixer</key>
+      <value>+12</value>
+    </param>
+    <param>
+      <key>if_gain_1</key>
+      <value>+6</value>
+    </param>
+    <param>
+      <key>if_gain_mode</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>if_rc_filter</key>
+      <value>1.0</value>
+    </param>
+    <param>
+      <key>if_gain_2</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>if_gain_3</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>if_gain_4</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>if_filter</key>
+      <value>2.45</value>
+    </param>
+    <param>
+      <key>if_gain_5</key>
+      <value>+3</value>
+    </param>
+    <param>
+      <key>if_gain_6</key>
+      <value>+3</value>
+    </param>
+    <param>
       <key>ppm</key>
       <value>-120</value>
     </param>
@@ -571,7 +651,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(25, 299)</value>
+      <value>(25, 125)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -579,86 +659,58 @@
     </param>
   </block>
   <block>
-    <key>wxgui_fftsink2</key>
+    <key>options</key>
     <param>
       <key>id</key>
-      <value>fftsink</value>
+      <value>fcd_apt_rx</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
       <key>title</key>
-      <value>FCD Spectrum</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>baseband_freq</key>
-      <value>sat_freq</value>
-    </param>
-    <param>
-      <key>y_per_div</key>
-      <value>10</value>
+      <value>NOAA APT Receiver</value>
     </param>
     <param>
-      <key>y_divs</key>
-      <value>10</value>
+      <key>author</key>
+      <value>Alexandru Csete OZ9AEC</value>
     </param>
     <param>
-      <key>ref_level</key>
-      <value>0.0</value>
+      <key>description</key>
+      <value></value>
     </param>
     <param>
-      <key>ref_scale</key>
-      <value>1.0</value>
+      <key>window_size</key>
+      <value>1280, 1024</value>
     </param>
     <param>
-      <key>fft_size</key>
-      <value>512</value>
+      <key>generate_options</key>
+      <value>wx_gui</value>
     </param>
     <param>
-      <key>fft_rate</key>
-      <value>15</value>
+      <key>category</key>
+      <value>Custom</value>
     </param>
     <param>
-      <key>peak_hold</key>
-      <value>False</value>
+      <key>run_options</key>
+      <value>prompt</value>
     </param>
     <param>
-      <key>average</key>
-      <value>False</value>
+      <key>run</key>
+      <value>True</value>
     </param>
     <param>
-      <key>avg_alpha</key>
+      <key>max_nouts</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,2</value>
-    </param>
-    <param>
-      <key>notebook</key>
+      <key>realtime_scheduling</key>
       <value></value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(335, 103)</value>
+      <value>(10, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
diff --git a/gr-fcd/examples/grc/fcd_fft_wx.grc b/gr-fcd/examples/grc/fcd_fft_wx.grc
index c045bbf..3b970d6 100644
--- a/gr-fcd/examples/grc/fcd_fft_wx.grc
+++ b/gr-fcd/examples/grc/fcd_fft_wx.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Sun May  8 18:02:35 2011</timestamp>
+  <timestamp>Mon Jun 11 12:05:27 2012</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -44,6 +44,10 @@
       <value>True</value>
     </param>
     <param>
+      <key>max_nouts</key>
+      <value>0</value>
+    </param>
+    <param>
       <key>realtime_scheduling</key>
       <value></value>
     </param>
@@ -252,6 +256,10 @@
       <value></value>
     </param>
     <param>
+      <key>freqvar</key>
+      <value>None</value>
+    </param>
+    <param>
       <key>_coordinate</key>
       <value>(442, 176)</value>
     </param>
@@ -283,6 +291,50 @@
       <value>fcd_lna_gain</value>
     </param>
     <param>
+      <key>lna_enhance</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>mixer</key>
+      <value>+12</value>
+    </param>
+    <param>
+      <key>if_gain_1</key>
+      <value>+6</value>
+    </param>
+    <param>
+      <key>if_gain_mode</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>if_rc_filter</key>
+      <value>1.0</value>
+    </param>
+    <param>
+      <key>if_gain_2</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>if_gain_3</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>if_gain_4</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>if_filter</key>
+      <value>2.45</value>
+    </param>
+    <param>
+      <key>if_gain_5</key>
+      <value>+3</value>
+    </param>
+    <param>
+      <key>if_gain_6</key>
+      <value>+3</value>
+    </param>
+    <param>
       <key>ppm</key>
       <value>-120</value>
     </param>
diff --git a/gr-fcd/examples/grc/fcd_nfm_rx.grc b/gr-fcd/examples/grc/fcd_nfm_rx.grc
index 9dac3fc..8bf50a0 100644
--- a/gr-fcd/examples/grc/fcd_nfm_rx.grc
+++ b/gr-fcd/examples/grc/fcd_nfm_rx.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Sun May  8 18:05:32 2011</timestamp>
+  <timestamp>Mon Jun 11 12:05:10 2012</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -44,6 +44,10 @@
       <value>True</value>
     </param>
     <param>
+      <key>max_nouts</key>
+      <value>0</value>
+    </param>
+    <param>
       <key>realtime_scheduling</key>
       <value></value>
     </param>
@@ -430,134 +434,6 @@
     </param>
   </block>
   <block>
-    <key>gr_simple_squelch_cc</key>
-    <param>
-      <key>id</key>
-      <value>gr_simple_squelch_cc_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>threshold</key>
-      <value>sql_lev</value>
-    </param>
-    <param>
-      <key>alpha</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(226, 499)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blks2_nbfm_rx</key>
-    <param>
-      <key>id</key>
-      <value>nbfm_normal</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>audio_rate</key>
-      <value>48000</value>
-    </param>
-    <param>
-      <key>quad_rate</key>
-      <value>96000</value>
-    </param>
-    <param>
-      <key>tau</key>
-      <value>75e-6</value>
-    </param>
-    <param>
-      <key>max_dev</key>
-      <value>5e3</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(441, 483)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>gr_multiply_const_vxx</key>
-    <param>
-      <key>id</key>
-      <value>gr_multiply_const_vxx_1</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>const</key>
-      <value>af_gain</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(674, 507)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>audio_sink</key>
-    <param>
-      <key>id</key>
-      <value>audio_sink</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>48000</value>
-    </param>
-    <param>
-      <key>device_name</key>
-      <value></value>
-    </param>
-    <param>
-      <key>ok_to_block</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>num_inputs</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(882, 511)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>variable</key>
     <param>
       <key>id</key>
@@ -659,6 +535,10 @@
       <value></value>
     </param>
     <param>
+      <key>freqvar</key>
+      <value>None</value>
+    </param>
+    <param>
       <key>_coordinate</key>
       <value>(742, 24)</value>
     </param>
@@ -934,6 +814,134 @@
     </param>
   </block>
   <block>
+    <key>audio_sink</key>
+    <param>
+      <key>id</key>
+      <value>audio_sink</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>samp_rate</key>
+      <value>48000</value>
+    </param>
+    <param>
+      <key>device_name</key>
+      <value></value>
+    </param>
+    <param>
+      <key>ok_to_block</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>num_inputs</key>
+      <value>2</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(873, 596)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gr_multiply_const_vxx</key>
+    <param>
+      <key>id</key>
+      <value>gr_multiply_const_vxx_1</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>float</value>
+    </param>
+    <param>
+      <key>const</key>
+      <value>af_gain</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(665, 592)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>blks2_nbfm_rx</key>
+    <param>
+      <key>id</key>
+      <value>nbfm_normal</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>audio_rate</key>
+      <value>48000</value>
+    </param>
+    <param>
+      <key>quad_rate</key>
+      <value>96000</value>
+    </param>
+    <param>
+      <key>tau</key>
+      <value>75e-6</value>
+    </param>
+    <param>
+      <key>max_dev</key>
+      <value>5e3</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(432, 568)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gr_simple_squelch_cc</key>
+    <param>
+      <key>id</key>
+      <value>gr_simple_squelch_cc_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>threshold</key>
+      <value>sql_lev</value>
+    </param>
+    <param>
+      <key>alpha</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(217, 584)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
     <key>fcd_source_c</key>
     <param>
       <key>id</key>
@@ -956,6 +964,50 @@
       <value>rf_gain</value>
     </param>
     <param>
+      <key>lna_enhance</key>
+      <value>-1</value>
+    </param>
+    <param>
+      <key>mixer</key>
+      <value>+12</value>
+    </param>
+    <param>
+      <key>if_gain_1</key>
+      <value>+6</value>
+    </param>
+    <param>
+      <key>if_gain_mode</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>if_rc_filter</key>
+      <value>1.0</value>
+    </param>
+    <param>
+      <key>if_gain_2</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>if_gain_3</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>if_gain_4</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>if_filter</key>
+      <value>2.45</value>
+    </param>
+    <param>
+      <key>if_gain_5</key>
+      <value>+3</value>
+    </param>
+    <param>
+      <key>if_gain_6</key>
+      <value>+3</value>
+    </param>
+    <param>
       <key>ppm</key>
       <value>-120</value>
     </param>
@@ -977,7 +1029,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(165, 157)</value>
+      <value>(167, 132)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1003,14 +1055,14 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>gr_multiply_const_vxx_1</source_block_id>
-    <sink_block_id>audio_sink</sink_block_id>
+    <source_block_id>fcd_source_c_1</source_block_id>
+    <sink_block_id>xlating_fir_filter</sink_block_id>
     <source_key>0</source_key>
-    <sink_key>1</sink_key>
+    <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>gr_multiply_const_vxx_1</source_block_id>
-    <sink_block_id>audio_sink</sink_block_id>
+    <source_block_id>nbfm_normal</source_block_id>
+    <sink_block_id>gr_multiply_const_vxx_1</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
@@ -1021,15 +1073,15 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>nbfm_normal</source_block_id>
-    <sink_block_id>gr_multiply_const_vxx_1</sink_block_id>
+    <source_block_id>gr_multiply_const_vxx_1</source_block_id>
+    <sink_block_id>audio_sink</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fcd_source_c_1</source_block_id>
-    <sink_block_id>xlating_fir_filter</sink_block_id>
+    <source_block_id>gr_multiply_const_vxx_1</source_block_id>
+    <sink_block_id>audio_sink</sink_block_id>
     <source_key>0</source_key>
-    <sink_key>0</sink_key>
+    <sink_key>1</sink_key>
   </connection>
 </flow_graph>
diff --git a/gr-fcd/grc/fcd_source_c.xml b/gr-fcd/grc/fcd_source_c.xml
index f1726f8..a9b0d5f 100644
--- a/gr-fcd/grc/fcd_source_c.xml
+++ b/gr-fcd/grc/fcd_source_c.xml
@@ -9,9 +9,39 @@
 #if $lna() != 20.0
 self.$(id).set_lna_gain($lna)
 #end if
+#if $lna_enhance() != -1
+self.$(id).set_lna_enhance($lna_enhance)
+#end if
 #if $mixer() != +12.0
 self.$(id).set_mixer_gain($mixer)
 #end if
+#if $if_gain_1() != 6.0
+self.$(id).set_if_gain_1($if_gain_1)
+#end if
+#if $if_gain_mode() != 0
+self.$(id).set_if_gain_mode($if_gain_mode)
+#end if
+#if $if_rc_filter() != 1.0
+self.$(id).set_if_rc_filter($if_rc_filter)
+#end if
+#if $if_gain_2() != 0.0
+self.$(id).set_if_gain_2($if_gain_2)
+#end if
+#if $if_gain_3() != 0.0
+self.$(id).set_if_gain_2($if_gain_3)
+#end if
+#if $if_gain_4() != 0.0
+self.$(id).set_if_gain_2($if_gain_4)
+#end if
+#if $if_filter() != 2.45
+self.$(id).set_if_filter($if_filter)
+#end if
+#if $if_gain_5() != 3.0
+self.$(id).set_if_gain_2($if_gain_5)
+#end if
+#if $if_gain_6() != 3.0
+self.$(id).set_if_gain_2($if_gain_6)
+#end if
 #if $ppm() != -120
 self.$(id).set_freq_corr($ppm)
 #end if
@@ -25,7 +55,17 @@ self.$(id).set_freq($freq)
     </make>
     <callback>set_freq($freq)</callback>
     <callback>set_lna_gain($lna)</callback>
+    <callback>set_lna_enhance($lna_enhance)</callback>
     <callback>set_mixer_gain($mixer)</callback>
+    <callback>set_if_gain_1($if_gain_1)</callback>
+    <callback>set_if_gain_mode($if_gain_mode)</callback>
+    <callback>set_if_rc_filter($if_rc_filter)</callback>
+    <callback>set_if_gain_2($if_gain_2)</callback>
+    <callback>set_if_gain_3($if_gain_3)</callback>
+    <callback>set_if_gain_4($if_gain_4)</callback>
+    <callback>set_if_filter($if_filter)</callback>
+    <callback>set_if_gain_5($if_gain_5)</callback>
+    <callback>set_if_gain_6($if_gain_6)</callback>
     <callback>set_freq_corr($ppm)</callback>
     <callback>set_dc_corr($dci,$dcq)</callback>
     <callback>set_iq_corr($iq_gain,$iq_phase)</callback>
@@ -48,6 +88,32 @@ self.$(id).set_freq($freq)
         <value>20.0</value>
         <type>real</type>
     </param>
+	<param>
+		<name>LNA Enhance</name>
+		<key>lna_enhance</key>
+		<value>Off</value>
+		<type>int</type>
+		<option>
+			<name>Off</name>
+			<key>-1</key>
+		</option>
+		<option>
+			<name>0</name>
+			<key>0</key>
+		</option>
+		<option>
+			<name>1</name>
+			<key>1</key>
+		</option>
+		<option>
+			<name>2</name>
+			<key>2</key>
+		</option>
+		<option>
+			<name>3</name>
+			<key>3</key>
+		</option>
+	</param>
     <param>
         <name>Mixer Gain (dB)</name>
         <key>mixer</key>
@@ -55,6 +121,68 @@ self.$(id).set_freq($freq)
         <type>real</type>
     </param>
     <param>
+        <name>IF Gain 1 (dB)</name>
+        <key>if_gain_1</key>
+        <value>+6</value>
+        <type>real</type>
+    </param>
+	<param>
+		<name>IF Gain Mode</name>
+		<key>if_gain_mode</key>
+		<value>Linearity</value>
+		<type>int</type>
+		<option>
+			<name>Linearity</name>
+			<key>0</key>
+		</option>
+		<option>
+			<name>Sensitivity</name>
+			<key>1</key>
+		</option>
+	</param>
+    <param>
+        <name>IF RC Filter (Mhz)</name>
+        <key>if_rc_filter</key>
+        <value>1.0</value>
+		<type>real</type>
+    </param>
+    <param>
+        <name>IF Gain 2 (dB)</name>
+        <key>if_gain_2</key>
+        <value>0</value>
+        <type>real</type>
+    </param>
+    <param>
+        <name>IF Gain 3 (dB)</name>
+        <key>if_gain_3</key>
+        <value>0</value>
+        <type>real</type>
+    </param>
+    <param>
+        <name>IF Gain 4 (dB)</name>
+        <key>if_gain_4</key>
+        <value>0</value>
+        <type>real</type>
+    </param>
+    <param>
+        <name>IF Filter (Mhz)</name>
+        <key>if_filter</key>
+        <value>2.45</value>
+		<type>real</type>
+    </param>
+    <param>
+        <name>IF Gain 5 (dB)</name>
+        <key>if_gain_5</key>
+        <value>+3</value>
+        <type>real</type>
+    </param>
+    <param>
+        <name>IF Gain 6 (dB)</name>
+        <key>if_gain_6</key>
+        <value>+3</value>
+        <type>real</type>
+    </param>
+    <param>
         <name>Frequency corr. (ppm)</name>
         <key>ppm</key>
         <value>-120</value>
@@ -108,6 +236,24 @@ use any float value and it will be rounded to the nearest valid value.
 The Mixer gain can be set either to +4 or +12 dB, but you can use any float value \
 and it will be rounded to the nearest valid value.
 
+The IF Gain 1 is a set of discrete values +6 or -3 dB, but you can use any float value\
+and it will be rounded to the nearest valid value.
+
+The IF RC Filter is a set of discrete values between 1.0 and 21.4Mhz, but you can \
+use any float value and it will be rounded to the nearest valid value.
+
+The IF Gain 2 and 3 is a set of discrete values between 0.0 and +6.0 dB, but you can \
+use any float value and it will be rounded to the nearest valid value.
+
+The IF Gain 4 is a set of discrete values between 0.0 and +2.0 dB, but you can \
+use any float value and it will be rounded to the nearest valid value.
+
+The IF Filter is a set of discrete values between 2.15 and 5.50Mhz, but you can \
+use any float value and it will be rounded to the nearest valid value.
+
+The IF Gain 5 and 6 is a set of discrete values between +3.0 and +15.0 dB, but you can \
+use any float value and it will be rounded to the nearest valid value.
+
 The FCD block can autmatically apply frequency correction:
   - For FCD v1.0 you can leave at -120 ppm
   - For FCD v1.1 with serial number 810 or greater use -12 ppm
diff --git a/gr-fcd/include/fcd/fcd_source_c.h b/gr-fcd/include/fcd/fcd_source_c.h
index 19c5890..3750452 100644
--- a/gr-fcd/include/fcd/fcd_source_c.h
+++ b/gr-fcd/include/fcd/fcd_source_c.h
@@ -93,6 +93,16 @@ public:
      */
     virtual void set_lna_gain(float gain) = 0;
 
+    /*! \brief Set the LNA enhancement value.
+     *  \param val The LNA enhancement setting.
+     *
+     * Set the LNA enhancement on the FCD. Valid values:
+     *      -1 = Off, 0, 1, 2, 3
+     *
+     * By default the LNA enhancment is turned off.
+     */
+    virtual void set_lna_enhance(int val) = 0;
+
     /*! \brief Set mixer gain.
      *  \param gain The new gain in dB.
      *
@@ -103,6 +113,95 @@ public:
      */
     virtual void set_mixer_gain(float gain) = 0;
 
+    /*! \brief Set the 1st IF gain.
+     *  \param gain The new gain in dB.
+     *
+     * Set the 1st stage IF gain in the FCD. Valid values are +6 and -3 dB.
+     *
+     * By default the 1st stage IF gain is set to +6 dB and this is a good value for
+     * most cases. In noisy areas you may try to reduce the gain.
+     */
+    virtual void set_if_gain_1(float gain) = 0;
+
+    /*! \brief Set the IF gain mode.
+     *  \param val The IF gain mode setting.
+     *
+     * Set the IF gain mode in the FCD. Valid values are 0 = Linearity, 1 = Sensitivity.
+     *
+     * By default the IF gain mode is set to 0 (Linearity).
+     */
+    virtual void set_if_gain_mode(int val) = 0;
+
+    /*! \brief Set the IF RC filter.
+     *  \param filter_freq The IF RC filter frequency.
+     *
+     * Set the IF RC filter frequency in the FCD. Valid values are between 1.0Mhz and 21.4Mhz.
+     *
+     * By default the IF RC filter frequency is set to 1.0Mhz and this is a good value for
+     * most cases.
+     */
+    virtual void set_if_rc_filter(float filter_freq) = 0;
+
+    /*! \brief Set the 2nd IF gain.
+     *  \param gain The new gain in dB.
+     *
+     * Set the 2nd stage IF gain in the FCD. Valid values are between 0.0 and +6.0 dB.
+     *
+     * By default the 2nd stage IF gain is set to 0.0 dB and this is a good value for
+     * most cases.
+     */
+    virtual void set_if_gain_2(float gain) = 0;
+
+    /*! \brief Set the 3rd IF gain.
+     *  \param gain The new gain in dB.
+     *
+     * Set the 3rd stage IF gain in the FCD. Valid values are between 0.0 and +6.0 dB.
+     *
+     * By default the 3rd stage IF gain is set to 0.0 dB and this is a good value for
+     * most cases.
+     */
+    virtual void set_if_gain_3(float gain) = 0;
+
+    /*! \brief Set the 4th IF gain.
+     *  \param gain The new gain in dB.
+     *
+     * Set the 4th stage IF gain in the FCD. Valid values are between 0.0 and +2.0 dB.
+     *
+     * By default the 4th stage IF gain is set to 0.0 dB and this is a good value for
+     * most cases.
+     */
+    virtual void set_if_gain_4(float gain) = 0;
+
+    /*! \brief Set the IF filter.
+     *  \param filter_freq The IF filter frequency.
+     *
+     * Set the IF filter frequency in the FCD. Valid values are between 2.15Mhz and 5.50Mhz.
+     *
+     * By default the IF filter frequency is set to 2.45Mhz and this is a good value for
+     * most cases.
+     */
+    virtual void set_if_filter(float filter_freq) = 0;
+
+    /*! \brief Set the 5th IF gain.
+     *  \param gain The new gain in dB.
+     *
+     * Set the 5th stage IF gain in the FCD. Valid values are between +3.0 and +15.0 dB.
+     *
+     * By default the 5th stage IF gain is set to +3.0 dB and this is a good value for
+     * most cases.
+     */
+    virtual void set_if_gain_5(float gain) = 0;
+
+    /*! \brief Set the 6th IF gain.
+     *  \param gain The new gain in dB.
+     *
+     * Set the 6th stage IF gain in the FCD. Valid values are between +3.0 and +15.0 dB.
+     *
+     * By default the 6th stage IF gain is set to +3.0 dB and this is a good value for
+     * most cases.
+     */
+    virtual void set_if_gain_6(float gain) = 0;
+
     /*! \brief Set new frequency correction.
      *  \param ppm The new frequency correction in parts per million
      *
diff --git a/gr-fcd/lib/fcd_source_c_impl.cc b/gr-fcd/lib/fcd_source_c_impl.cc
index 34a2218..95d733a 100644
--- a/gr-fcd/lib/fcd_source_c_impl.cc
+++ b/gr-fcd/lib/fcd_source_c_impl.cc
@@ -173,10 +173,41 @@ void fcd_source_c_impl::set_lna_gain(float gain)
   /* TODO: check fme */
 }
 
+// Set LNA enhance
+void fcd_source_c_impl::set_lna_enhance(int val)
+{
+  FCD_MODE_ENUM __GR_ATTR_UNUSED fme;
+  unsigned char g;
+
+  switch (val) {
+    case -1:
+        g = TLEE_OFF;
+        break;
+    case 0:
+        g = TLEE_0;
+        break;
+    case 1:
+        g = TLEE_1;
+        break;
+    case 2:
+        g = TLEE_2;
+        break;
+    case 3:
+        g = TLEE_3;
+        break;
+    default:
+        g = TLEE_OFF;
+        break;
+  }
+  
+  fme = fcdAppSetParam(FCD_CMD_APP_SET_LNA_ENHANCE, &g, 1);
+  /* TODO: check fme */
+}
+
 // Set mixer gain
 void fcd_source_c_impl::set_mixer_gain(float gain)
 {
-    FCD_MODE_ENUM fme;
+    FCD_MODE_ENUM __GR_ATTR_UNUSED fme;
     unsigned char g;
 
     if ( gain > 4.0 ) {
@@ -189,6 +220,262 @@ void fcd_source_c_impl::set_mixer_gain(float gain)
     /* TODO: check fme */
 }
 
+// Set IF Gain 1
+void fcd_source_c_impl::set_if_gain_1(float gain)
+{
+    FCD_MODE_ENUM __GR_ATTR_UNUSED fme;
+    unsigned char g;
+
+    if ( gain > 0.0 ) { 
+        g = TIG1E_P6_0DB;
+    } else {
+        g = TIG1E_N3_0DB;
+    }
+
+    fme = fcdAppSetParam(FCD_CMD_APP_SET_IF_GAIN1, &g, 1);
+    /* TODO: check fme */
+}
+
+// Set Intermediate Filter Gain Mode
+void fcd_source_c_impl::set_if_gain_mode(int val)
+{
+    FCD_MODE_ENUM __GR_ATTR_UNUSED fme;
+    unsigned char g;
+
+    switch (val) {
+        case 1:
+            g = TIGME_SENSITIVITY;
+            break;
+        default:
+            g = TIGME_LINEARITY;
+            break;
+    }
+
+    fme = fcdAppSetParam(FCD_CMD_APP_SET_IF_GAIN_MODE, &g, 1);
+}
+
+// Set IF RC Filter
+void fcd_source_c_impl::set_if_rc_filter(float filter_freq)
+{
+    FCD_MODE_ENUM __GR_ATTR_UNUSED fme;
+    unsigned char g;
+
+    if ( filter_freq >= 1.2 ) {
+        g = TIRFE_1_2MHZ;
+    } else if ( filter_freq >= 1.8 ) {
+        g = TIRFE_1_8MHZ;
+    } else if ( filter_freq >= 2.6 ) {
+        g = TIRFE_2_6MHZ;
+    } else if ( filter_freq >= 3.4 ) {
+        g = TIRFE_3_4MHZ;
+    } else if ( filter_freq >= 4.4 ) {
+        g = TIRFE_4_4MHZ;
+    } else if ( filter_freq >= 5.3 ) {
+        g = TIRFE_5_3MHZ;
+    } else if ( filter_freq >= 6.4 ) {
+        g = TIRFE_6_4MHZ;
+    } else if ( filter_freq >= 7.7 ) {
+        g = TIRFE_7_7MHZ;
+    } else if ( filter_freq >= 9.0 ) {
+        g = TIRFE_9_0MHZ;
+    } else if ( filter_freq >= 10.6 ) {
+        g = TIRFE_10_6MHZ;
+    } else if ( filter_freq >= 12.4 ) {
+        g = TIRFE_12_4MHZ;
+    } else if ( filter_freq >= 14.7 ) {
+        g = TIRFE_14_7MHZ;
+    } else if ( filter_freq >= 17.6 ) { 
+        g = TIRFE_17_6MHZ;
+    } else if ( filter_freq >= 21.0 ) {
+        g = TIRFE_21_0MHZ;
+    } else if ( filter_freq >= 21.4 ) {
+        g = TIRFE_21_4MHZ;
+    } else {
+        g = TIRFE_1_0MHZ;
+    }
+
+    fme = fcdAppSetParam(FCD_CMD_APP_SET_IF_RC_FILTER, &g, 1);
+    /* TODO: check fme */
+}
+
+// Set IF Gain 2
+void fcd_source_c_impl::set_if_gain_2(float gain)
+{
+    FCD_MODE_ENUM __GR_ATTR_UNUSED fme;
+    unsigned char g;
+
+    if ( gain == 0.0 ) {
+        g = TIG2E_P0_0DB;
+    } else if ( gain >= 1.0 ) {
+        g = TIG2E_P3_0DB;
+    } else if ( gain > 3.0 ) {
+        g = TIG2E_P6_0DB;
+    } else if ( gain > 6.0 ) {
+        g = TIG2E_P9_0DB;
+    }
+
+    fme = fcdAppSetParam(FCD_CMD_APP_SET_IF_GAIN2, &g, 1);
+    /* TODO: check fme */
+}
+
+// Set IF Gain 3
+void fcd_source_c_impl::set_if_gain_3(float gain)
+{
+    FCD_MODE_ENUM __GR_ATTR_UNUSED fme;
+    unsigned char g;
+
+    if ( gain == 0.0 ) {
+        g = TIG3E_P0_0DB;
+    } else if ( gain >= 1.0 ) {
+        g = TIG3E_P3_0DB;
+    } else if ( gain > 3.0 ) {
+        g = TIG3E_P6_0DB;
+    } else if ( gain > 6.0 ) {
+        g = TIG3E_P9_0DB;
+    }
+
+    fme = fcdAppSetParam(FCD_CMD_APP_SET_IF_GAIN3, &g, 1);
+    /* TODO: check fme */
+}
+
+// Set IF Gain 4
+void fcd_source_c_impl::set_if_gain_4(float gain)
+{
+    FCD_MODE_ENUM __GR_ATTR_UNUSED fme;
+    unsigned char g;
+
+    if ( gain == 0.0 ) {
+        g = TIG4E_P0_0DB;
+    } else if ( gain >= 1.0 ) {
+        g = TIG4E_P1_0DB;
+    } else if ( gain >= 2.0 ) {
+        g = TIG4E_P2_0DB;
+    }
+
+    fme = fcdAppSetParam(FCD_CMD_APP_SET_IF_GAIN4, &g, 1);
+    /* TODO: check fme */
+}
+
+// Set IF Filter
+void fcd_source_c_impl::set_if_filter(float filter_freq)
+{
+    FCD_MODE_ENUM __GR_ATTR_UNUSED fme;
+    unsigned char g;
+
+    if ( filter_freq >= 2.20 ) {
+        g = TIFE_2_20MHZ;
+    } else if ( filter_freq >= 2.24 ) {
+        g = TIFE_2_24MHZ;
+    } else if ( filter_freq >= 2.28 ) {
+        g = TIFE_2_28MHZ;
+    } else if ( filter_freq >= 2.30 ) {
+        g = TIFE_2_30MHZ;
+    } else if ( filter_freq >= 2.40 ) {
+        g = TIFE_2_40MHZ;
+    } else if ( filter_freq >= 2.45 ) {
+        g = TIFE_2_45MHZ;
+    } else if ( filter_freq >= 2.50 ) {
+        g = TIFE_2_50MHZ;
+    } else if ( filter_freq >= 2.55 ) {
+        g = TIFE_2_55MHZ;
+    } else if ( filter_freq >= 2.60 ) {
+        g = TIFE_2_60MHZ;
+    } else if ( filter_freq >= 2.70 ) {
+        g = TIFE_2_70MHZ;
+    } else if ( filter_freq >= 2.75 ) {
+        g = TIFE_2_75MHZ;
+    } else if ( filter_freq >= 2.80 ) {
+        g = TIFE_2_80MHZ;
+    } else if ( filter_freq >= 2.90 ) {
+        g = TIFE_2_90MHZ;
+    } else if ( filter_freq >= 2.95 ) {
+        g = TIFE_2_95MHZ;
+    } else if ( filter_freq >= 3.00 ) {
+        g = TIFE_3_00MHZ;
+    } else if ( filter_freq >= 3.10 ) {
+        g = TIFE_3_10MHZ;
+    } else if ( filter_freq >= 3.20 ) {
+        g = TIFE_3_20MHZ;
+    } else if ( filter_freq >= 3.30 ) {
+        g = TIFE_3_30MHZ;
+    } else if ( filter_freq >= 3.40 ) {
+        g = TIFE_3_40MHZ;
+    } else if ( filter_freq >= 3.60 ) {
+        g = TIFE_3_60MHZ;
+    } else if ( filter_freq >= 3.70 ) {
+        g = TIFE_3_70MHZ;
+    } else if ( filter_freq >= 3.80 ) {
+        g = TIFE_3_80MHZ;
+    } else if ( filter_freq >= 3.90 ) {
+        g = TIFE_3_90MHZ;
+    } else if ( filter_freq >= 4.10 ) { 
+        g = TIFE_4_10MHZ;
+    } else if ( filter_freq >= 4.30 ) {
+        g = TIFE_4_30MHZ;
+    } else if ( filter_freq >= 4.40 ) {
+        g = TIFE_4_40MHZ;
+    } else if ( filter_freq >= 4.60 ) { 
+        g = TIFE_4_60MHZ;
+    } else if ( filter_freq >= 4.80 ) {
+        g = TIFE_4_80MHZ;
+    } else if ( filter_freq >= 5.00 ) {
+        g = TIFE_5_00MHZ;
+    } else if ( filter_freq >= 5.30 ) {
+        g = TIFE_5_30MHZ;
+    } else if ( filter_freq >= 5.50 ) {
+        g = TIFE_5_50MHZ;
+    } else {
+        g = TIFE_2_15MHZ;
+    }
+
+    fme = fcdAppSetParam(FCD_CMD_APP_SET_IF_FILTER, &g, 1);
+    /* TODO: check fme */
+}
+
+// Set IF Gain 5
+void fcd_source_c_impl::set_if_gain_5(float gain)
+{
+    FCD_MODE_ENUM __GR_ATTR_UNUSED fme;
+    unsigned char g;
+
+    if ( gain == 0.0 ) {
+        g = TIG5E_P3_0DB;
+    } else if ( gain >= 6.0 ) {
+        g = TIG5E_P6_0DB;
+    } else if ( gain >= 9.0 ) {
+        g = TIG5E_P9_0DB;
+    } else if ( gain >= 12.0 ) {
+        g = TIG5E_P12_0DB;
+    } else if ( gain >= 15.0 ) {
+        g = TIG5E_P15_0DB;
+    }
+
+    fme = fcdAppSetParam(FCD_CMD_APP_SET_IF_GAIN5, &g, 1);
+    /* TODO: check fme */
+}
+
+// Set IF Gain 6
+void fcd_source_c_impl::set_if_gain_6(float gain)
+{
+    FCD_MODE_ENUM __GR_ATTR_UNUSED fme;
+    unsigned char g;
+
+    if ( gain == 0.0 ) {
+        g = TIG5E_P3_0DB;
+    } else if ( gain >= 6.0 ) {
+        g = TIG5E_P6_0DB;
+    } else if ( gain >= 9.0 ) {
+        g = TIG5E_P9_0DB;
+    } else if ( gain >= 12.0 ) {
+        g = TIG5E_P12_0DB;
+    } else if ( gain >= 15.0 ) {
+        g = TIG5E_P15_0DB;
+    }
+
+    fme = fcdAppSetParam(FCD_CMD_APP_SET_IF_GAIN6, &g, 1);
+    /* TODO: check fme */
+}
+
 // Set new frequency correction
 void fcd_source_c_impl::set_freq_corr(int ppm)
 {
diff --git a/gr-fcd/lib/fcd_source_c_impl.h b/gr-fcd/lib/fcd_source_c_impl.h
index d4ac404..a722492 100644
--- a/gr-fcd/lib/fcd_source_c_impl.h
+++ b/gr-fcd/lib/fcd_source_c_impl.h
@@ -31,8 +31,22 @@ public:
   void set_freq(int freq);
   void set_freq(float freq);
   void set_freq_khz(int freq);
+
   void set_lna_gain(float gain);
+  void set_lna_enhance(int val);
+
   void set_mixer_gain(float gain);
+
+  void set_if_gain_1(float gain);
+  void set_if_gain_mode(int val);
+  void set_if_rc_filter(float filter_freq);
+  void set_if_gain_2(float gain);
+  void set_if_gain_3(float gain);
+  void set_if_gain_4(float gain);
+  void set_if_filter(float filter_freq);
+  void set_if_gain_5(float gain);
+  void set_if_gain_6(float gain);
+
   void set_freq_corr(int ppm);
   void set_dc_corr(double _dci, double _dcq);
   void set_iq_corr(double _gain, double _phase);
