diff --git a/grc/gen_bladerf_blocks.py b/grc/gen_bladerf_blocks.py
index e052f4daf560810c5a2d60a016852f3f24234dde..94de1d2ffea91f722d4d1907cd89414af925506e 100644
--- a/grc/gen_bladerf_blocks.py
+++ b/grc/gen_bladerf_blocks.py
@@ -120,6 +120,7 @@ parameters:
   default: 'none'
   options: ['none','auto', 'auto3db', '50M', '144M', '222M', 'custom']
   option_labels: ['none','auto', 'auto3db', '50M', '144M', '222M', 'custom']
+  hide: part
 
 - id: tamer
   category: x40/x115
@@ -128,6 +129,16 @@ parameters:
   default: 'internal'
   options: ['internal','external_1pps', 'external']
   option_labels: ['Internal','External 1pps', 'External 10 MHz']
+  hide: part
+  
+- id: lpf_mode
+  label: 'LPF mode'
+  category: x40/x115
+  dtype: enum
+  default: 'disabled'
+  options: ['disabled', 'bypassed']
+  option_labels: ['Disabled', 'Bypassed'] 
+  hide: part
   
 
   
@@ -185,6 +196,7 @@ templates:
              + ",dac=" + str(${'$'}{dac})
              + ",xb200=" + '${'$'}{xb200}'
              + ",tamer=" + '${'$'}{tamer}'
+             + ",lpf_mode="+'${'$'}{lpf_mode}'
              + ",trigger0="+'${'$'}{trigger0}'
              + ",trigger_role0="+'${'$'}{trigger_role0}'
              + ",trigger_signal0="+'${'$'}{trigger_signal0}'
@@ -194,6 +206,7 @@ templates:
              + ",bias_tee0="+'${'$'}{bias_tee0}'
              + ",bias_tee1="+'${'$'}{bias_tee1}'
              
+             
     )
     self.${'$'}{id}.set_sample_rate(${'$'}{sample_rate})
     % for n in range(max_nchan):
@@ -412,6 +425,8 @@ PARAMS_TMPL = """
   option_labels: ['J71_4', 'J51_1', 'MINI_EXP_1', 'USER_0', 'USER_1', 'USER_2', 'USER_3', 'USER_4', 'USER_5', 'USER_6', 'USER_7'] 
   hide: ${'$'}{ 'part' if (nchan > ${n})  else 'all'} 
   
+
+  
 """
 
 
diff --git a/lib/bladerf/bladerf_common.cc b/lib/bladerf/bladerf_common.cc
index 48dda6849a27e7f497d6c602ece508fc5b95274c..bf7f027aa385bd81d035ad15b39f6c4b6190dbb4 100644
--- a/lib/bladerf/bladerf_common.cc
+++ b/lib/bladerf/bladerf_common.cc
@@ -418,6 +418,15 @@ void bladerf_common::init_bladerf1(const dict_t &dict, bladerf_direction directi
     if (dict.count("tamer")) {
         set_clock_source(_get(dict, "tamer"));
     }
+    bladerf_channel ch = (direction == BLADERF_RX) ? BLADERF_CHANNEL_RX(0)
+                                                   : BLADERF_CHANNEL_TX(0);
+    if (dict.count("lpf_mode")) {
+        bladerf_lpf_mode mode = _get(dict, "lpf_mode") == "bypassed"
+                ? BLADERF_LPF_BYPASSED : BLADERF_LPF_DISABLED;
+        set_lpf_mode(ch, mode);
+    }
+
+
 }
 
 void bladerf_common::init_bladerf2(const dict_t &dict, bladerf_direction direction)
@@ -1319,6 +1328,15 @@ double bladerf_common::get_smb_frequency()
   return static_cast<double>(actual_frequency);
 }
 
+void bladerf_common::set_lpf_mode(bladerf_channel ch, bladerf_lpf_mode mode)
+{
+    auto status = bladerf_set_lpf_mode(_dev.get(), ch, mode);
+    if(status != 0)
+    {
+        BLADERF_THROW_STATUS(status, "Failed to set LPF mode");
+    }
+}
+
 /******************************************************************************
  * Private methods
  ******************************************************************************/
diff --git a/lib/bladerf/bladerf_common.h b/lib/bladerf/bladerf_common.h
index c5d732244361e5522f8f10bd44e3a77a3ae62eb4..0ea6a01001bb5aff5f3248a4883dddf4c4505ed4 100644
--- a/lib/bladerf/bladerf_common.h
+++ b/lib/bladerf/bladerf_common.h
@@ -273,6 +273,9 @@ protected:
   /* Get the current SMB frequency */
   double get_smb_frequency();
 
+  void set_lpf_mode(bladerf_channel ch,  bladerf_lpf_mode mode);
+
+
   /*****************************************************************************
    * Protected members
    ****************************************************************************/