Skip to content

Support use of OmnipodKit#2426

Merged
marionbarker merged 3 commits into
devfrom
support_omnipodkit
May 28, 2026
Merged

Support use of OmnipodKit#2426
marionbarker merged 3 commits into
devfrom
support_omnipodkit

Conversation

@marionbarker

@marionbarker marionbarker commented May 3, 2026

Copy link
Copy Markdown
Contributor

Purpose

Allow the new pump manager, OmnipodKit, to work with an already paired pod using Loop.

Overview

OmnipodKit supports all pod types.

Eventually OmniBLE and OmniKit will be discarded.

Modification

This modification enables OmnpodKit pump manager to take over control of a Classic or DASH pod already paired with Loop for the case where OmniBLE and OmniKit have been removed as submodules in LoopWorkspace.

If the submodules for OmniBLE and/or OmniKit are present, then they continue controlling the pod even if OmnipodKit is available as a pump manager.

Warning

If you build a LoopWorkspace which has OmnipodKit but not OmniBLE and OmniKit, then it is a one-way trip for that pod.

You cannot go back to a build with does not have OmnipodKit installed without changing pods.

* when OmniBLE or OmniKit was used to start pod,
this code allows OmnipodKit to control pod,
* this is a one-way trip from OmniXXX to OmnipodKit for that pod
@marionbarker

Copy link
Copy Markdown
Contributor Author

Updated Commit

The last commit, ca7a4b2, makes it so the OmnipodKit pump manager only takes over control of the pod previously paired with OmniBLE or OmniKit for the case where the pump manager used for pairing is not included in the build but the OmnipodKit pump manager is included.

For the case where all three pump managers are in the build, a pod started with a given pump manager will stay with that pump manager.

@marionbarker

Copy link
Copy Markdown
Contributor Author

Test Cases

Repeat for each pod type:

  • Start DASH/Eros pod with OmniBLE/OmniKit using build with only OmniBLE/OmniKit pump managers
  • Build new version that includes OmnipodKit in addition to OmniBLE/OmniKit, confirm no change in pump manager controlling the pod
  • Build new version with only OmnipodKit without OmniBLE/OmniKit, confirm that OmnipodKit takes over the pod

@marionbarker

Copy link
Copy Markdown
Contributor Author

Test

✅ Successful Test.

Note - before creating any branch that has only OmnipodKit as the sole Pod pump manger, all other branches need to have OmnipodKit added.
This is to avoid a scenario where a user could lose a pod by switching branches.

Configuration

All tests are done with Loop 3.14.1 on an SE 2nd gen test phone running iOS 18.7.8.

For each clone listed below, after setting up the desired branch, clean the build folder, close and reopen the workspace before the first build to ensure only the desired plugins are included.

Set up three clones on my local disk (this makes switching between builds easier). Each clone has a nickname that will be used throughout this test:

  • Loop-dev is configured for LoopWorkspace dev branch
  • Loop-all-managers is configured for LoopWorkspace feat/omnipodkit branch and includes all three OmniXXX pump managers plus DanaKit, EversenseKit and MedtrumKit
  • Loop-omnipodkit-only is created from LoopWorkspace dev branch with this procedure
    • the OmnipodKit submodule is added using the procedure in OmnipodKit main branch, patches folder with OmnipodKit main branch, commit b4e756c
    • the OmniBLE and OmniKIt submodules are removed using git submodule deinit and then deleted from Xcode and the LoopWorkspace scheme
    • the Loop submodule uses the branch in this PR, commit 625af74
    • locally the name of the branch is dev-add-opk-rm-ble-kit

To determine the name of the pump manager, Tap the pod icon to open the Omnipod screen, tap on Pod Diagnostics, Tap on Pump Manager Details, record the first line

Test DASH

Test No Transition when OmniBLE is present

Pair an rPi DASH pod using Loop-dev

  • observe OmniBLEPumpManager (OmniBLE name) is the pump manager
  • build Loop-all-managers over the phone app
    • ✅ confirm that pod is still controlled by app
    • ✅ confirm OmniBLEPumpManager is still the pump manager
  • build Loop-dev over the phone app
    • ✅ confirm pod is still controlled by app
    • ✅ confirm OmniBLEPumpManager is the pump manager

Test Automatic Transition when OmniBLE is NOT present

Continue with the same test configuration

  • build Loop-omnipodkit-only over the phone app
    • ✅ confirm that pod is still controlled by app
    • ✅ confirm OmniPumpManager (OmnipodKit name) is now the pump manager
    • Now that OmniPumpManager has control of the Pod, the user must continue with a build that includes OmnipodKit
  • build Loop-dev over the phone app - expect to lose pod because OmnipodKit is not included
    • ✅ main screen says: Add Pump
  • build Loop-all-managers over the phone app
    • ✅ confirm that pod signal is restored
    • ✅ confirm OmniPumpManager is the pump manager

Test completed successfully, deactivate the pod and delete the pump manager before going to the next test.

Test Eros

Test No Transition when OmniKit is present

Pair an Eros pod using Loop-dev

  • observe OmnipodPumpManager (OmniKit name) is the pump manager
  • build Loop-all-managers over the phone app
    • ✅ confirm that pod is still controlled by app
    • ✅ confirm OmnipodPumpManager is still the pump manager
  • build Loop-dev over the phone app
    • ✅ confirm pod is still controlled by app
    • ✅ confirm OmnipodPumpManager is the pump manager

Test Automatic Transition when OmniKit is NOT present

Continue with the same test configuration

  • build Loop-omnipodkit-only over the phone app
    • ✅ confirm that pod is still controlled by app
    • ✅ confirm OmniPumpManager (OmnipodKit name) is now the pump manager
    • Now that OmniPumpManager has control of the Pod, the user must continue with a build that includes OmnipodKit
  • build Loop-dev over the phone app - expect to lose pod because OmnipodKit is not included
    • ✅ main screen says: Add Pump
  • build Loop-all-managers over the phone app
    • confirm that pod signal is restored
    • ✅ confirm OmniPumpManager is the pump manager

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants