Release notes
Please follow the instructions in the update manual to update to a new version. The troubleshooting section also addresses the most common difficulties encountered when updating AAPS on the update manual page.
Upgrading from AAPS v3?
See What changed in AAPS v4 for the notable behavioral changes — features that have moved, been renamed, or been removed.
You will receive a notification like this when a new update is available:

If you do not update until expiration date AAPS will switch to Open Loop.
See End of life for AAPS version end dates.
Do not ignore the notification. New versions of AAPS provide important safety fixes. Therefore, every AAPS user must update to the latest version as soon as possible. This is an effort to try to improve the safety for each AAPS user and the DIY community. Thank you for your understanding.
Android version and AAPS version
If your smartphone uses an Android Version older than Android 12 you will not be able to use AAPS v3.4 and up as it requires at least Android 12.
In order to allow users with older Android to use older version of AAPS new versions were pushed which only change version verification. No other improvements are included.
Find your Android version in the table below and use the matching AAPS version. The code is downloaded from https://github.com/nightscout/AndroidAPS using the branch shown.
Your Android version |
AAPS version to use |
Branch to download |
|---|---|---|
Android 12 and up |
Latest version |
master (default) |
Android 11 |
3.3.2.1 |
|
Android 9, 10 |
3.2.0.4 |
|
Android 8 |
2.8.2.1 |
|
Android 7 |
2.6.2 |
WearOS version
AAPS requires WearOS 3.0, 3.2 or 3.5 (Android 11, API level 30) or newer. WearOS 2 watches are not supported.
Tip
WearOS 5, API level 34 (Android 14) has limitations.
Versions with a heading are the latest release for each Android version (see the table above). The other releases follow in between, with their notes or a link to them on GitHub.
Version 4.0.0
Release date: 31-10-2026
New features
New user interface: phone app rebuilt in Jetpack Compose @MilosKozak
Global search @MilosKozak
Kotlin Multiplatform migration, client for Windows, Mac, Linux desktop and iOS @MilosKozak
Scenes: save a set of actions and run them together @MilosKozak
Master ↔ Client control: send commands from a client phone to the master @MilosKozak
Client roles: Read-only, Meals, Caregiver or Admin for each client @MilosKozak
Hardened mode: with client control on, the master takes changes only from paired clients @MilosKozak
Pairing with a QR code that also sets up Nightscout on the client, or with a PIN; the pairing secret is replaced right after pairing @MilosKozak
Own Nightscout token for each client, with only the rights a client needs @MilosKozak
Insulin concentration support (U200, U500) across pumps, wizard and profiles @Philoul @MilosKozak
Insulin management: insulin catalogue, nicknames, selection in profile and wizard @Philoul
Calibration plugin @MilosKozak
Smoothing: Unscented Kalman Filter (UKF) @piecycle
New automation actions: Change smoothing @olorinmaia, and Run, Enable or Disable scene @MilosKozak
Site rotation: track and rotate infusion sites @Philoul @MilosKozak
Autotune rework @Philoul
New widgets @MilosKozak @t1dude
Accessibility: the phone app works with a screen reader - named controls, spoken status, graph descriptions and headings to skim @MilosKozak
Settings import: can keep the pump settings @MilosKozak
Persistent notification uses Android live updates, with Samsung Now bar support and the delta @premnirmal
BG graph: press and hold to see the values at a reading, on every graph of the overview @t1dude @olorinmaia
Performance improvements @MilosKozak
Automatic e-carbs in Bolus wizard @MilosKozak
New devices
CareLevo: new pump driver @Kisu-Choi @MilosKozak
Dana-i2: support @MilosKozak
Instara: new CGM source @leohunt
Pump Driver Improvements
Pump overview screens rebuilt for Insight, Medtronic, Medtrum, Omnipod, Dana, Diaconn and Equil @MilosKozak
Omnipod DASH: PDM style Ref codes and readable fault descriptions, drift compensation always on, better bolus type reporting @nl-ruud
Omnipod: hard-end date for Dash & Eros @mcnelson
DanaR, RS: pump emulator for testing @MilosKozak
Equil: pump emulator for testing @MilosKozak
Many pump and loop fixes @MilosKozak and others
Wear OS
Watch app rebuilt in Compose, new tiles and complications, automatic watch face install (Watch Face Push) on Wear OS 6+ @olorinmaia @Philoul
CustomWatchface available for WearOS 6.0 (GW7, GW8, GW9…) with a WFF dedicated watchface @Philoul @olorinmaia
CustomWatchface can now include 5 Complication slots you can customize (new feature only available for older watches) @Philoul
New WFF watchface based on AAPS complications @olorinmaia
Corrections in Bolus wizard and Quick wizard result @olorinmaia
New BG graph and Running mode activity in main menu @olorinmaia
Bolus wizard: meal type page that splits the carbs like the phone wizard, and carb time with the time to eat reminder on the watch @olorinmaia
Phone alarms on the watch: the watch shows the alarm and offers Silence and Mute 5 min @olorinmaia
Build
CI workflows for tag/branch builds, JDK version mapping @Angus-repo
Contributors
@MilosKozak @Philoul @olorinmaia @Kisu-Choi @leohunt @piecycle @Angus-repo @mcnelson @t1dude @premnirmal @nl-ruud
Full changelog: https://github.com/nightscout/AndroidAPS/compare/3.4.2.6…4.0.0
Version 3.4.2.6
Equil: improve stability @MilosKozak
Version 3.4.2.5
Equil fix race condition @MilosKozak
Version 3.4.2.4
Equil fixes @MilosKozak
NS profile sync fix @MilosKozak
Version 3.4.2.3
Dash: Drift resolution @nl-ruud
NSClientV3: Fix gap after reconnection @MilosKozak
Automation: Fix deserialization @MilosKozak
Equil: Fix battery report @MilosKozak
Cleanup workflow @vanelsberg
Equil: improve error recovery @MilosKozak
DanaRS: fix domestic pump communication @MilosKozak
Insight: Fix TBR sync @MilosKozak
Dash: Fix activation bug @nl-ruud
Version 3.4.2.2
Fixing issues with Equil and Medtronic
Improve safety of Medtrum
Version 3.4.2.1
Equil: fix Pairing and progress dialog @MilosKozak
Version 3.4.2.0
Release date: 02-04-2026
Equil: Fix resistance for different models @hhfcvmars
Tidepool: Fix session @MilosKozak
Medtrum: Fix activation path by preventing double fill @MilosKozak
COB: Fix COB calculation (covers dangerous edge case) @MilosKozak
Version 3.4.1.0
Release date: 08-03-2026
Core
Fix DST handling @MilosKozak
Improve and unify normal target identification (mgdl > 99, mmol > 5.5) @MilosKozak
SMS: protect RESTART by PIN @MilosKozak
Maintenance: warn if wrong directory selected @MilosKozak
Pump Driver Improvements
Omnipod DASH: refactor BLE driver code to omnipod/common module @jwoglom
Omnipod DASH: try to fix connection state @MilosKozak
Omnipod: validate profile before pod activation to prevent wasting pods (#4534) @brianV
Medtronic: fix same encoding type displayed in settings dialog @mifi100
Medtronic: prepare pump common classes (Tandem preparation) @andy-rozman
RileyLink: encoding fix (#4519) @mifi100
Equil: expand insulin pump compatibility by serial number prefix (#4510) @hhfcvmars
Equil: add logging @MilosKozak
Diaconn G8: fix log sync bug and add firmware 3.58+ support @miyeongkim
Diaconn: fix TBR duration unit conversion @miyeongkim
Diaconn: use commandQueue.loadEvents() for history sync @miyeongkim
Allow insulin delivery while loop is suspended but pump is available @cschuijt
Cloud / Backup
Add backup to Google Drive @Angus-repo
Notify UI on cloud storage error state change @Angus-repo
Allow both local and cloud storage at the same time @Angus-repo
Tidepool
Improve Tidepool OAuth2 migration @MilosKozak
Fix indefinite Tidepool BLOCKED state, fix rejecting empty SSIDs @michaeln-synapse
NSClient
NSCv3: improve reconnection @MilosKozak
Wear OS
Display New IOB in Wizard Result if IOB is used in calculations @olorinmaia
Fix Wear BolusProgress with Total Amount @Philoul
UI
Improve ic_none icon for Site Rotation @Philoul
Fix site rotation manage pump setting not being used @samfundev
Contributors
@MilosKozak @Philoul @olorinmaia @jwoglom @mifi100 @andy-rozman @Angus-repo @brianV @cschuijt @hhfcvmars @miyeongkim @samfundev @michaeln-synapse
Version 3.4.0.0
Release date: 31-12-2025
Before upgrading:
This version requires Google Android 12.0 or above. Check your phone version before attempting to update.
Update to latest Android Studio or better setup using browser build.
New features
Running mode @MilosKozak
Show loop status history in treatment tabs
Show and allow changing loop status from AAPSClient.
NB : needs the setting NSClient > Synchronization > Receive Running mode events
New CGMs : Glunovo, Intelligo, Sinocare
Site rotation support @Philoul
New automation action : enable or disable SMBs @MilosKozak
Syai CGM is trusted source and supports advanced filtering @MilosKozak
Wear OS Improvements
dramatically reduced battery usage @MilosKozak
UI improvements and fixes @olorinmaia
almost complete rewritten code to match current level of libs (WearOS 2 previously) @MilosKozak
2 new complications for extended data @Philoul
Migrated to modern complication provider with DataStore @MilosKozak
Memory Leak Fixes
Fixed memory leaks in code @MilosKozak
Added LeakCanary memory leak reporting to Firebase Crashlytics @MilosKozak
Pump Driver Improvements
DanaI: fixed disconnection issues @MilosKozak
RileyLink: Speedup communication by minimizing delays @mifi100
Medtrum: Added patch activation time and age display @vanelsberg, password uppercase fix @MilosKozak
Combo: Fixed Test race conditions @MilosKozak @dv1
Equil: Optimized connectivity, reduced battery usage @MilosKozak
Nightscout Sync
Improved deduplication on NS failure @MilosKozak
UI/UX Improvements
various improvements @MilosKozak @Philoul @olorinmaia
Automation
New SMB control action - enable/disable SMB via automation @MilosKozak
Testing
Added comprehensive unit tests for Equil, Eopatch, Dana, and Medtronic pumps @MilosKozak
Improved test stability and coverage across multiple modules @MilosKozak
Tidepool
Tidepool OAUTH2 (Support for new Tidepool authentication) @MilosKozak
Version 3.3.2.1
Release date: 13-08-2025
Fixed Omnipod Bluetooth connection on Android 16
CI process (Browser build)
Fix mmol-mgdl conversion
Fix wrong time selection in dialogs in some timezones
Fix reading keys in simple mode
Fix missed predictions on wear
Improved ConfigBuilder
Improved NSCv3 full sync
Version 3.3.2.0
Release date: 27-03-2025
How to upgrade
Android Studio version called “Meerkat” or above is required to build this version. If you already built a 3.3.x version, you need to upgrade Android Studio again.
Starting this version, notification and version enforcement has been simplified and softened and works the following way:
No expiration when device is offline (if no connection to the internet). It means no 60 and 90 days grace periods anymore.
After expiration LGS mode is enforced
You’ll receive warning/notifications less often:
28+ days remaining: every 7 days
27-14 days remaining: every 3 days
then once a day
Notification will be generated after noon to not bother you during nights
There are only 2 kinds of notification
New version available (has no effect on AAPS)
Application is expiring on some date in the future (still no effect on AAPS) / has expired (AAPS will turn into LGS mode)
News
SMS RESTART command @MilosKozak
Watch Profile switch parameters @olorinmaia
Dark mode AAPS V2 watchface @olorinmaia
G7 data exchange improvements @olorinmaia
Widget configuration @MilosKozak
Radiobuttons UI improvements @olorinmaia
Automation: position choosing from map @MilosKozak
Version visible on main screens @MilosKozak
Compilation with existing git system is enforced (no zip downloads)
Show version on main screen @MilosKozak
Tidepool upload improvements @ConstantinMatheis
Bug fixes
Dash unbonding fix @Andreas
Garmin fixes @robertbuessow @suside
Fix of IOB displaying in dialogs @olorinmaia
Objectives spelling and validation improvements @MilosKozak
Fixed rendering of emulated TBRs @MilosKozak
Fixed bypassing security @tdrkDev
Version 3.3.1.3
Release date: 21-01-2025
Bug fixes
Dash: bonding is optional (default off) @MilosKozak
Equil: fixed bolus 10+U, alarm improvements @EquilHack
Garmin: watch improvements @swissalpine
Watch improvements @olorinmaia
Control loop status from watch @tdrkDev
Stability improvements
New setup of Authenticator may be needed.
Version 3.3.1.2
Release date: 15-01-2025
How to upgrade
Android Studio version called “Ladybug Feature Drop” or above is required to build this version. This is not the same as plain “Ladybug”. If you already built a 3.3.x version, you need to upgrade Android Studio again.
Bug fixes
Dash: use bonding on Android 15+
Restored Dexcom button on Overview
Equil: allowed remove non working pump
Warn when DynISF Adjustment Factor is zero
NSCv3: resolve websocket communication on phones with slightly different time
SMS Commands: fix OneTimePassword. New setup of Authenticator may be needed.
Fix issue where some preferences could not be edited anymore.
Fix reset of master password with virtual pump.
Fixed import of large settings backup files.
Version 3.3.1.0
Release date: 06-01-2025
UI changes
Added colors to differentiate between AAPSClient and AAPSClient2 @MilosKozak
Improved Users actions layout and icons
Other functionalities
New automation trigger : steps count @Roman Rihter
Allow to receive everything on NSCv3 full sync (including data previously not synced such as TBR) @MilosKozak
NSClient v3 : make Announcement work (i.e. from AAPSClient to AAPS) @MilosKozak
Technical changes & bug fixes
Fix Insight crash @philoul
Fix creation of extra-numerous deviceStatus entries in Nightscout @MilosKozak
Fix carbs absorption @MilosKozak
Fixed color of RadioButtons & CheckBoxes @MilosKozak
Fixed bug in DynISF percentage migration @MilosKozak
Resolved misplaced DynISF notification @MilosKozak
Fixed bug in watchfaces @philoul
Version 3.3.0.0
Release date: 29-12-2024
Main features
Dynamic ISF feature is no more a dedicated plugin, but is now included as an option of OpenAPS SMB plugin, along with some changes in its behavior:
Profile Switch and Profile Percentage is now taken into account for Dynamic ISF in respect of dynamic sensitivity strengthness
The average ISF of the last 24h is calculated and this value is used for bolus wizard and COB calculation. Profile ISF value is not used at all (except fallback when history data is not available)
DynamicISF documentation page has been rewritten. Please read the important section Things to consider when activating Dynamic ISF.
Enable “SMB always” and “SMB after carbs” for FreeStyle Libre 2 and Libre 3 users
Note : Requires latest version of xDrip+ or Juggluco.
New Automation triggers
Unattended settings exports
How to upgrade
Before upgrading:
This version requires Google Android 11.0 or above. Check your phone version before attempting to update.
If you use the “old” Combo driver with ruffy device, migrate to the native Combo driver before update
You will lose your additional graphs on the HomeScreen during upgrade: make a manual note of your current configuration if needed, so that you can recreate them after upgrade.
The Bluetooth connectivity issues some people encounter on Android 15 are NOT solved by this release (this is an Android issue, not AAPS). A fix is available in 3.3.1.2.
The BYODA button on the homescreen is no longer available due to Android limitations. This is fixed in 3.3.1.2.
Update instructions: follow the Update to a new version guide.
Android Studio version called “Ladybug” or above is required to build this version. If you already have an older version of Android Studio installed, you may need to configure the JVM version to 21. See Troubleshooting Android Studio > Incompatible Gradle JVM.
Tip - if you do not want to lose your AAPS history ALWAYS do an UPDATE and NOT an UNINSTALL/INSTALL. As a precaution, back up your current AAPS settings and old APK to revert to an old version should anything go wrong.
After upgrading:
Set the new “AAPS directory” setting, in the Maintenance tab.
Detailed changes
CGMs and Pumps
Enable “SMB always” and “SMB after carbs” for FreeStyle Libre 2 and Libre 3 users @MilosKozak
Medtrum driver improvements @jbr77rr
Communication improvements, including new setting to workaround problems on some smartphones
Show reservoir level at start of activation
Fix bug where activation returns to start and user cannot finish the activation
Feedback for sync status and other clarifications
New supported pump : Equil 5.3 @EquilHack
New supported CGMs : Ottai @ottai-developer and Syai Tag @syai-dev
Insight driver rewritten to kotlin @Philoul
Removed old ruffy dependent Combo driver
UI changes
Simple mode activated by default on fresh install @MilosKozak
New QuickWizard options @radicalb
The QuickWizard now uses the same logic for bolus calculation and display as the calculator. You can now use the “carb time” field in QuickWizard to pre-bolus.
New graph scale menu; additional graphs menu UI improvements @Philoul
ConfigBuilder layout improvement @MilosKozak
Sections are now collapsed by default. Use arrow to expand.
Variable sensitivity visible in AAPSClient
BolusWizard UI improvements @kenzo44
Fix text display in pump tabs when using light theme @jbr77rr
Other functionalities
Unattended settings exports @vanelsberg
New Automation trigger @vanelsberg
Pod Activation (patch pump only)
New Automation triggers @jbr77rr
Cannula age, Insulin age, Battery age, Sensor age, Reservoir level, Pump battery level
Allowing negative carbs entry @MilosKozak
New Parameter “AAPS directory” to choose a storage directory different from the default one.
Allow for insulin records when pump suspended @jbr77rr
Updated Objective 2 @MilosKozak
Check that master password is set and known
Random carbs in test mode @MilosKozak
Fixed bug in TDD calculation @MilosKozak
SMS Commands : allow to not send SMS for profile change coming from NS @MilosKozak
Smartwatches
wear and watchfaces improvement @Philoul @MilosKozak @olorinmaia
Watch tiles from Automation actions @Philoul
Combined watchfaces from AAPS, AAPSClient and AAPSClient2 to monitor more patients @Philoul @MilosKozak
EXTRA: show_user_actions_on_watch_only @MilosKozak
Technical changes
new internal modules structure @MilosKozak
split persistence layer from main code @MilosKozak
build files rewritten to kts @MilosKozak
algorithms rewritten to kotlin for better performance @MilosKozak
tons of new unit tests @MilosKozak and others
more code converted to kotlin @MilosKozak
new preferences management, xml -> kotlin @MilosKozak
new CI configuration, run CI on own servers @MilosKozak
libraries updated to latest version, toml @MilosKozak
migration to kotlin 2.0, java 21 @MilosKozak
Version 3.2.0.4
Release date: 27-02-2024
This version is the last one supporting Android 10. If you cannot upgrade to Android 11, update AAPS to 3.2.0.4.
Changes
xDrip G7 support
Medtrum fixes
Automation icon fix
Passing objective 1 fix
Version 3.2.0.0 dedicated to @Philoul
Release date: 23-10-2023
Important hints
NS 15 is required
While using websockets in NS v3 plugin treatments entered through NS UI (plus button) and other applications using v1 API are not sent to AAPS. This will be fixed in future release of NS. Always use the same client (v1 or v3) in AAPS and AAPSClient until NS fully switch to v3 internally. The same is valid for AAPS and AAPSClient itself.
Websockets in v3 plugin work in a similar manner as v1 plugin. Without websockets enabled AAPS schedules regularly downloads from NS which should lead to lower power consumption because NS is not permanently connected. On the opposite side it means delays in exchanging data. Please read here the important comments from the dev team before you use it!
If you are using xdrip as cgm source you must select it again after update due to internal changes
Tidepool can be used as a replacement of NS to pass first objective
If you send to xDrip+ you must configure xDrip synchronization plugin. In order to receive BGs from AAPS in xDrip, “xDrip+ Sync Follower” must be selected as source
If you want to switch to ComboV2 driver, Ruffy must be uninstalled and pump paired again to AAPS
In order to use DynISF plugin you have to start Objective 11 (all previous must be in finished state to allow start of 11)
Changes
EOPatch2 / GlucomenDay pump driver @jungsomyeonggithub @MilosKozak
ComboV2 pump driver (no need of Ruffy) @dv1
Medtrum Nano driver @jbr7rr
Korean DanaI support @MilosKozak
Glunovo CGM support @christinadamianou
G7 support @MilosKozak @rICTx-T1D @khskekec
NSClient v3 plugin @MilosKozak
Tidepool support @MilosKozak
Smoothing plugin @MilosKozak, @justmara, Exponential smoothing @nichi (Tsunami), Average smoothing @jbr7rr
DynamicISF plugin @Chris Wilson, @tim2000s
Garmin watchface & HeartRate support @buessow
New logo @thiagomsoares
New watchface @Philoul
fixed tons of issues from 3.1 version
allow add notes on more places @Sergey Zorchenko
UI fixes @MilosKozak @osodebailar @Andries-Smit @yodax @Philoul @dv1 @paravoid
new SMS commands LOOP LGS/CLOSED @pzadroga
wear translations @Andries-Smit
xdrip communication moved to separate module @MilosKozak
internal changes: updated libs versions, rx3 migration, new modules structure @MilosKozak
Diaconn driver fixes @miyeongkim
more database maintenance options @MilosKozak
AAPSClient provides info if main phone is plugged in electricity @MilosKozak
Change in BolusWizard. If CGM is not available percentage is ignored (ie 100% is used)
migration to kts build system @MilosKozak
improved CI integration @MilosKozak @buessow
tests cleanup @ryanhaining @MilosKozak
new 110k+ lines of code, changed 240k lines, 6884 changed files
Important comments on using v3 versus v1 API for Nightscout with AAPS
v1 is the old protocol used for exchanging data between NS web site and NS server. It has many limitations
v1 sends only 2 days of data
v1 sends all 2 days of data on every reconnection
using websockets is mandatory = permanent connection, more battery consumption
during frequent disconnects to NS connection is paused for 15 minutes to prevent high data usage
v3 is new protocol. More safe and efficient
while using tokens you can better define access rights
protocol is more efficient on both sides (AAPS & NS)
It can read up to 3 months of data from NS
you can choose to use or to not use websockets on every device (using means faster updates, not using means lower power consumption, but slower updates ie. minutes)
NSClient is not paused on disconnections
LIMITATIONS
NS 15 must be used with AAPS 3.2
v3 doesn’t see updates done by v1 protocol (probably it will be resolved in some future version of NS)
in the opposite direction, because of the old ineffective method of tracking changes, v1 sees changes done by v3
remember NS still uses v1 internally so far thus is not possible to enter data through NS web UI if you are using v3. You must use AAPSClient or SMS if you want to enter data remotely
RECOMMENDED SETTING
because of all above you should choose only one method and use it on all devices (remember all other uploaders at time of writing this are using v1). If you decide to go to v3, select v3 in AAPS and all AAPSClients
v3 is preferred because of efficiency
using websockets or not using with v3 depends on your preference
it is HIGHLY recommended to let AAPS gather all data and then upload it to NS as a single uploader. All other devices/applications should only read from NS. By doing it you’ll prevent conflicts and sync errors. This is valid for getting BG data to NS using Dexcom Share connector etc. too
Version 3.1.0
Release date: 19-07-2022
Version 3.0.0
Release date: 31-01-2022
Version 2.8.2.1
Release date: 05-10-2021
This version is the last one supporting Android 8. Release notes
Version 2.8.2
Release date: 23-01-2021
Version 2.8.1.1
Release date: 12-01-2021
Version 2.8.0
Release date: 01-01-2021
Version 2.7.0
Release date: 24-09-2020
Version 2.6.1.4
Release date: 04-05-2020
Version 2.6.1.3
Release date: 03-05-2020
Version 2.6.1.2
Release date: 19-04-2020
Version 2.6.1.1
Release date: 06-04-2020
Version 2.6.1
Release date: 21-03-2020
Version 2.6.0
Release date: 29-02-2020
Version 2.5.1
Release date: 31-10-2019
Version 2.5.0
Release date: 26-10-2019
Version 2.3
Release date: 25-04-2019
Version 2.2.2
Release date: 07-04-2019
Version 2.2
Release date: 29-03-2019
Version 2.1
Release date: 03-03-2019
Version 2.0
Release date: 03-11-2018
Version 1.0
First version of AAPS
The first test version started in 2015 and the first release was in 2016.
The exact chronology of these releases is not available at the moment but as this question has been asked several times we document it here.
