Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
3ea65ee
Document custom alarm sounds (#42)
bjorkert Jul 19, 2026
528eeb8
Update minimum iOS requirement to iOS 18 (#44)
bjorkert Jul 19, 2026
62da32c
Document APNS in Import/Export Settings (#45)
bjorkert Jul 21, 2026
d6991c6
Document Nightscout database size info row and alarm (#46)
bjorkert Jul 21, 2026
61b289d
Document search in the alarms list, Add Alarm sheet, and Menu (#47)
bjorkert Jul 21, 2026
faf1547
Document the dismissable status banner (#48)
bjorkert Jul 21, 2026
2eeaf6a
Document alarm skip options (#49)
bjorkert Jul 21, 2026
18b108b
Document Information Display color thresholds (#50)
bjorkert Jul 21, 2026
9b6a9b3
Document the first-run onboarding guide (#51)
bjorkert Jul 22, 2026
8151eb4
Correct DB Size units and the recommended-alarms list (#53)
bjorkert Jul 22, 2026
57b2433
Document predictive low alert, small-graph scrubbing, and Rec. Bolus …
bjorkert Jul 22, 2026
c3e3f5e
Document the Snoozer screen (#55)
bjorkert Jul 22, 2026
42d2c50
Add Bluetooth heartbeat and Contact screenshots, list Omnipod DASH he…
bjorkert Jul 22, 2026
4bb69e0
Fill in Loop remote meal, bolus, override, and troubleshooting sectio…
bjorkert Jul 23, 2026
e4a8ef1
Fill in Trio remote meal, bolus, temp target, and override sections (…
bjorkert Jul 23, 2026
9844a67
Add v7.0.0 highlights, per-version anchors, and 6.2/7.0 history rows …
bjorkert Jul 23, 2026
5ab5411
Document the active override and temp target remaining time displays …
bjorkert Jul 24, 2026
edc3c14
update the menu graphic with search field
marionbarker Jul 25, 2026
7612afa
include MiB in glossary
marionbarker Jul 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/faqs/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@ When Google Translate is selected:

**<span translate="no">Match-Secrets</span>**&nbsp; (Match-Secrets): a private repository you must create in your github account, stores keys required to build with github Build Actions

**<span translate="no">MiB</span>**&nbsp; (MiB): mebibytes (MiB) is a unit of digital computer storage equal to 1,048,576 bytes (or 1,024 kibibytes)

**<span translate="no">MTB</span>**&nbsp; (MTB): Manual Temporary Basal: user initiated temporary basal, Omnipod Common feature

**<span translate="no">MDT</span>**&nbsp; (MDT): common abbreviation for Medtronic pumps
Expand Down
29 changes: 29 additions & 0 deletions docs/faqs/lf-history.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,29 @@

## New Feature Highlights

### Version 7.0.0

!!! tip ""
New with *LoopFollow* v7.0.0:

* Requires iOS 18 or newer
* A [first-run onboarding guide](../setup/lf-setup.md#the-onboarding-guide){: target="_blank" } walks new users through setup; system permissions are requested only when first needed
* A [status banner](../setup/lf-features.md#status-banner){: target="_blank" } explains Nightscout, Dexcom Share, and heartbeat problems instead of silently showing no data
* [Custom alarm sounds](../setup/lf-features.md#custom-sounds){: target="_blank" } — use your own audio files as alarm tones
* [Skip options](../setup/lf-features.md#skip-options){: target="_blank" } keep Low/High BG alarms silent while glucose is already correcting, and the phone battery alarm silent while charging
* The [predictive Low BG alert](../setup/lf-features.md#predictive-low-alert){: target="_blank" } now works for *Trio* (watching all four forecast lines) and is fixed for *Loop*
* New [*Nightscout* Database Size](../setup/lf-setup.md#information-display){: target="_blank" } information row and alarm
* [Color thresholds](../setup/lf-setup.md#color-thresholds){: target="_blank" } for Information Display rows
* Search added to the alarms list, the Add Alarm sheet, and the [Menu](../setup/lf-setup.md#menu-screen){: target="_blank" }
* [APNS credentials can be exported/imported](../setup/lf-setup.md#importexport){: target="_blank" } via QR code
* The [Live Activity](../setup/lf-setup.md#live-activity){: target="_blank" } and the [remote control](../remote/remote-control-trio.md#overrides){: target="_blank" } screens show the active override or temp target with its remaining time
* Graph updates:
* All graphs rebuilt on native Swift Charts
* Dragging on the small graph moves the main chart in real time
* Rec. Bolus is shown using the pump's bolus increment

### Version 6.2

!!! tip ""
New with *LoopFollow* v6.2:

Expand All @@ -21,6 +44,8 @@
* Trio forecast lines match Trio colors
* Trio Override / Temp Target display colors match Trio colors

### Versions 6.0 and 6.1

!!! tip ""
New with *LoopFollow* v6.0 and v6.1:

Expand All @@ -31,6 +56,8 @@
* Settings rows updated for clarity
* For Trio users: choice of cone of uncertainty or forecast lines

### Version 5.0

!!! tip ""
New with *LoopFollow* v5.0:

Expand All @@ -46,6 +73,8 @@ The feature history is summarized below in reverse chronological order.

| *LoopFollow* Version | Feature Added |
|:--|:--|
| 7.0 | Requires iOS 18 or newer; first-run onboarding guide; graphs rebuilt on native Swift Charts |
| 6.2 | WebSocket for near real-time *Nightscout* updates; Quick Pick remote buttons; Run Diagnostics for remote setup |
| 6.1 | Live Activity requires APN credentials<br>see [APN Settings](../setup/lf-setup.md#apn){: target="_blank" } |
| 6.0 | Live Activity added - Browser Builders must use LoopFollow App Group to build<br>see [Browser Build: Add LoopFollow App Group](../build/lf-browser-build.md#create-app-group){: target="_blank" } |
| 4.6 | Real-time APNS notifications returned from the *Loop* phone (requires *Loop* v3.11.1 or newer) |
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ See [New Feature Highlights](faqs/lf-history.md#new-feature-highlights){: target

## Hardware Requirements

The *LoopFollow* app will run on any iPhone or iPad that supports iOS 16.6 or newer operating system and on any Mac computer with an Apple Silicon chip, i.e., M1, M2, M3, M4, etc.
The *LoopFollow* app will run on any iPhone or iPad that supports iOS 18 or newer operating system and on any Mac computer with an Apple Silicon chip, i.e., M1, M2, M3, M4, etc.

- - -

Expand Down
Binary file removed docs/remote/img/lf-lrc-bolus-old.png
Binary file not shown.
Binary file modified docs/remote/img/lf-lrc-bolus.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/remote/img/lf-lrc-diagnostics.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/remote/img/lf-lrc-meal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/remote/img/lf-lrc-override-modal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/remote/img/lf-lrc-override.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/remote/img/lf-trc-active.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/remote/img/lf-trc-bolus.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/remote/img/lf-trc-meal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/remote/img/lf-trc-override.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/remote/img/lf-trc-temp-target-active.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/remote/img/lf-trc-temp-target.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/remote/img/lf-trc.jpg
Binary file not shown.
63 changes: 56 additions & 7 deletions docs/remote/remote-control-loop.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,19 +60,30 @@ Example messages are highlighted by red rectangles in the composite below for re

### Remote Meal

***More info coming soon!***
The Meal screen sends remote carbs to *Loop*:

* **Carbs Amount** — up to the **Max Carbs** guardrail set in Remote Settings.
* **Time** — defaults to now; the − / + buttons move it in 5-minute steps, or tap the time to pick it directly. Entries can be backdated up to 12 hours or set up to 1 hour into the future.
* **Food Type** — the emoji shortcuts also set the absorption time: 🍭 30 minutes, 🌮 3 hours, 🍕 5 hours. The plate opens a custom picker; absorption time can be set between 0.5 and 8 hours.
* **Security** — the current one-time password (OTP) is displayed with its remaining lifetime. Codes rotate every 30 seconds, and each code can authorize only **one** command — after sending, the Send button stays disabled until the next code is issued.

Tapping **Send Carbs** shows a confirmation of the entry before anything is sent.

![ remote carb entries](img/lf-lrc-meal.png){width="300"}
{align=center}

### Remote Bolus

***More info coming soon!***
The Insulin screen sends a remote bolus to *Loop*:

* **Recommended Bolus** — when the last recommendation *Loop* uploaded is less than 12 minutes old, it is shown at the top; tap the arrow to fill it into the amount field. A warning reminds you that new treatments may have occurred since it was calculated.
* **Insulin Amount** — from 0.025 U up to the **Max Bolus** guardrail set in Remote Settings.
* **Security** — the same one-time password rules as Remote Meal apply: the code rotates every 30 seconds and each code can be used only once.

| Recent Rec Bolus | Last `Loop` > 12 minutes |
|:-:|:-:|
| ![ remote bolus current](img/lf-lrc-bolus.png){width="300"} | ![ remote bolus older than 12 minutes](img/lf-lrc-bolus-old.png){width="300"} |
After the confirmation, you must authenticate with Face ID or your passcode before the bolus command is sent.

![ remote bolus screen](img/lf-lrc-bolus.png){width="300"}
{align=center}

!!! tip "Make sure *Loop* information is up to date"
The insulin amount is filled out with the last recommended bolus that *LoopFollow* downloaded from the *Nightscout* site, which in turn was uploaded from the *Loop* phone.
Expand Down Expand Up @@ -126,11 +137,21 @@ or **Quick-Pick Meals** in the app for a short in-screen explanation.

### Overrides

***More info coming soon!***
The override presets listed on this screen are defined in *Loop* — *LoopFollow* reads them (name, symbol, target range, overall insulin needs, and duration) from the profile that *Loop* uploads to *Nightscout*. New presets cannot be created from *LoopFollow*.

![ remote overrides](img/lf-lrc-override.png){width="300"}
{align=center}

Tap a preset to open the activation sheet:

* Presets with a set duration are activated for that duration.
* Presets defined as indefinite in *Loop* offer a choice: leave **Enable indefinitely** on, or turn it off and pick a duration with the slider (15 minutes up to 24 hours, in 15-minute steps).

![ override activation sheet](img/lf-lrc-override-modal.png){width="300"}
{align=center}

While an override is active, it is listed in an **Active Override** section with its remaining time and a button to cancel it. The remaining time is a live countdown when 2 hours or less remain; otherwise it is shown as a duration, such as 5h 30m. Overrides enabled indefinitely show no remaining time.

- - -

## FAQs for Remote Commands
Expand Down Expand Up @@ -340,5 +361,33 @@ The graphic below shows a properly configured *LoopFollow* when the *Loop* app w

## Troubleshooting

This section is a placeholder for troubleshooting issues.
* [Loop Remote Control is not available or stopped working](#loop-remote-control-is-not-available-or-stopped-working)
* [Run Diagnostics](#run-diagnostics)
* [Common send errors](#common-send-errors)

### Loop Remote Control is not available or stopped working

*LoopFollow* addresses commands to the *Loop* phone using the **device token** and **bundle ID** found in the profile that *Loop* uploads to your *Nightscout* site. Both are shown in the **Debug / Info** section at the bottom of Remote Settings. If they are empty or outdated — for example after the *Loop* app was rebuilt or moved to a new phone — commands cannot reach the *Loop* phone until *Loop* uploads a fresh profile.

### Run Diagnostics

The **Run diagnostics** button in the Debug / Info section of Remote Settings scans the recent profile uploads on your *Nightscout* site and warns about the most common causes of failing remote commands:

* **Profile uploaded by a different app** — the current *Nightscout* profile was uploaded by another app than the one you are configured for. When *Loop* and *Trio* share one *Nightscout* site, they overwrite each other's profile.
* **Multiple devices uploading profiles** — device tokens are alternating between recent profile uploads, which usually means more than one installation of the app is uploading to the same *Nightscout*. Remove the app from spare or unused phones.
* **Future-dated profile record found** — *LoopFollow* ignores profile records dated in the future; they usually come from a phone with the wrong system clock. Consider deleting the record.

![ remote diagnostics](img/lf-lrc-diagnostics.png){width="300"}
{align=center}

### Common send errors

If sending a command fails immediately, *LoopFollow* shows the reason:

| Message | Usual cause |
|:--|:--|
| Authentication error / JWT error | The APNS Key ID, APNS Key, or Team ID is wrong |
| Bad request | The **Production** environment toggle does not match how *Loop* was built — Production on for browser builds, off for Xcode builds |
| The device token is no longer active | *Loop* was rebuilt or moved; wait for *Loop* to upload a fresh profile with the new token |
| Too many requests | APNS is rate-limiting; wait before retrying |

48 changes: 43 additions & 5 deletions docs/remote/remote-control-trio.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,11 @@ Remember to give the system time to update.

The sequence is *LoopFollow* to *Apple Push Notifications* to *Trio*, which uploads to *Nightscout* and then is displayed in the *LoopFollow* main screen.

![loopfollow trio remote control choices](img/lf-trc.jpg){width="300"}
![loopfollow trio remote control choices](img/lf-trc-active.png){width="300"}
{align=center}

While an override or temp target is active, its button is outlined with a green glow — in the screenshot above, both are active.

### Remote Sequence Steps

!!! info "Wait for the Result"
Expand All @@ -70,7 +72,17 @@ The sequence is *LoopFollow* to *Apple Push Notifications* to *Trio*, which uplo

### Remote Meal

***More info coming soon!***
The Meal screen sends a remote meal entry to *Trio*:

* **Carbs** — up to the **Max Carbs** guardrail set in Remote Settings.
* **Fat** and **Protein** — shown when **Meal with Fat/Protein** is enabled in [Meal Settings](#meal-settings), each with its own guardrail.
* **Bolus Amount** — shown when **Meal with Bolus** is enabled, capped by the **Max Bolus** guardrail.
* **Schedule for later** — enter the carbs at a chosen time instead of now.

![remote meal entry](img/lf-trc-meal.png){width="300"}
{align=center}

Tapping **Send Meal** shows a confirmation that summarizes the whole entry. If a bolus is included, you must also authenticate with Face ID or your passcode before the command is sent.

When entering meals and choosing to schedule the meal, any bolus included in the meal is enacted immediately. Only the carb entry is entered according to the schedule.

Expand All @@ -79,7 +91,15 @@ When entering meals and choosing to schedule the meal, any bolus included in the

### Remote Bolus

***More info coming soon!***
The Bolus screen sends a remote bolus to *Trio*:

* **Recommended Bolus** — when *Trio*'s latest recommendation is less than 12 minutes old, it is shown at the top; tap the arrow to fill it into the amount field. A warning reminds you that new treatments may have occurred since it was calculated.
* **Bolus Amount** — capped by the **Max Bolus** guardrail. The amount is rounded down to the pump's bolus increment, which is detected automatically from *Nightscout*; a manual **Bolus Increment** setting appears in Remote Settings only when it cannot be detected.

After the confirmation, you must authenticate with Face ID or your passcode before the bolus command is sent.

![remote bolus screen](img/lf-trc-bolus.png){width="300"}
{align=center}

### Quick-Pick Boluses and Meals

Expand Down Expand Up @@ -130,11 +150,29 @@ or **Quick-Pick Meals** in the app for a short in-screen explanation.

### Temp Target

***More info coming soon!***
The Temp Target screen enacts or cancels a temporary glucose target on *Trio*:

* **Target** — between 80 and 200 mg/dL, shown in your glucose unit.
* **Duration** — at least 5 minutes.
* **Enact** — shows a confirmation with the target and duration before sending.
* **Save as Preset** — stores the current values under a name of your choice. Presets are listed below the entry card; tap one to enact it, swipe left to delete it.

![remote temp target](img/lf-trc-temp-target.png){width="300"}
{align=center}

When a temp target is already running, the screen shows it with its remaining time and a **Cancel Temp Target** button. The remaining time is a live countdown when 2 hours or less remain; otherwise it is shown as a duration, such as 5h 30m. A temp target set for a week or longer is treated as indefinite and shows no remaining time.

![remote temp target with an active temp target](img/lf-trc-temp-target-active.png){width="300"}
{align=center}

### Overrides

***More info coming soon!***
The override presets listed on this screen are defined in *Trio* — *LoopFollow* reads them (name, duration, percentage, and target) from the profile that *Trio* uploads to *Nightscout*. New presets cannot be created from *LoopFollow*.

Tap a preset to activate it; a confirmation is shown before the command is sent. While an override is active, it is listed with its remaining time and a button to cancel it. The remaining time is a live countdown when 2 hours or less remain; otherwise it is shown as a duration, such as 5h 30m. An override set for a week or longer is treated as indefinite and shows no remaining time.

![remote overrides](img/lf-trc-override.png){width="300"}
{align=center}

- - -

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/setup/img/lf-background-refresh-type.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/setup/img/lf-contact-settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
188 changes: 118 additions & 70 deletions docs/setup/img/lf-menu.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/setup/img/lf-snoozer-alarm.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/setup/img/lf-snoozer-snoozed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/setup/img/lf-snoozer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/setup/img/onboarding-data-source.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/setup/img/onboarding-nightscout.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/setup/img/onboarding-overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/setup/img/onboarding-welcome.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading