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.
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.omnipodDashonly accepts peripherals whose advertised name is exactly"TWI BOARD"(a real Dash pod) or" :: Fake POD ::"(the rPi DASH simulator):LoopFollow/BackgroundRefresh/BackgroundRefreshType.swift:62
OmnipodDashHeartbeatBluetoothTransmitterconnects on service UUID1A7E4024-E3ED-4464-8B7E-751E03D0DC5Fand reads characteristic1A7E2442-..., 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
BackgroundRefreshType.matches(_:)andOmnipodDashHeartbeatBluetoothTransmitterto also accept the Atlas advertisement and service, or.omnipodAtlascase 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.