diff --git a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java
index a9d4b1f5e903b9a27d7b9142c07b80d72b7de23d..16cc8d6070d9beb0ca425becf0396b40e2d58dbf 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java
@@ -26,6 +26,7 @@ import android.support.v4.content.LocalBroadcastManager;
 import android.support.v7.app.AlertDialog;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.app.NotificationCompat;
+import android.support.v7.view.menu.ActionMenuItemView;
 import android.support.v7.widget.Toolbar;
 import android.text.Html;
 import android.text.format.DateUtils;
@@ -605,6 +606,34 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
             textViewTrend.setText(Html.fromHtml(renderTrendHtml(pumpStatusData.getCgmTrend())));
             textViewIOB.setText(String.format(Locale.getDefault(), "%.2f", pumpStatusData.getActiveInsulin()));
 
+            ActionMenuItemView batIcon = ((ActionMenuItemView) findViewById(R.id.status_battery));
+
+            switch (pumpStatusData.getBatteryPercentage()) {
+                case 0:
+                    batIcon.setTitle("0%");
+                    batIcon.setIcon(getResources().getDrawable(R.drawable.battery_0));
+                    break;
+                case 25:
+                    batIcon.setTitle("25%");
+                    batIcon.setIcon(getResources().getDrawable(R.drawable.battery_25));
+                    break;
+                case 50:
+                    batIcon.setTitle("50%");
+                    batIcon.setIcon(getResources().getDrawable(R.drawable.battery_50));
+                    break;
+                case 75:
+                    batIcon.setTitle("75%");
+                    batIcon.setIcon(getResources().getDrawable(R.drawable.battery_75));
+                    break;
+                case 100:
+                    batIcon.setTitle("100%");
+                    batIcon.setIcon(getResources().getDrawable(R.drawable.battery_100));
+                    break;
+                default:
+                    batIcon.setTitle(getResources().getString(R.string.menu_name_status));
+                    batIcon.setIcon(getResources().getDrawable(R.drawable.battery_0));
+            }
+
             // TODO - waiting for MPAndroidCharts 3.0.0. This will fix:
             // Date support
             // Realm v1.0.0 support
@@ -655,7 +684,17 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
             }
 
             long nextPoll = pumpStatusData.getEventDate().getTime() + pumpStatusData.getPumpTimeOffset()
-                    + MedtronicCnlIntentService.POLL_GRACE_PERIOD_MS + MedtronicCnlIntentService.POLL_PERIOD_MS;
+                    + MedtronicCnlIntentService.POLL_GRACE_PERIOD_MS;
+
+            if (pumpStatusData.getBatteryPercentage() > 25) {
+                // poll every 5 min
+                nextPoll += MedtronicCnlIntentService.POLL_PERIOD_MS;
+            } else {
+                // if pump battery seems to be empty reduce polling to save battery (every 15 min)
+                //TODO configurable???
+                //TODO add message & document it
+                nextPoll += MedtronicCnlIntentService.LOW_BATTERY_POLL_PERIOD_MS;
+            }
             startCgmService(nextPoll);
 
             // Delete invalid or old records from Realm
diff --git a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java
index 68fa08f757e16e2083a868b8426effd57c59e4ce..1c72020c489f95ef9f5196f85bac3e7931283094 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java
@@ -43,6 +43,7 @@ public class MedtronicCnlIntentService extends IntentService {
     public final static int USB_PID = 0x6210;
     public final static long USB_WARMUP_TIME_MS = 5000L;
     public final static long POLL_PERIOD_MS = 300000L;
+    public final static long LOW_BATTERY_POLL_PERIOD_MS = 900000L;
     // Number of additional seconds to wait after the next expected CGM poll, so that we don't interfere with CGM radio comms.
     public final static long POLL_GRACE_PERIOD_MS = 30000L;
     private static final String TAG = MedtronicCnlIntentService.class.getSimpleName();
diff --git a/app/src/main/res/drawable-hdpi/battery_0.png b/app/src/main/res/drawable-hdpi/battery_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..c03f9fccec681482cdf9b477d4b02fba975ea4ca
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_0.png differ
diff --git a/app/src/main/res/drawable-hdpi/battery_100.png b/app/src/main/res/drawable-hdpi/battery_100.png
new file mode 100644
index 0000000000000000000000000000000000000000..4696e4ca4ef01f97b10ca8400fa1055cbf749763
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_100.png differ
diff --git a/app/src/main/res/drawable-hdpi/battery_25.png b/app/src/main/res/drawable-hdpi/battery_25.png
new file mode 100644
index 0000000000000000000000000000000000000000..29e58b8ef43d4f5d2961ff48a91f194fced4b15a
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_25.png differ
diff --git a/app/src/main/res/drawable-hdpi/battery_50.png b/app/src/main/res/drawable-hdpi/battery_50.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb1d2dbbedfb5839dbe6aea45570a8c5fa56c662
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_50.png differ
diff --git a/app/src/main/res/drawable-hdpi/battery_75.png b/app/src/main/res/drawable-hdpi/battery_75.png
new file mode 100644
index 0000000000000000000000000000000000000000..baee371248786c07a01a03fd565bd8ac4368d4f5
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_75.png differ
diff --git a/app/src/main/res/drawable-mdpi/battery_0.png b/app/src/main/res/drawable-mdpi/battery_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..8efcad3ec8062a2221c81af9a39033120aab1185
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/battery_0.png differ
diff --git a/app/src/main/res/drawable-mdpi/battery_100.png b/app/src/main/res/drawable-mdpi/battery_100.png
new file mode 100644
index 0000000000000000000000000000000000000000..241b0982c7f2212253472bcf913be0c6a9c485c7
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/battery_100.png differ
diff --git a/app/src/main/res/drawable-mdpi/battery_25.png b/app/src/main/res/drawable-mdpi/battery_25.png
new file mode 100644
index 0000000000000000000000000000000000000000..0462de0f6996be5b26384051c02f6c53020d64fd
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/battery_25.png differ
diff --git a/app/src/main/res/drawable-mdpi/battery_50.png b/app/src/main/res/drawable-mdpi/battery_50.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ed9e8218ac467d4f836891dfb7e80a8ddb01ede
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/battery_50.png differ
diff --git a/app/src/main/res/drawable-mdpi/battery_75.png b/app/src/main/res/drawable-mdpi/battery_75.png
new file mode 100644
index 0000000000000000000000000000000000000000..345e8c351a26adb4e3b057f0afe0061a9b80592f
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/battery_75.png differ
diff --git a/app/src/main/res/drawable-xhdpi/battery_0.png b/app/src/main/res/drawable-xhdpi/battery_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..c512402c0624482b93a1b1c5cae165664c4f3a7a
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/battery_0.png differ
diff --git a/app/src/main/res/drawable-xhdpi/battery_100.png b/app/src/main/res/drawable-xhdpi/battery_100.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1e82cb76c7215cb4fa4e72468b18611ec2126bb
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/battery_100.png differ
diff --git a/app/src/main/res/drawable-xhdpi/battery_25.png b/app/src/main/res/drawable-xhdpi/battery_25.png
new file mode 100644
index 0000000000000000000000000000000000000000..c10647838f93966506685d6f5fa14be1a26a36a8
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/battery_25.png differ
diff --git a/app/src/main/res/drawable-xhdpi/battery_50.png b/app/src/main/res/drawable-xhdpi/battery_50.png
new file mode 100644
index 0000000000000000000000000000000000000000..b689f641c47fcee2cfd122f8e2c05398ec89e101
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/battery_50.png differ
diff --git a/app/src/main/res/drawable-xhdpi/battery_75.png b/app/src/main/res/drawable-xhdpi/battery_75.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f8843b1a0695d85c1da674137ee90b576cd3cc1
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/battery_75.png differ
diff --git a/app/src/main/res/menu/menu.xml b/app/src/main/res/menu/menu.xml
index 3a4948d2788551963d7d0670e34f0e6c67aa5944..081fb6a44c72e3bf346d38669e5a31de5c89f9c5 100644
--- a/app/src/main/res/menu/menu.xml
+++ b/app/src/main/res/menu/menu.xml
@@ -1,6 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <item
+        android:id="@+id/status_battery"
+        android:orderInCategory="99"
+        app:showAsAction="always"
+        android:title="@string/menu_name_battery_status"/>
     <item
         android:id="@+id/action_menu_status"
         android:icon="@drawable/ic_launcher"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bfa6c9df237c0f66af2c2e04aaa26bb6508d5841..548128d84781081ed0d7961587f84f4c51d63845 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -50,4 +50,5 @@
     <string name="dummy_button">Dummy Button</string>
     <string name="dummy_content">DUMMY\nCONTENT</string>
     <string name="menu_name_status">Status</string>
+    <string name="menu_name_battery_status"></string>
 </resources>