Can I just download the AndroidAPS installation file?¶
No. There is no downloadable apk file for AndroidAPS. You have to build it yourself. Here’s the reason why:
AndroidAPS is used to control your pump and give insulin. Under current regulations, in Europe, all the systems class as IIa or IIb are medical devices that require regulatory approval (a CE mark) and that needs various studies and sign offs. Distributing an unregulated device is illegal. Similar regulations exist in other parts of the world.
This regulation is not restricted to sales (in the meaning of getting money for something) but applies to any way of distribution (even giving away for free). Building a medical device for yourself is the only way not being affected by these regulations.
That’s why apks aren’t available.
How to begin?¶
First of all, you have to get loopable hardware components:
- A supported insulin pump,
- an Android smartphone (Apple iOS is not supported by AndroidAPS - you can check iOS Loop) and
- a continuous glucose monitoring system.
Secondly, you have to setup your hardware. See example setup with step-by-step tutorial.
Thirdly, you have to setup your software components: AndroidAPS and CGM/FGM source.
Fourthly, you have to learn and understand the OpenAPS reference design to check your treatment factors. The founding principle of closed looping is that your basal rate and carb ratio are accurate. All recommendations assume that your basal needs are met and any peaks or troughs you’re seeing are a result of other factors which therefore require some one-off adjustments (exercise, stress etc.). The adjustments the closed loop can make for safety have been limited (see maximum allowed temporary basal rate in OpenAPS Reference Design), which means that you don’t want to waste the allowed dosing on correcting a wrong underlying basal. If for example you are frequently low temping on the approach of a meal then it is likely your basal needs adjusting. You can use autotune to consider a large pool of data to suggest whether and how basals and/or ISF need to be adjusted, and also whether carb ratio needs to be changed. Or you can test and set your basal the old fashioned way.
What practicalities of looping do I have?¶
If you don’t want your preferences to be easily changed then you can password protect the preferences menu by selecting in the preferences menu “password for settings” and type the password you choose. The next time you go into preferences menu it will ask for that password before going any further. If you later want to remove the password option then go into “password for settings” and delete the text.
Android Wear Smartwatches¶
If you plan to use the android wear app to bolus or change settings then you need to ensure notifications from AndroidAPS are not blocked. Confirmation of action comes via notification.
If you take your pump off for showering/bathing/swimming/sport etc. you must let AndroidAPS know that no insulin is delivered to keep IOB correct.
Long-press the button ‘Closed loop’ (will be called ‘Open Loop’ when you are not closed looping yet) on top of the homescreen.
Select ‘Disconnect pump for XY min’
This will set your basal to zero for that time period.
The minimum length of time for a disconnection is due to the minimum length of TBRs that can be set on the pump. So, if you wish to disconnect for a shorter period of time you have to use the shortest disconnection time available for your pump and reconnect manually as described below.
Button ‘Closed Loop’ (or ‘Open Loop’) will turn red and be named ‘Disconnected (xx m)’ displaying the remaining disconnection time.
AAPS will reconnect pump after the chosen time automatically and your closed loop will start working again.
If the selected time was too long you can reconnect manually.
Long-press on the red button ‘Disconnected (xx m)’.
Select ‘Reconnect pump’
Recommendations not only based on one single CGM reading¶
For safety, recommendations made are based on not one CGM reading but the average delta. Therefore, if you miss some readings it may take a while after getting data back before AndroidAPS kicks in looping again.
What emergency equipment is recommended to take with me?¶
First of all, you have to take the same emergency equipment with you like every other T1D with insulin pump therapy. As looping with AndroidAPS, it is strongly recommended to have the following additional equipment with or near to you:
- Battery pack for the energy of your smartphone, wear and (maybe) BT reader
- Backup in the cloud (Dropbox, Google Drive...) of the apps you use like: your latest AndroidAPS-APK and your key store password, AndroidAPS settings file, xDrip settings file, patched Dexcom app, ...
- Pump batteries
How to safely attach the CGM/FGM?¶
You can tape it: There are getting sold pre-perforated ‘overpatches’ for common CGM systems (ask Google or ebay). Some loopers use the cheaper standard kinesiology tape or rocktape.
You can fix it: There are getting sold upper arm bracelets that fix the CGM/FGM with a rubber band (ask Google or ebay).
The following list aims to help you optimize settings. It may be best to start at the top and work to the bottom. Aim to get one setting right before changing another. Work in small steps rather than making large changes at once. You can use Autotune to guide your thinking, although it should not be followed blindly: it may not work well for you or in all circumstances. Note that settings interact with one another - you can have ‘wrong’ settings that work well together in some circumstances (e.g. if a too-high basal happens to be at the same time as a too-high CR) but do not in others. This means that you need to consider all the settings and check they work together in a variety of circumstances.
Duration of insulin activity (DIA)¶
Description & testing¶
The length of time that insulin decays to zero.
This is quite often set too short. Most people will want at least 5 hours, potentially 6 or 7.
Too short DIA can lead to low BGs. And vice-versa.
If DIA is too short, AAPS thinks too early that your previous bolus is all consumed, and, at still elevated glucose, will give you more. (Actually, it does not wait that long, but predicts what would happen, and keeps adding insulin). This essentially creates ‘insulin stacking’ that AAPS is unaware of.
Example of a too-short DIA is a high BG followed by AAPS over-correcting and giving a low BG.
Basal rate schedule (U/h)¶
Description & testing¶
The amount of insulin in a given hour time block to maintain BG at a stable level.
Test your basal rates by suspending loop, fasting, waiting for say 5 hours after food, and seeing how BG changes. Repeat a few times.
If BG is dropping, basal rate is too high. And vice-versa.
Too high basal rate can lead to low BGs. And vice-versa.
AAPS ‘baselines’ against the default basal rate. If basal rate is too high, a ‘zero temp’ will count as a bigger negative IOB than it should. This will lead to AAPS giving more subsequent corrections than it should to bring IOB ultimately to zero.
So, a basal rate too high will create low BGs both with the default rate, but also some hours hence as AAPS corrects to target.
Conversely a basal rate too low can lead to high BGs, and a failure to bring levels down to target.
Insulin sensitivity factor (ISF) (mmol/l/U or mg/dl/U)¶
Description & testing¶
The drop in BG expected from dosing 1U of insulin.
Assuming correct basal, you can test this by suspending loop, checking IOB is zero, and taking a few glucose tablets to get to a stable ‘high’ level.
Then take an estimated amount of insulin (as per current 1/ISF) to get to your target BG.
Be careful as this is quite often set too low. Too low means 1 U will drop BG faster than expected.
Lower ISF (i.e. 40 instead of 50) = more aggressive / stronger leading to a bigger drop in BGs for each unit of insulin. If too low, this can lead to low BGs.
Higher ISF (i.e. 45 instead of 35) = less aggressive / weaker leading to a smaller drop in BGs for each unit of insulin. If too high, this can lead to high BGs.
- BG is 190 mg/dl (10,5 mmol) and target is 100 mg/dl (5,6 mmol).
- So, you want correction of 90 mg/dl (= 190 - 110).
- ISF = 30 -> 90 / 30 = 3 units of insulin
- ISF = 45 -> 90 / 45 = 2 units of insulin
An ISF that is too low (not uncommon) can result in ‘over corrections’, because AAPS thinks it needs more insulin to correct a high BG than it actually does. This can lead to ‘roller coaster’ BGs (esp. when fasting). In this circumstance you need to increase your ISF. This will mean AAPS gives smaller correction doses, and this will avoid over-correcting a high BG resulting in a low BG.
Conversely, an ISF set too high can result in under-corrections, meaning your BG remains above target – particularly noticeable overnight.
Insulin to carb ratio (IC) (g/U)¶
Description & testing¶
The grams of carbohydrate for each unit of insulin.
Some people also use I:C as abbreviation instead of IC or talk about carb ratio (CR).
Assuming correct basal, you can test by checking IOB is zero and that you are in-range, eating exactly known carbs, and take an estimated amount of insulin based on current insulin to carb ratio. Best is to eat food your normally eat at that time of day and count its carbs precisely.
In some European countries bread units were used for determination of how much insulin is needed for food. At the beginning 1 bread unit equaled 12g of carbs, later some changed to 10g of carbs.
In this model the amount of carbs was fixed and the amount of insulin was variable. (“How much insulin is needed to cover one bread unit?”)
When using IC the amount of insulin is fixed and the amount of carbs is variable. (“How many g of carbs can be covered by one unit of insulin?”)
Bread unit fatcor (BU = 12g carbs): 2,4 U/BU -> You need 2,4 units of insulin when you eat one bread unit.
Corresponding IC: 12g / 2,4 U = 5,0 g/U -> 5,0g carbs can be covered with one unit of insulin.
BU factor 2,4 U / 12g ===> IC = 12g / 2,4 U = 5,0 g/U
Conversion tables are available online i.e. here.
Lower IC = less food per unit, i.e. you are getting more insulin for a fixed amount of carbs. Can also be called ‘more aggressive’.
Higher IC = more food per unit, i.e. you are getting less insulin for a fixed amount of carbs. Can also be called ‘less aggressive’.
If after meal has digested and IOB has returned to zero, your BG remains higher than before food, chances are IC is too large. Conversely if your BG is lower than before food, IC is too small.
Why does it show “dia:3” in the “OPENAPS AMA”-tab even though I have a different DIA in my profile?¶
In AMA, DIA actually doesn’t mean the ‘duration of insulin acting’. It is a parameter, which used to be connected to the DIA. Now, it means, ‘in which time should the correction be finished’. It has nothing to do with the calculation of the IOB. In OpenAPS SMB, there is no need for this parameter anymore.
Why using min. 5h DIA (insulin end time) instead of 2-3h?¶
Well explained in this article. Don’t forget to
ACTIVATE PROFILE after changing your DIA.
What causes the loop to frequently lower my BG to hypoglycemic values without COB?¶
First of all, check your basal rate and make a no-carb basal rate test. If it is correct, this behavior is typically caused by a too low ISF. A too low ISF looks typically like this:
What causes high postprandial peaks in closed loop?¶
First of all, check your basal rate and make a no-carb basal rate test. If it is correct and your BG is falling to your target after carbs are fully absorbed, try to set an ‘eating soon’ temp target in AndroidAPS some time before the meal or think about an appropriate prebolus time with your endocrinologist. If your BG is too high after the meal and still too high after carbs are fully absorbed, think about decreasing your IC with your endocrinologist. If your BG is too high while COB and too low after carbs are fully absorbed, think about increasing your IC and an appropriate prebolus time with your endocrinologist.
AndroidAPS NSClient says ‘not allowed’ and does not upload data. What can I do?¶
In NSClient check ‘Connection settings’. Maybe you actually are not in an allowed WLAN or you have activated ‘Only if charging’ and your charging cable is not attached.
Where to place the pump?¶
There are innumerable possibilities to place the pump. It does not matter if you are looping or not.
Looping can reduce the pump battery faster than normal use because the system interacts through bluetooth far more than a manual user does. It is best to change battery at 25% as communication becomes challenging then. You can set warning alarms for pump battery by using the PUMP_WARN_BATT_P variable in your Nightscout site. Tricks to increase battery life include:
reduce the length of time the LCD stays on (within pump settings menu)
reduce the length of time the backlight stays on (within pump settings menu)
select notification settings to a beep rather than vibrate (within pump settings menu)
only press the buttons on the pump to reload, use AndroidAPS to view all history, battery level and reservoir volume.
AndroidAPS app may often be closed to save energy or free RAM on some phones. When AndroidAPS is reinitialized at each startup it establishes a Bluetooth connection to the pump, and re-reads the current basal rate and bolus history. This consumes battery. To see if this is happening, go to Preferences > NSClient and enable ‘Log app start to NS’. Nightscout will receive an event at every restart of AndroidAPS, which makes it easy to track the issue. To reduce this happening, whitelist AndroidAPS app in the phone battery settings to stop the app power monitor closing it down.
For example, to whitelist on a Samsung phone running Android Pie:
- Go to Settings -> Device Care -> Battery
- Scroll until you find AndroidAPS and select it
- De-select “Put app to sleep”
- ALSO go to Settings -> Apps -> (Three circle symbol in the top-right of the screen) select “special access” -> Optimize battery usage
- Scroll to AndroidAPS and make sure it is de-selected.
clean battery terminals with alcohol wipe to ensure no manufacturing wax/grease remains.
for Dana R/RS pumps the startup procedure draws a high current across the battery to purposefully break the passivation film (prevents loss of energy whilst in storage) but it doesn’t always work to break it 100%. Either remove and reinsert battery 2-3 times until it does show 100% on screen, or use battery key to briefly short circuit battery before insertion by applying to both terminals for a split second.
see also more tips for particular types of battery
Changing reservoirs and cannulas¶
The change of cartridge cannot be done via AndroidAPS but must be carried out as before directly via the pump.
- Long press on “Open Loop”/”Closed Loop” on the Home tab of AndroidAPS and select ‘Suspend Loop for 1h’
- Now disconnect the pump and change the reservoir as per pump instructions.
- Also piming and filling tube and canula can be done directly on the pump. In this case use PRIME/FILL button in the actions tab just to record the change.
- Once reconnected to the pump continue the loop by long pressing on ‘Suspended (X m)’.
The change of a canula however does not use the “prime infusion set” function of the pump, but fills the infusion set and/or canula using a bolus which does not appear in the bolus history. This means it does not interrupt a currently running temporary basal rate. On the Actions (Act) tab, use the PRIME/FILL button to set the amount of insulin needed to fill the infusion set and start the priming. If the amount is not enough, repeat filling. You can set default amount buttons in the Preferences > Other > Fill/Prime standard insulin amounts. See the instruction booklet in your canula box for how many units should be primed depending on needle length and tubing length.
Depending on the kind of your job, maybe you use different treatment factors on workdays. As a looper you should think of a profile switch for your estimated working day (e.g. more than 100% for 8h when sitting around or less than 100% when you are active), a high or low temporary target or a time shift of your profile when standing up much earlier or later than regular. If you are using Nightscout profiles, you can also create a second profile (e.g. ‘home’ and ‘workday’) and do a daily profile switch to the profile you actually need.
You have to rework your old sports habits from pre-loop times. If you simply consume one or more sports carbs as before, the closed loop system will recognize them and correct them accordingly.
So, you would have more carbohydrates on board, but at the same time the loop would counteract and release insulin.
When looping you should try these steps:
- Make a profile switch < 100%.
- Set an activity temp target above your standard target.
- If you are using SMB make sure “Enable SMB with high temp targets” and “Enable SMB always” are disabled.
Pre- and postprocessing of these settings is important. Make the changes in time before sport and consider the effect of muscle filling.
If you do sports regularly at the same time (i.e. sports class in your gym) you can consider using automation for profile switch and TT. Location based automation might also be an idea but makes preprocessing more difficult.
The percentage of the profile switch, the value for your activity temp target and best time for the changes are individual. Start on the safe side if you are looking for the right value for you (start with lower percentage and higher TT).
You can remove the pump to be ‘free’, but you should tell it to AAPS so that the IOB calculations are right.
See description above.
Drinking alcohol is risky in closed loop mode as the algorithm cannot predict the alcohol influenced BG correctly. You have to check out your own method for treating this using the following functions in AndroidAPS:
- Deactivating closed loop mode and treating the diabetes manually or
- setting high temp targets and deactivating UAM to avoid the loop increasing IOB due to an unattended meal or
- do a profile switch to noticeably less than 100%
When drinking alcohol, you always have to have an eye on your CGM to manually avoid a hypoglycemia by eating carbs.
How can I loop during the night without mobile and WIFI radiation?¶
Many users turn the phone into airplane mode at night. If you want the loop to support you when you are sleeping, proceed as follows (this will only work with a local BG-source such as xDrip+ or patched Dexcom app, it will NOT work if you get the BG-readings via Nightscout):
- Turn on airplane mode in your mobile.
- Wait until the airplane mode is active.
- Turn on Bluetooth.
You are not receiving calls now, nor are you connected to the internet. But the loop is still running.
Some people have discovered problems with local broadcast (AAPS not receiving BG values from xDrip+) when phone is in airplane mode. Go to Settings > Inter-app settings > Identify receiver and enter
If you want to share some information about AndroidAPS and DIY looping with your clinicians, you can print out the guide to AndroidAPS for clinicians.