This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

PPK and nrf52840-DK App always returns "failed to read ppk metadata"

Hello Nordic,


I am having problems getting the PPK to work with my nrf520840-DK application.
I am happy to share my code with you, but first a hardware setup-description that might explain enough for you to advise me on what to try next.

My App is a mashup of the ble-nus example and the spi-slave example. It takes data over the SPI bus as slave, and transmits it over the NUS service to an iOS device. In addition to SPI lines I also use one GPIO line as a strobe between my board and an external data-collecting board.

I use the following pins on the DK:
P0.26, P0.08, P0.07, P0.06, P0.05
(All of these are on the header opposite the one that the PPK uses)

I have removed the battery from my board, and I usually power my DK with the "nrf power source" slider set to VDD, with only a single usb-cable attached to the ob-segger-jlink plug near P22.


I am following the instructions from the PPK guide section 6.3 Measuring current on nRF5 DK

After cutting the SB40 trace to setup the DK for current measurement per the PPK and DK guides, I find that I must add external-power via usb cable to the "nrf-usb" connector near the 4 pushbuttons, and change the nrf-power-source slider to "external". When I do this, my App still runs fine. If I do not do this, my App does not run. To repeat: With SB40 cut, if I leave the slider on "VDD", my app does not run. I never see it with a ble-sniffer, nor do I see LED1 blinking when advertising.

ok, so I've cut SB40, connected 2 usb-cables to my DK (one to nrf-usb near the pushbuttons, one to the ob-segger-jlink connector near P22), and set the "nrf-power-source" to "external". My App still runs. I turn off the DK, and attach the PPK as shown in the PPK guide. The PPK's pins slide into the headers near the 4-push-buttons on the DK. The PPK is set to DK for DUT, DK for Power Source, and DK for COM. My App still runs when I power-on the DK.

I power-on the DK, and launch the PowerProfiling App from nrf-Connect. I pick the serial-port associated with the OB-Segger-JLink, and the Power Profiling App asks me if I'd like to update the firmware on the DK. If I say "no", then I see only "PPK Closed", so I say "yes".

From this point on it's always "Unable to read ppk metadata" error from the Power Profile Application, and my App no longer runs.

Should I be able to use my own App on the DK with a PPK attached? The PPK guide suggests yes, but related questions in devzone suggest I need an extra DK.

Once the "unable to read ppk metadata" hapens, my App no longer runs. In order to get my App to run again, I must re-flash it from SES after removing the external power from "nrf usb", sliding the "nrf-power-source" to VDD, and putting a jumper across P22 as described in the PPK notes)

I can repeat this badness on both OSX and Windows10. On windows I have tried JLink v6.4 and v6.3. On MacOS i have JLink6.4

I have an additional stand-alone Segger JLink, but I have not tried the old python based ppk scripts yet.

Thanks for your help!

-dav lion

  • Hello, Nordic.   Shall I open a private-ticket in order to receive help?

  • The most likely issue is power profiling software is communication with the MCU on the DK and not the MCU on the PPK. When stacked, make sure that the COM switch on the PPK is set to DK when programming your application and EXT before launching the nrf-Connect for desktop. The other common issue is the jlink driver has not released the virtual com port and when the power profiler software is launched, it doesn't find a free virtual com port.

    In addition, be sure you are using the current Segger Jlink software and that one one instance of the driver is active. This may require rebooting the PC. To avoid this problem be sure to disconnect the virtual com port before exiting the Power Profiling software.

    If the above does not immediately resolve the issue, the initial testing should use the most straight forward power configuration. On the PPK set DUT Select to DK and Power Select to DK. Connect a USB cable only to the DK's J2. DK power switch on. On the DK, VEXT->nRF (shipped covered with tape) near the DK power switch should remain off. nRF power supply to VDD and Power to ON.

    It's unlikely this is a code issue. But if you need to rule this out, use an unmodified example for your initial testing. To make it simple use an example that does not require a softdevice. For example. ...\nRF5_SDK_15.2.0_9412b96\examples\peripheral\pwr_mgmt.

    Best of luck

  • Thanks, Jeff.   Followed all your suggestions and finally got the PPK working.  I did have to switch around one gpio-line.   I was using P0.26 as a strobe and that didn't play well with the PPK.  Moved the strobe to P0.14 and all's well.   

  • I should also mention for anyone else that's reading this thread that I can now use either the Segger-OB when the PPK-comm is set to 'dk', or a standalone Segger when the PPK com switch is set to 'ext'.  

Related