diff --git a/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/src/MainWindow.cpp b/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/src/MainWindow.cpp
index a20561d746dd3e79681b6ab14bff76cf395a4545..f42a4bd3b9b8dbea3499f6a4ce05df640b750989 100644
--- a/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/src/MainWindow.cpp
+++ b/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/src/MainWindow.cpp
@@ -526,20 +526,6 @@ void MainWindow::setCrazyRadioStatus(int radio_status)
 
 float MainWindow::fromVoltageToPercent(float voltage)
 {
-    // int num_cutoffs = m_cutoff_voltages.size();
-    // float hysteresis = 0.05;
-
-    // while(m_battery_level < num_cutoffs && voltage >= m_cutoff_voltages[m_battery_level])
-    // {
-    //     ++m_battery_level;
-    // }
-    // while(m_battery_level > 0 && voltage < m_cutoff_voltages[m_battery_level - 1] - hysteresis)
-    // {
-    //     --m_battery_level;
-    // }
-
-    // float percentage = 100.0 * m_battery_level/num_cutoffs;
-
 	// INITIALISE THE LOCAL VARIABLE FOR THE VOLTAGE WHEN FULL/EMPTY
 	float voltage_when_full;
 	float voltage_when_empty;
@@ -591,7 +577,7 @@ void MainWindow::updateBatteryVoltage(float battery_voltage)
 	// COMPUTE THE BATTERY VOLTAGE AS A PERCENTAGE
 	float battery_voltage_percentage = fromVoltageToPercent(battery_voltage);
 
-	ROS_INFO_STREAM("Battery percentage = " << battery_voltage_percentage );
+	//ROS_INFO_STREAM("Battery percentage = " << battery_voltage_percentage );
 
 	// UPDATE THE IMAGE DISPLAYED IN THE BATTERY VOLTAGE LABEL IMAGE
 	switch(m_battery_state)
@@ -734,7 +720,7 @@ void MainWindow::CFBatteryCallback(const std_msgs::Float32& msg)
 
 void MainWindow::crazyRadioStatusCallback(const std_msgs::Int32& msg)
 {
-    ROS_INFO("Callback CrazyRadioStatus called");
+    ROS_INFO("[Student GUI] Callback CrazyRadioStatus called");
     this->setCrazyRadioStatus(msg.data);
 }
 
diff --git a/pps_ws/src/d_fall_pps/src/nodes/PPSClient.cpp b/pps_ws/src/d_fall_pps/src/nodes/PPSClient.cpp
index bebe2e1251ee4b29263b3733aa9807f563798d5d..5edbf807a7bdfaa6dffdbf3580025b369e9b47bc 100755
--- a/pps_ws/src/d_fall_pps/src/nodes/PPSClient.cpp
+++ b/pps_ws/src/d_fall_pps/src/nodes/PPSClient.cpp
@@ -506,6 +506,11 @@ void commandAllAgentsCallback(const std_msgs::Int32& msg)
 void crazyRadioStatusCallback(const std_msgs::Int32& msg)
 {
     crazyradio_status = msg.data;
+    // RESET THE BATTERY STATE IF DISCONNECTED
+    if (crazyradio_status == DISCONNECTED)
+    {
+        setBatteryStateTo(BATTERY_STATE_NORMAL);
+    }
 }
 
 void controllerSetPointCallback(const Setpoint& newSetpoint)
@@ -708,12 +713,13 @@ void setBatteryStateTo(int new_battery_state)
 float movingAverageBatteryFilter(float new_input)
 {
     const int N = 7;
-    static float previous_output = 0;
-    static float inputs[N];
+    static float previous_output = 4.2f;
+    static float inputs[N] = {4.2f,4.2f,4.2f,4.2f,4.2f,4.2f,4.2f};
 
 
-    // imagine an array of an even number of samples, we will output the one in the middle averaged with information from all of them.
-    // for that, we only need to store some past of the signal
+    // imagine an array of an even number of samples, we will output the one
+    // in the middle averaged with information from all of them.
+    // For that, we only need to store some past of the signal
     float output = previous_output + new_input/N - inputs[N-1]/N;
 
     // update array of inputs
@@ -738,17 +744,28 @@ void CFBatteryCallback(const std_msgs::Float32& msg)
     float filtered_battery_voltage = movingAverageBatteryFilter(m_battery_voltage); //need to perform filtering here
 
     // ROS_INFO_STREAM("filtered data: " << filtered_battery_voltage);
-    if((flying_state != STATE_MOTORS_OFF && (filtered_battery_voltage < m_battery_threshold_while_flying)) ||
-       (flying_state == STATE_MOTORS_OFF && (filtered_battery_voltage < m_battery_threshold_while_motors_off)))
+    if(
+        (flying_state != STATE_MOTORS_OFF && (filtered_battery_voltage < m_battery_threshold_while_flying))
+        ||
+        (flying_state == STATE_MOTORS_OFF && (filtered_battery_voltage < m_battery_threshold_while_motors_off))
+    )
     {
         if(getBatteryState() != BATTERY_STATE_LOW)
+        {
             setBatteryStateTo(BATTERY_STATE_LOW);
-        ROS_INFO("[PPS CLIENT] low level battery triggered");
+            ROS_INFO("[PPS CLIENT] low level battery triggered");
+        }
+        
     }
-    else                        //maybe add hysteresis somewhere here?
+    else
     {
-        if(getBatteryState() != BATTERY_STATE_NORMAL)
-            setBatteryStateTo(BATTERY_STATE_NORMAL);
+        // TO AVOID BEING ABLE TO IMMEDIATELY TAKE-OFF AFTER A
+        // "BATTERY LOW" EVENT IS TRIGGERED, WE DO NOT SET THE
+        // BATTERY STATE BACK TO NORMAL
+        // if(getBatteryState() != BATTERY_STATE_NORMAL)
+        // {
+        //     setBatteryStateTo(BATTERY_STATE_NORMAL);
+        // }
     }
 }
 
@@ -1063,6 +1080,11 @@ int main(int argc, char* argv[])
     // know the battery level of the CF
     ros::Subscriber CFBatterySubscriber = namespaceNodeHandle.subscribe("CrazyRadio/CFBattery", 1, CFBatteryCallback);
 
+    // INITIALISE THE BATTERY VOLTAGE TO SOMETHING CLOSE TO FULL
+    // > This is used to prevent the "Low Battery" being trigged when the 
+    //   first battery voltage data is received
+    m_battery_voltage = 4.2f;
+
 	//start with safe controller
     flying_state = STATE_MOTORS_OFF;
     setControllerUsed(SAFE_CONTROLLER);