Automatically Disconnected/Reconnected from UWB Beacons on iOS

I’m trying to connect to 3 Estimote UWB Beacons using an iPhone X (I know there is no UWB functionality, I’m just trying to establish BLE connection right now). I am using the demo app from the iOS UWB SDK, but have set shouldHandleConnectivity: false and am manually connecting to one of the beacons in the didDiscover() function. I am can successfully connect to the beacon, but less than a second later, I get disconnected from the beacon (without ever manually disconnecting). Moments later, the phone will reconnect, but this disconnect/reconnect cycle goes on indefinitely. These are the logs I am getting, all in very quick succession:

Discovered device: [identifier] rssi: -58
beacon 1 detected
Successfully connected to: [identifier]
“session invoked for EB9FB7B4-0B9B-CB91-914C-625A5E349FB4”
Disconnected from device: [identifier] error: Optional(EstimoteUWB.PeripheralError.ended)
Discovered device: [identifier] rssi: -60

Any ideas why this might be happening?

I would guess that connect is trying to start a UWB session, but the device doesn’t handle that, times out and is disconnected.

1 Like

Ethan,

our UWB beacons have also BLE chip and by default they advertise BLE packets first.

When you run uwbManager.startScanning() method it should return the list of detected UWB beacons which are advertising BLE packets.

The fact you are doing this with iPhone X (it doesn’t have UWB chip) should not cause issues at this stage.

However when you call uwbManager?.connect() method the phone establishes Bluetooth connection with UWB beacon and after the connection is established phone “is asking” over the BLE the beacons to start UWB ranging. If UWB ranging fails it might get disconnected.

That is our working theory as we didn’t test our SDK with non-UWB phones.

This makes sense. Upon testing on actual UWB-compatible iPhones it works just fine. Thanks for you help!