diff --git a/apps/fm_receiver.grc b/apps/fm_receiver.grc
index 9c6ed09ec99e857c7cdda35200fc6eb683d5f640..1fcd7066d93289bf620ffb6e5f01f5d0c5a317bb 100644
--- a/apps/fm_receiver.grc
+++ b/apps/fm_receiver.grc
@@ -41,7 +41,7 @@ blocks:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [312, 4.0]
+    coordinate: [280, 12.0]
     rotation: 0
     state: true
 - name: freq
@@ -62,7 +62,23 @@ blocks:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [512, 12.0]
+    coordinate: [568, 12.0]
+    rotation: 0
+    state: true
+- name: power
+  id: variable_qtgui_label
+  parameters:
+    comment: ''
+    formatter: None
+    gui_hint: ''
+    label: ''
+    type: real
+    value: '0'
+  states:
+    bus_sink: false
+    bus_source: false
+    bus_structure: null
+    coordinate: [456, 12.0]
     rotation: 0
     state: true
 - name: samp_rate
@@ -86,7 +102,7 @@ blocks:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [416, 4.0]
+    coordinate: [368, 12.0]
     rotation: 0
     state: true
 - name: volume
@@ -107,7 +123,7 @@ blocks:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [712, 4.0]
+    coordinate: [704, 12.0]
     rotation: 0
     state: true
 - name: analog_fm_demod_cf_0
@@ -197,35 +213,35 @@ blocks:
     coordinate: [88, 100.0]
     rotation: 0
     state: true
-- name: blocks_message_debug_0
-  id: blocks_message_debug
+- name: blocks_message_strobe_0
+  id: blocks_message_strobe
   parameters:
     affinity: ''
     alias: ''
     comment: ''
-    en_uvec: 'True'
+    maxoutbuf: '0'
+    minoutbuf: '0'
+    msg: pmt.intern("POWER")
+    period: '1000'
   states:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [576, 440.0]
+    coordinate: [88, 540.0]
     rotation: 0
     state: true
-- name: blocks_message_strobe_0
-  id: blocks_message_strobe
+- name: blocks_msgpair_to_var_0
+  id: blocks_msgpair_to_var
   parameters:
     affinity: ''
     alias: ''
     comment: ''
-    maxoutbuf: '0'
-    minoutbuf: '0'
-    msg: pmt.intern("TEST")
-    period: '1000'
+    target: power
   states:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [64, 532.0]
+    coordinate: [408, 140.0]
     rotation: 0
     state: true
 - name: blocks_multiply_const_vxx_0
@@ -263,14 +279,14 @@ blocks:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [384, 188.0]
+    coordinate: [408, 228.0]
     rotation: 0
     state: true
 
 connections:
 - [analog_fm_demod_cf_0, '0', blocks_multiply_const_vxx_0, '0']
 - [bladeRF_source_0, '0', rational_resampler_xxx_0, '0']
-- [bladeRF_source_0, pmic_out, blocks_message_debug_0, print]
+- [bladeRF_source_0, pmic_out, blocks_msgpair_to_var_0, inpair]
 - [blocks_message_strobe_0, strobe, bladeRF_source_0, pmic_in]
 - [blocks_multiply_const_vxx_0, '0', audio_sink_0, '0']
 - [rational_resampler_xxx_0, '0', analog_fm_demod_cf_0, '0']
diff --git a/lib/bladerf/bladerf_common.cc b/lib/bladerf/bladerf_common.cc
index 8615d344d2e9fc088ce26a3a7294c593a7439e93..7fde952f8ab45eec32a5e22b9d52afaf070bb701 100644
--- a/lib/bladerf/bladerf_common.cc
+++ b/lib/bladerf/bladerf_common.cc
@@ -426,7 +426,37 @@ void bladerf_common::set_channel_enable(bladerf_channel ch, bool enable)
 
 bool bladerf_common::get_channel_enable(bladerf_channel ch)
 {
-  return _enables[ch];
+    return _enables[ch];
+}
+
+std::string bladerf_common::get_pmic_value(const std::string &reg_name)
+{
+    bladerf_pmic_register reg;
+    if(reg_name == "CONFIGURATION")
+        reg = BLADERF_PMIC_CONFIGURATION;
+    else if(reg_name == "VOLTAGE_SHUNT")
+        reg = BLADERF_PMIC_VOLTAGE_SHUNT;
+    else if(reg_name == "VOLTAGE_BUS")
+        reg = BLADERF_PMIC_VOLTAGE_BUS;
+    else if(reg_name == "POWER")
+        reg = BLADERF_PMIC_POWER;
+    else if(reg_name == "CURRENT")
+        reg = BLADERF_PMIC_CURRENT;
+    else if(reg_name == "CALIBRATION")
+        reg = BLADERF_PMIC_CALIBRATION;
+    else return {};
+    if(reg == BLADERF_PMIC_CONFIGURATION || reg == BLADERF_PMIC_CALIBRATION)
+    {
+        //https://github.com/Nuand/bladeRF/blob/master/host/libraries/libbladeRF/src/board/bladerf2/bladerf2.c#L3581
+        //while not supported
+        //return std::to_string(get_pmic<uint16_t>(reg));
+        return {};
+    }
+    else
+    {
+        return std::to_string(get_pmic<float>(reg));
+    }
+
 }
 
 void bladerf_common::set_verbosity(std::string const &verbosity)
diff --git a/lib/bladerf/bladerf_common.h b/lib/bladerf/bladerf_common.h
index 86aef27c0d7c7010d3964da30f71c870a7320a55..54d1f88948a095327ee793d873731c7bf2ef22e3 100644
--- a/lib/bladerf/bladerf_common.h
+++ b/lib/bladerf/bladerf_common.h
@@ -162,6 +162,7 @@ protected:
   void set_channel_enable(bladerf_channel ch, bool enable);
   bool get_channel_enable(bladerf_channel ch);
 
+  std::string get_pmic_value(const std::string & reg_name);
 
   template<typename T>
   T get_pmic(bladerf_pmic_register reg)
diff --git a/lib/bladerf/bladerf_source_c.cc b/lib/bladerf/bladerf_source_c.cc
index 0481628407ea0f8d5a6c4a1c7cfab2881821c7e0..535dd03470d3fd02f78d9fa4be65881be3591d09 100644
--- a/lib/bladerf/bladerf_source_c.cc
+++ b/lib/bladerf/bladerf_source_c.cc
@@ -84,7 +84,11 @@ bladerf_source_c::bladerf_source_c(const std::string &args) :
 
   set_msg_handler(pmt::mp("pmic_in"),[=](const pmt::pmt_t & msg)
   {
-      message_port_pub(pmt::mp("pmic_out"), msg);
+      auto type = pmt::symbol_to_string(msg);
+      auto value = get_pmic_value(type);
+      auto pair = pmt::cons(msg,pmt::string_to_symbol(value));
+      message_port_pub(pmt::mp("pmic_out"), pair);
+
   });
 
   /* Handle setting of sampling mode */