LoopFollow
LoopFollow is an open-source DIY (do-it-yourself) iPhone app that combines your T1D’s display information and alerts into a single easy-to-use interface. It requires iOS 15.6 (as of v 2.2.5) and works with both Loop and Trio. Update to the latest version to enjoy the new features and improvements. As usual, this is a team effort consisting of coding, testing, inspiration, and copious amounts of coffee!
On this page:
- Using LoopFollow
- Authentication Token
- Information for Users
- Build LoopFollow (any method)
- Run LoopFollow on Mac from TestFlight
- Run LoopFollow on Mac with Mac-Xcode Build
- LoopFollow Updates
This code was originally developed by Jon Fawcett who turned over development and management to the Loop and Learn team. We are happy to respond to bug reports or feature requests.
LoopFollow can get its data from Dexcom Share or Nightscout.
- If you use Dexcom Share, you won’t see the details on the right side of the image below, but you’ll still get your glucose records and alerts.
- If you use Nightscout and the Loop or Trio app, then you can configure what you want to see on the right side of the display.
You can choose to provide a custom name for the LoopFollow app and you can enable that name to show on the main LoopFollow screen (as of 06 December 2023, v2.1.2 or later).
Using LoopFollow
Each of the features below is selectable – you decide whether to use them. Additionally, many features are adjustable because YDMV (your diabetes may vary).
- Scrollable/scalable graph display with BG, IOB, COB, Basal, Bolus, and the General Nightscout Careportal info
- Supports Glucose display when Dexcom is available but Nightscout is not
- Supports Loop and Trio when Nightscout URL is provided and Download Loop/Trio data is enabled (show Nightscout Settings to see the enable slider)
- Loop: Loop status, Loop Prediction, Profile Name
- Trio: Trio status, Trio Prediction lines, Autosens
- Tap on Settings/Alarms/Select Alert/Alarms to configure.
- Snooze All Until and a Mute All Until can be used to override your iPhone’s DND (Do Not Disturb) and system volume for all alerts
- Select Alert covers the standard high/low/rise/fall/urgent glucose but also include alerts for missed glucose readings, if below configured glucose, IOB, COB, Not Looping, Overrides, Pump, Missed Bolus, SAGE, CAGE and Battery
- Each alert has configurable settings including Sound selection, PreSnooze (set to be quiet At Night, During Day or Never) and Snooze Until
- Calendar entries (displayed on watch and/or carplay at 5 minute intervals) pre-formatted with two lines that the user can modify:
- BG, arrow, delta, MINAGO (minutes ago for reading)
- COB, IOB, Basal (U/hr)
- Background silent audio is played to keep iOS from killing the app; this trick is why it can’t go into the App Store for a simple download and why LoopFollow puts an extra load on the phone battery
- Badge displays the current BG value on the app icon
- Information Display Settings allows user to configure the items selected and their order for the right panel when Nightscout URL is provided
- IOB, COB, Basal, Override, Battery, Pump, SAGE, CAGE, (Recommended) Rec. Bolus, (Glucose Eventually) Pred., Carbs today, Autosens (Trio)
- Pull down on the glucose value to force a refresh from Nightscout (iPhone only – does not work on Mac)
- When adding a Nightscout site, NS Status says “Checking”, “Site Not Found”, “Token Required”, “Invalid Token”, “OK (Read)” or “OK(Read & Write)
Authentication Token
Those who secure their Nightscout site will need to use an authentication/access token for LoopFollow to be able to display the information in the LoopFollow Information Table. Your token requires “readable” as a role to be able to display data from Nightscout. (That will make sense when you read the docs at the link.)
If you plan to control remote overrides using LoopFollow, you must have “readable” and “careportal” as roles.
- This is currently available for Trio, beginning with LoopFollow version 2.2.5
- This may be added to LoopFollow for Loop in the future
Information for Users
main vs. dev
LoopFollow users should build LoopFollow-main. New features are tested in the dev branch. Once they are thoroughly tested, they are merged into main.
Pro Tips
LoopFollow can be used by Loopers too. Many Loopers love the slick look of LoopFollow’s dashboard as a quick check on their current status and daily results. Since the Looper won’t need the LoopFollow alarms, turn off Background Refresh, as it consumes a significant amount of battery power.
Volunteers Welcome
If you want to contribute, please make your pull request against the dev branch. If you notice a bug please write an issue report.
Open Source DIY
This is a DIY open-source project that may or may not function as you expect. You take full responsibility for building and running this app and do so at your own risk.
Build LoopFollow
LoopFollow can be built using either the Browser Build or the Mac-Xcode Build method. A paid Apple Developer Account is required to use the Browser Build method.
- Browser Build: See LoopDocs: Browser Build for Other Apps
- Mac-Xcode: Build LoopFollow Script for Mac-Xcode
Build LoopFollow Script for Mac-Xcode
Carefully read the information in the terminal before making any choices.
Step 1: Open Terminal.
Tip: press Command-Space to open spotlight search. Start typing “term” (without the quotes) and you will see the Terminal application icon in the box. Hit enter to open.
Step 2: Copy the entire line starting with /bin/bash and then Paste the line into the Terminal and enter
Click on the line below to copy it. You’ll see Copied to Clipboard briefly.
Step 3: Choose from one of the options presented by the script
If you are not following multiple Loopers, always choose 1 for the latest release.
- You are prompted to enter a custom name if you want or you can continue using the LoopFollow default name
If you are following up to 3 Loopers, choose option 1, 2 or 3.
- Each Looper can have a unique name displayed for the app
- Each time you download using the script, the name you selected the first time is remembered, but editing instructions are provided
To test a specific feature that is only found in the dev branch, choose option 4. This is not typical, and only builds to the app associated with Looper #1
Run LoopFollow on Mac using TestFlight
If you used the Browser Build method, follow these instructions to run LoopFollow on your Mac computer. (You can also use a iPad.)
- You need to install the TestFlight app on your computer
- The TestFlight app on the Mac shows the same set of builds and uses the same installation procedure as shown in LoopDocs for installing apps on a phone from TestFlight
- Install on computer from TestFlight
- You need to enter the data source and configuration values into the app on your computer
From Mac system settings/notifications, scroll down to LoopFollow and enable notifications with the options you want.
Run LoopFollow on your Mac with Mac-Xcode Build
- Build LoopFollow to your Mac with Xcode (choose My Mac (Mac Catalyst) as the device)
- Click stop to close the running app that is started by Xcode
- On the left side of Xcode, click on the Folder icon
- Click to open the LoopFollow folder list
- Click to open the LoopFollow/Products folder
- Right-click (or Control-click) on “LoopFollow.app” and select Show in Finder
- First time on the Mac:
- Drag the LoopFollow.app icon to your Applications folder in Finder
- From Mac system settings/notifications, scroll down to LoopFollow and enable notifications with the options you want
- When updating on your Mac
- Make sure you close the LoopFollow app currently running on your computer
- Drag the LoopFollow.app icon to your Applications folder in Finder
- Most people choose to replace the application, but you can keep both if you prefer
- All configurations and settings are maintained
LoopFollow Updates
The release history is located in GitHub. Click on the link to see if you want to update the version you have on your phone.
In addition to the GitHub releases page, recent LoopFollow updates are highlighted below.
Technical Updates related to:
- Conversion between mg/dL and mmol/L
- Using the Looper’s (rather than LoopFollow user’s) time zone when determining the current profile data.
-
- 🔔 Alarms have moved from the tab menu into settings.
- 📲 Information Display Settings have been completely rewritten in SwiftUI, resulting in a new layout of the screen. It maintains the same functionality as before, allowing you to enable/disable info display items and rearrange them by pressing and holding.
New Features: - 🔄 Remote Setting and Cancellation of Temp Target for Trio with Presets: This new remote functionality is located in the second tab menu position, where Alarms used to be. Note that the remote command requires the roles “careportal, readable” set on the token used. In the future, this space can be also used for setting overrides for Loop users. Temporary targets will appear as an override in the graph, displayed with a green banner, and will trigger the override start/stop alarms if enabled.
- 🔐 NS Status OK: Now shows if Read or Read and Write is allowed. Write is enabled if the token has careportal or admin roles.
Info Display Items Improvements: - 💡 Basal: Displays both scheduled and current basal rates. If the current basal is the scheduled one, only one value is shown. For example, “0.9 -> 0″ for a zero temp basal. This applies to both Trio and Loop.
- 🕒 IAGE: A new item showing insulin age based on the Insulin Cartridge Change event.
- 📊 ISF: For Trio, displays as scheduled -> current ISF. If the current ISF is equal to scheduled, only one value is shown. For Loop, the scheduled ISF is displayed.
- 📅 Updated: For Trio, displays when the information was uploaded to Nightscout.
- 🎯 Target: For Trio, displays as scheduled -> current target. If the current target is equal to scheduled, only one value is shown. For Loop, the current target range is displayed. If the low and high values in the range are the same, it shows as a single value.
- 💉 TDD: For Trio, showing TDD, which only displays if Dynamic ISF is enabled in Trio.
- 🥕 CR: Displays the current carb ratio for both Loop and Trio.
- Bug Fixes and Technical Updates
-
- Show eventual BG value and loop status for Trio.
- The LoopFollow Information Table “Pred.” is renamed to “Min/Max,” showing the minimum and maximum values of the predictions.
- Correct the DeviceStatus Download Count and Dynamic BGData Download Limit:
- Bug fix reduces unnecessary data downloaded from Nightscout from around 68kb to 1kb.
- If your Nightscout site has glucose data uploaded from Loop/Trio in addition to glucose from Dexcom, all data will be downloaded and displayed, even when more than 1 day is selected.
- Required updates:
- Enable Browser Build to continue working.
- Update security.
New with v2.2.3
- Prediction Curves for Trio: The app now displays all 4 prediction curves.
- Background Update Alerts: You will now receive an alert if the app has stopped updating in the background, ensuring you stay informed at all times.
- Bolus Display Differentiation: Automated and SMB boluses are now displayed as blue triangles, while manual boluses remain as blue dots, making it easier to differentiate between them
- Graph Height Reset: The height of the graph now resets with each data refresh. Previously, a high prediction or BG value could cause the graph scale to remain stuck until the app was restarted.
- Improved Dexcom Share Code: The Dexcom share code has been improved and is now less prone to crashes.
New with v2.2.2
- Branch, Build Date, Latest Version, and Blacklisted Version Display: The app now displays essential version information directly within the interface. It will check for newer versions and show if the current version is “Blacklisted,” meaning it has bugs that make updating to a new version important.
- Version Notifications: Receive notifications for new versions, blacklisted versions, and build expirations to ensure you are always up-to-date.
- Removed Download Loop Data Toggle: Streamlined the user interface by removing the unnecessary toggle. The same effect can be achieved by a combination of other settings. This setting was a common source of error when it was forgotten to be enabled. The app now runs as if this setting was on.
- Nightscout Entries with Glucose Key: Improved data handling allowing the glucose key for Nightscout entries.We hope these updates enhance your experience with LoopFollow.
New with v2.2.1
- Manual blood glucose values entered in Loop or AppleHealth are available in LoopFollow.
New with v2.1.9
- Enhanced Speaking Features allow you to selectively configure which glucose readings are spoken.
New with v2.1.4
- Profile (Loop Only, requires Customization: Profile Save & Load)
New with v2.1.2
- Multiple Loopers (up to 3) are easily supported with either Browser Build or Mac-Xcode build
New with v2.1.2
- The app name (displayed on phone) can be customized when building
- If enabled, that custom name will be displayed on the main LoopFollow display