Skip to content

Background Refresh: scan does not find Atlas pods (Omnipod Dash) #630

@bjorkert

Description

@bjorkert

When a user selects Background Refresh → Omnipod Dash, scanning never finds the pod if it is an Atlas pod (newer Insulet hardware revision). Reported by a user who is looping with Dash.

The matcher in BackgroundRefreshType.matches(_:) for .omnipodDash only accepts peripherals whose advertised name is exactly "TWI BOARD" (a real Dash pod) or " :: Fake POD ::" (the rPi DASH simulator):

case .omnipodDash:
    if let name = device.name {
        // actual DASH or rPi DASH simulator
        return name == "TWI BOARD" || name == " :: Fake POD ::"
    }
    return false

LoopFollow/BackgroundRefresh/BackgroundRefreshType.swift:62

OmnipodDashHeartbeatBluetoothTransmitter connects on service UUID 1A7E4024-E3ED-4464-8B7E-751E03D0DC5F and reads characteristic 1A7E2442-..., which is the standard (non-Atlas) Dash pod service.
LoopFollow/BackgroundRefresh/BT/Devices/OmnipodDashHeartbeatBluetoothTransmitter.swift:8

Because Atlas pods use a different advertised name (and likely a different service UUID), the BLE scan list never offers them and the Omnipod Dash heartbeat option is effectively unavailable to Atlas users.

What to do

  • Identify the advertised name and BLE service UUID of an Atlas pod (a packet capture from a phone connected to an Atlas pod is enough).
  • Either:
    • extend BackgroundRefreshType.matches(_:) and OmnipodDashHeartbeatBluetoothTransmitter to also accept the Atlas advertisement and service, or
    • add a separate .omnipodAtlas case if the timing/characteristics differ enough to need their own transmitter class.

Until then, Atlas users have to fall back on Silent Tune or a Dexcom heartbeat for background refresh.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions