nRF52840 Dongle and Blinky example using GPIO 0.31 draws 8mA

I added two extra buttons to ble_app_blinky (SDK 17.1.0) - port 1.10 and 0.31 I am running the code on an nRF52840 Dongle.The additional buttons are configured exactly like the existing button example, uses pullups are active low and the code works well.... however....if I measure the current draw on the 52840 dongle the normally low current (20-50uA) increases to 8mA if I use pin 0.31 (active low = ground).

I changed to the pin next to it (0.29) and it works as expected like the other button and the tactile switch, but pin 0.31 seems to pull massive current.

I went through the config and changed the default PWM output from 31 to 11 just in case that was effecting it but there is no change to the current draw.

The code works and functions as expected even using pin 0.31, but the current draw when using pin 0.31 is way outside spec.

Can you assist?

Is there something else I should be switching off, on, or configuring so I can use this pin.

It is just that pin 0.31 is very convenient as it is next to the gnd pin so easy to activate.

  • Also, I have tested multiple Dongles and they are all doing the same so it is not a 1-off faulty Dongle

  • Hi Darren,

    Have you tried testing the sample on an nRF52840-DK.?

    Regards,

    Swathy

  • I did and the result is the same. It is pretty easy to replicate - just add port 0.31 as an input to APP_BLE_BLINKY and use it to trigger the input and watch the current. The 840 DK drew 9mA on grounding 0.31

  •  Hi, I tried to replicate this here on a DK but can not see the same thing. I started out with ble_app_blinky in SDK 17.1.0 and changed the LEDBUTTON_BUTTON define to 31. I can not see any difference in power consumption. Grounding the pin results in about 200uA, which is expected because of the pull up. Could you please provide more details into what changes you have made to the example code? Thanks.

  • OK. Try this then.

    From the examples, load Nordic supplied Hex code for ble_app_blinky (ble_app_blinky_pca10059_s140.hex) into a nRF52840 Dongle. Current is approx 4mA (mostly from the LED). Now connect 0.31 to GND and the current immediately goes to 12mA.
    An 8mA increase. No code or config changes, just using the Nordic supplied Hex code.

    Now load the same Hex code into the nRF52840 DK. The buttons and LEDs won't work, but that's OK as the nRF is the same. Current is approx 2mA. Now connect 0.31 to GND and the current goes to 10mA. Another 8mA increase.

    Let's swap this around.

    Load the correct hex code for ble_app_blinky (ble_app_blinky_pca10056_s140.hex) into the nRF52840 DK. The current is around 5mA. If you connect 0.31 to GND there is no change (I am not measuring down to 200uA). This is the expected current behavior.

    Now load the DK Hex (ble_app_blinky_pca10056_s140.hex) into the Dongle. Basically no current (no LEDs working but it is running code). Now connect 0.31 to GND and still no current (maybe 200uA?) - this is also the ideal.

    So the current issue is not related to the board (DK or Dongle) as I can get both effects on both boards. This leads me to conclude that the current use is related to a pca10059 configuration setting using pin 0.31 for "something".

    Note that I haven't tested all pins as I am actually only concerned with 0.31 at this stage, but the other pins I am using all seem fine. I could check every pin if necessary, but I think I have proven the issue and that it can be replicated.

    Nordic has an infinitely better understanding of the nRF52840 than I (clearly!), so I am reaching out to Nordic to assist with the investigation as to the cause and a solution. It bugs me and I want to know why this is happening. I don't think my coding is too bad, but I've only been doing it 40 years or so and I may have missed something.

    D

Related