QSG not working with DWM3000EVB + nRF52840-Preview-DK


I followed the Quick Start Guide provided in the download here: https://www.qorvo.com/products/p/DWM3000EVB#evaluation-tools
and I can’t make the demo work.
Nothing happens on the screen of the iPhone and when I try to view the logs with J-Link RTT Viewer, nothing appears either (see below).

The 4 LEDs at the bottom of the nRF board blink regularly (every minute), but I don’t know what that means either… and the LED1 of the EVB is on.

Is there something that I am missing?

Thanks in advance.

Hello @ConfidentWreck ,

Can you specify which iPhone version are you using?
What iPhone application you’re using?


Hi @ConfidentWreck !

LEDs blinking are a good sign, if they are happening every 3 min, however, the RTT should show the starting info, like this:

Application: Nearby Interaction Beta
Target: DWM3000EVB + nRF52840DK
Version: 1.0.0-211130
DW3XXX Device Driver Version 06.00.00

With the binaries, you should have the NI sources for Segger Embedded Studio. Would you try the Segger project and use the Debug→Go option? When debugging the Segger log output must show the same info as the J-Link RTT Viewer, and you will be aware if an error occurs during execution.

Please let me know your results!

Hello @wassim, @carlos.silva,

Thank you for your answers!

@wassim: I tried with an iPhone 13 Pro using the Qorvo NI 3D app (and also the Nearby Interaction app by Apple). :slight_smile:

@carlos.silva: as I said, I timed the blinking of the LEDs and they blink every minute… though I don’t know if it makes much of a difference with it being every 3 minute as you say.
I tried debugging and I also get nothing:

Sorry to re-up this, but no idea about what I might be doing wrong?

Thanks in advance!

Hi @ConfidentWreck !

Not sure, following the steps you described you should have something on RTT Viewer.
Also, you used the debug mode with Segger Embedded Studio, if you had a problem like J-Link connection or power supply you would get warnings, but all looks fine!

If you want to try another project, you can try something from your Nordic SDK folder:

It uses the same BLE profile as the NI Project, so the iPhone will find a Nordic_UART device (in this case, ranging will not work). If you still have problems you can try this project without the DW3000 Shield.

Let me know your results!

Hello @carlos.silva!

Sorry for the late reply, I was out of office for a couple of weeks.

I seem to be able to build / debug it without a problem. :slight_smile:

I’ll only be able to test it with an iPhone on Thursday, though.

Thanks for your help! I’ll keep you posted!

Hello again,

So I’ve tested the ble_app_uart_pca10056_s140 project with and without the DW3000 shield and the iPhone detects the device (Nordic_UART) in both cases. And it looks like LED_1 blinks until the iPhone detects it and then goes to a stable state “on”.

I tried again with the demo, but still no luck. :frowning:

Thanks for any further help you can provide. :slight_smile:

Hi @ConfidentWreck !

This is quite confusing! Using ble_app_uart_pca10056_s140 the results are exactly as expected! It should work with or without the shield because it uses only the BLE part, the solid “on” means the iPhone is successfully connected to the board, so it seems you are good to go with the NI example.

The worst part is the debugging saying nothing. I can only recommend you to check connections and power and then try to have some info from Segger Embedded Studio in Debug mode, putting breaking points and more RTT log lines.

Good luck!

Hello @carlos.silva,

After debugging with log lines, it seems like this line return dwt_probe((struct dwt_probe_s*)&dw3000_probe_interf); which ends the UwbInit(void) function is where the problem lies.
I can’t seem to find the definition of the dwt_probe(struct dwt_probe_s *probe_interf) function, so I don’t know what the problem is inside it.

Any help would be appreciated. Thanks in advance!

Hi @ConfidentWreck!

This is the uwb_driver. You can find the function description in Libs/uwb_driver/Inc/deca_device_api.h

Is the shield connected and powered? dwt_probe uses the device id to choose the correct driver for the device. If returning DWT_ERROR probably it is failing to read the device id.

Something that came to my mind, Nordic DK boards now have longer headers under the Arduino interface, if you plug a shield all the way in, the headers may touch the shield and maybe cause a short, worth taking a look. The board I use came with caps on the headers and I keep the caps on when I plug a shield in.

Hello @carlos.silva,

Thanks for your reply!
The shield definitely seems to be connected and powered as the LED1 on the shield is a solid red. And I tried not to plug it in all the way through (/not to have any pins from the Nordic board touching the shield) while maintening the solid red and it’s still stuck at the same line. :frowning:
Are there any examples that just try to communicate with the shield? (like making LED2 or LED3 blink)

Also, I have 2 DWM3000EVB and 2 nRF52840-Preview-DK, and I tried all the possibilities between the boards, and none worked: it’s always stuck at the same line. I’m out of ideas to make it work. :frowning:

Hi @ConfidentWreck ,

Yes in release XR6.0C here Qorvo-UWB-Share-Unofficial - Google Drive (example 13_a_gpio) you can find an example to make leds blink.

Hope it helps,

Hello @wassim,

I may have read it wrong… but isn’t your example code made for a Nucleo Board?
I tried it though… and it did make the LED 4 on the Nucleo Board blink, but none on the DWS3000 shield. And what I’m trying to check is if I can communicate with the shield, because currently I don’t have any proof that the shield is working properly. :frowning:

No these examples should work on Nucleo Board and nRF52840-DK board.
To check if you can communicate with the shield, you can try to read the device id using exp00a

Hmm, sorry, but what do you mean by “using exp00a”? :sweat_smile:

Please open the release and read the documentation on how to build, debug, etc…
These are examples I’m referring to

1 Like

Oh, I didn’t understand your typo.
But yes, I did read a lot of documentation before asking the questions here. :wink:

Here’s what I got:

As you can see, it’s close to what I got with the demo (on the nRF52840). It’s stuck and seems not to be able to communicate with the shield.

Hi @ConfidentWreck ,

Can you put the dev_id in watchlist and see it’s value?
You can also add another breakpoint in line 52. If it goes there, then you have a problem with the shield you’re using or in the connection between the micrcontroller and the uwb transciever.
Also make sure you did this Hardware modification if you’re using a Nucleo target.

If you have nRF52840DK, can you debug the same example.