Issues with Apple Nearby Interaction App Not Detecting DWM3001CDK Accessory

Hi everyone,

I’m having trouble getting my iPhone 11 to detect a DWM3001CDK as an accessory using the Apple Nearby Interaction app. Here’s the background:

Two years ago, I successfully tested UWB ranging between the same devices (iPhone 11 and DWM3001CDK, which is based on the Qorvo DW3110 IC and an nRF52833 SoC with Bluetooth 5.2). At that time, the Nearby Interaction app was in beta and worked well for my tests. Now, with the stable version of the app, I’m encountering an issue.

Here’s what I’ve done so far:

  • I erased the DWM3001C and flashed it with the Qorvo Nearby Interaction firmware (v3.2.0, “DWM3001CDK-QANI-FreeRTOS_full_QNI_3_0_0.hex”) using J-Flash Lite V7.86g on Windows.
  • With this configuration, I can connect the iPhone 11 to the accessory using the Qorvo NI apps, both in the foreground and background.
  • However, when I compile and run the project “ImplementingSpatialInteractionsWithThirdPartyAccessories” (available on the Apple Developer website) on my iPhone 11 (running iOS 17.7), the app remains stuck on the “Scanning for accessory” screen and doesn’t find the device, even though I’ve given the app permission to use Bluetooth.

Could this be due to an issue with the firmware I flashed on the DWM3001CDK, or might there be something else causing the problem?

Any help or insights would be appreciated!

Kind regards.

Hi @percyvirus!

If you’re using the last firmware from Qorvo NI release, the device is advertising with QorvoNIService:

struct QorvoNIService {
    static let serviceUUID = CBUUID(string: "2E938FD0-6A61-11ED-A1EB-0242AC120002")
    
    static let scCharacteristicUUID = CBUUID(string: "2E93941C-6A61-11ED-A1EB-0242AC120002")
    static let rxCharacteristicUUID = CBUUID(string: "2E93998A-6A61-11ED-A1EB-0242AC120002")
    static let txCharacteristicUUID = CBUUID(string: "2E939AF2-6A61-11ED-A1EB-0242AC120002")
}

To fix it you have to change the device app to advertise with TransferService:

struct TransferService {
    static let serviceUUID = CBUUID(string: "6E400001-B5A3-F393-E0A9-E50E24DCCA9E")
    static let rxCharacteristicUUID = CBUUID(string: "6E400002-B5A3-F393-E0A9-E50E24DCCA9E")
    static let txCharacteristicUUID = CBUUID(string: "6E400003-B5A3-F393-E0A9-E50E24DCCA9E")
}

Or to modify the ImplementingSpatialInteractionsWithThirdPartyAccessories to scan for QorvoNIService.

Kind regards!