Issue with UWB ranging on DWM3001CDK using Apple NI in Background Mmode

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 (NINearbyAccessoryConfiguration | Apple Developer Documentation), 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!

Qorvo has an example on the website in source codes of what you are trying to do.

The XCode Swift project for iPhone, which has both foreground and background modes.

Is it not working for you?

Here you can download NI for dwm3001 and sources of the iPhone app

https://www.qorvo.com/products/p/DWM3001CDK#evaluation-tools