Issue with UWB ranging on DWM3001CDK using NINearbyAccessoryConfiguration in Background mode

Hi,

I’m trying to perform UWB ranging between an iPhone and a Qorvo DWM3001CDK accessory using Apple NI’s NINearbyAccessoryConfiguration class. I’ve followed the steps described in the official Apple documentation (https://developer.apple.com/documentation/nearbyinteraction/ninearbyaccessoryconfiguration), specifically for enabling background mode using the init(accessoryData:bluetoothPeerIdentifier:) initializer.

The configuration is successfully created, and background mode is enabled. However, when the iPhone starts the session, I doesn’t receive any ranging data from the DWM3001CDK, and the session ends with a timeout.

Interestingly, if I use the init(data:) initializer, I can successfully receive ranging data, but this only works in foreground mode, which doesn’t meet my requirements.

Steps I’ve followed:

  1. Used Core Bluetooth to discover and pair the accessory.
  2. Retrieved the configuration data from the accessory according to the third-party UWB device specifications.
  3. Initialized the configuration using NINearbyAccessoryConfiguration(accessoryData:bluetoothPeerIdentifier:) for background mode.
  4. Started the session with NISession.run(configuration).
  5. Waited for updates in the delegate method session(_:didUpdate:).

Specific questions:

  1. Are there additional requirements for using init(accessoryData:bluetoothPeerIdentifier:) to enable background UWB ranging with the DWM3001CDK?
  2. Is there a known difference in how init(data:) and init(accessoryData:bluetoothPeerIdentifier:) handle the ranging process?

Any advice or insights would be greatly appreciated.

Thanks in advance!

Issue with UWB ranging on DWM3001CDK using NINearbyAccessoryConfiguration in Background mode
 
 
Q