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 5be35edfe6a0a28c34a650c6627c3c4e7addefbe..c11b1a4c295df7ed346c3129ded40052907797a7 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java
@@ -90,6 +90,8 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
     private Realm mRealm;
     private StatusMessageReceiver statusMessageReceiver = new StatusMessageReceiver();
     private MedtronicCnlAlarmReceiver medtronicCnlAlarmReceiver = new MedtronicCnlAlarmReceiver();
+    public static long pollInterval = 0;
+    public static long lowBatteryPollInterval = 0;
 
     public static void setActivePumpMac(long pumpMac) {
         activePumpMac = pumpMac;
@@ -416,6 +418,10 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
             }
         } else if (key.equals("mmolxl")) {
             refreshDisplay();
+        } else if (key.equals("pollInterval")) {
+            String test = sharedPreferences.getString("pollInterval", "5 min");
+        } else if (key.equals("lowBatPollInterval")) {
+            MainActivity.lowBatteryPollInterval = sharedPreferences.getLong("lowBatPollInterval", MedtronicCnlIntentService.LOW_BATTERY_POLL_PERIOD_MS);
         }
     }
 
@@ -687,12 +693,12 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
 
             if (pumpStatusData.getBatteryPercentage() > 25) {
                 // poll every 5 min
-                nextPoll += MedtronicCnlIntentService.POLL_PERIOD_MS;
+                nextPoll += MainActivity.pollInterval;
             } 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;
+                nextPoll += MainActivity.lowBatteryPollInterval;
             }
             startCgmService(nextPoll);
 
@@ -719,7 +725,6 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc
             // TODO - handle isOffline in NightscoutUploadIntentService?
             uploadCgmData();
 
-
             refreshDisplay();
         }
     }
diff --git a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlAlarmReceiver.java b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlAlarmReceiver.java
index 49e648c68cc37df7ca643e632c9c76b1457b32f0..1da9df6ec3619cb2a86f80c8b1acc8cb21eca0a3 100644
--- a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlAlarmReceiver.java
+++ b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlAlarmReceiver.java
@@ -1,15 +1,20 @@
 package info.nightscout.android.medtronic.service;
 
+import android.app.Activity;
 import android.app.AlarmManager;
 import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
+import android.content.SharedPreferences;
 import android.os.Build;
+import android.preference.PreferenceManager;
 import android.support.v4.content.WakefulBroadcastReceiver;
 import android.util.Log;
 
 import java.util.Date;
 
+import info.nightscout.android.medtronic.MainActivity;
+
 /**
  * Created by lgoedhart on 14/07/2016.
  */
@@ -20,6 +25,10 @@ public class MedtronicCnlAlarmReceiver extends WakefulBroadcastReceiver {
     private static PendingIntent pendingIntent = null;
     private static AlarmManager alarmManager = null;
 
+    public MedtronicCnlAlarmReceiver() {
+        super();
+    }
+
     @Override
     public void onReceive(final Context context, Intent intent) {
         // Start the IntentService
@@ -64,7 +73,7 @@ public class MedtronicCnlAlarmReceiver extends WakefulBroadcastReceiver {
 
     // restarting the alarm after MedtronicCnlIntentService.POLL_PERIOD_MS from now
     public void restartAlarm() {
-        setAlarm(System.currentTimeMillis() + MedtronicCnlIntentService.POLL_PERIOD_MS + MedtronicCnlIntentService.POLL_GRACE_PERIOD_MS);
+        setAlarm(System.currentTimeMillis() + MainActivity.pollInterval + MedtronicCnlIntentService.POLL_GRACE_PERIOD_MS);
     }
 
     // Cancel the alarm.
diff --git a/app/src/main/res/drawable/battery_0.png b/app/src/main/res/drawable/battery_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..16377a564141df832f1bbe472c42ab450173e2a5
Binary files /dev/null and b/app/src/main/res/drawable/battery_0.png differ
diff --git a/app/src/main/res/drawable/battery_100.png b/app/src/main/res/drawable/battery_100.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8bbc2397dfe7ee2b820b1da644276b9ffbb9cd2
Binary files /dev/null and b/app/src/main/res/drawable/battery_100.png differ
diff --git a/app/src/main/res/drawable/battery_25.png b/app/src/main/res/drawable/battery_25.png
new file mode 100644
index 0000000000000000000000000000000000000000..92de235a7724a7563dee6021a2822350457dbf0e
Binary files /dev/null and b/app/src/main/res/drawable/battery_25.png differ
diff --git a/app/src/main/res/drawable/battery_50.png b/app/src/main/res/drawable/battery_50.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb037d0011c8cf75f73a0349d8c8e82cb4d613b9
Binary files /dev/null and b/app/src/main/res/drawable/battery_50.png differ
diff --git a/app/src/main/res/drawable/battery_75.png b/app/src/main/res/drawable/battery_75.png
new file mode 100644
index 0000000000000000000000000000000000000000..f3898daa77f4d66f34cfc452e3f6fb640b537c24
Binary files /dev/null and b/app/src/main/res/drawable/battery_75.png differ
diff --git a/app/src/main/res/menu/menu.xml b/app/src/main/res/menu/menu.xml
index 081fb6a44c72e3bf346d38669e5a31de5c89f9c5..04088a880bf29ac40b795fff5b38fcbd175894a2 100644
--- a/app/src/main/res/menu/menu.xml
+++ b/app/src/main/res/menu/menu.xml
@@ -4,6 +4,7 @@
 
     <item
         android:id="@+id/status_battery"
+        android:icon="@drawable/battery_unknown"
         android:orderInCategory="99"
         app:showAsAction="always"
         android:title="@string/menu_name_battery_status"/>
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d84a02f6bb920f7d4afe27e28ed60ab9cba5f38b
--- /dev/null
+++ b/app/src/main/res/values/arrays.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string-array name="poll_interval">
+        <item>5 min</item>
+        <item>10 min</item>
+        <item>12 min</item>
+        <item>15 min</item>
+        <item>20 min</item>
+        <item>30 min</item>
+        <item>60 min</item>
+        <!--item>off</item-->
+    </string-array>
+
+    <string-array name="poll_interval_millis">
+        <item>300000</item>
+        <item>600000</item>
+        <item>720000</item>
+        <item>900000</item>
+        <item>1200000</item>
+        <item>1800000</item>
+        <item>3600000</item>
+        <!--item>0</item-->
+    </string-array>
+</resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 7045ebb5bf07e743c80a57420796b46290abf78a..65beeaa82185934f50c924838a501d2f4e794365 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -50,5 +50,8 @@
     <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>
+    <string name="menu_name_battery_status">unknown</string>
+
+    <string name="preferences_poll_interval">poll interval</string>
+    <string name="preferences_low_battery_poll_interval">poll interval on low pump battery</string>
 </resources>
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 9e6793c85ec60101ef37b053d3af5d9caefd74b1..c42c9a0faab8db5a821d966e873dd0e1e477c320 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -18,6 +18,20 @@
             android:switchTextOff="1"
             android:switchTextOn="2"
             android:title="Decimals"/>
+        <ListPreference
+            android:key="pollInterval"
+            android:defaultValue="300000"
+            android:title="@string/preferences_poll_interval"
+            android:summary="%s"
+            android:entries="@array/poll_interval"
+            android:entryValues="@array/poll_interval_millis"/>
+        <ListPreference
+            android:key="lowBatPollInterval"
+            android:defaultValue="900000"
+            android:title="@string/preferences_low_battery_poll_interval"
+            android:summary="%s"
+            android:entries="@array/poll_interval"
+            android:entryValues="@array/poll_interval_millis"/>
     </PreferenceCategory>
     <PreferenceCategory android:title="Sharing">
         <CheckBoxPreference