No auto-run on powerup

Hi, I’m having a similar issue to some that have been mentioned in other threads (e.g. Power Conditions) and it’s driving me mad trying to work out what’s wrong. So I wanted to check/clarify what the expected board behaviour “definitely should be” for the way the hardware is wired and try to figure out what’s happening in my case.

When battery power is connected is it expected that the board/nrf52 should start running without needing any button press? When I apply power the board does not execute code until the PWR button is pressed, at which point the BG96 starts flashing lights and then (after about 4 seconds) the NRF starts executing code. On applying power (and not pressing the button) there is no response on the JLink interface until the PWR button so I don’t think this is a case of the code being hung or crashed. (also if I reflash the original RAK firmware this behaviour remains the same)

I’m using a RAK5010, but with custom firmware (I can upload the source, it’s all to be open source but not quite ready, but I also see exactly the same issue if I upload a generic nordic example)
I’m using a board with a S340 softdevice but again I see this same behaviour if I reflash with no softdevice.
Finally… because I had wiped the flash to reset/program I found I needed to reprogram the UICR with the reset pin number to return that to function, is there any other UICR configuration I might be missing that might be causing this behaviour?
oh finally, finally, :slight_smile: if I set a sense_input and use sd_power_system_off to enter system off, then the board does successfully restart on a GPIO signal.
any suggestions for what I would check, test or change?

I can confirm that the RAK5010 will power up when the battery is connected. I did have difficulties at one time and opened this thread:

Power Conditions - Cellular Boards / RAK5010 - RAKwireless Forum

My application is built on Arduino with a custom bootloader based on the Feather. I discovered that my issues were related to:

  1. The bootloader I was using didn’t function correctly and wasn’t running my firmware when loaded. I tried a different bootloader based on the Feather, however I think the internal PINs were not correct.
  2. I did have a couple board that appear to have been damaged. (They have been through a lot of modifications).

I have a lot of these boards and they do fire up when battery is applied.

Many thanks that’s good to know, I’m still struggling to figure out exactly what’s happening when the BG96 is powered up and why that would (or could) result in the NRF booting up.
Since the NRF doesn’t respond over the the SWD pins I think that means it hasn’t run and crashed otherwise it would be possible to start a debugger. I’ll try to understand the specifics of the boot process a bit more, I was wondering if it was related to the UICR being wiped but can’t see anything in the docs that would explain that.

I spent a while digging in this (Auto run on power up - Nordic Q&A - Nordic DevZone - Nordic DevZone) and still can’t figure out exactly what behaviour is going on that would cause the power up once the BG96 is started.

As far as I can see from the schematic once the battery is applied the power should be sent to the nRF and it should start-up, even if it was paused/crashed I’d expect it to respond to the SWD pins or to the reset button which it doesn’t until the BG96 is started. but. again. looking at the schematic, that just doesn’t make sense. esp. since it starts-up 4 seconds after the BG96 starts so it can’t even be a case of the power signal to the BG96 causing it but has to be a result of the BG96 togging pins.

and again. I have tested this with a completely wiped nRF (mass_erase) with nothing in the UICR or bootloader, and it still behaves this way.

I wonder if someone with experience/knowledge of the circuit could suggest any suitable components I could test the voltages on to figure out this mystery? (e.g. is there anywhere accessible I can confirm the power supply to the nRF?)

Ok after checking the schematic, board overlay and nRF52 power spec datasheet which explains that VDD1 and VDDH need to be brought high to power up.
I notice that on the RAK5010 board there is a missing resistor R76 that supplies 1.8v to the VDD_NRF line.
When the BG96 is running VDD_NRF is 1.8v but zero (well 0.7v ish) before the BG96 is started.

If I short R76 then the board powers up as desired as soon as the battery is connected.
I wonder if any of the engineers could shed light on why this might be or what the reason for R76 is and why it’s not included on the board? (just wondering if it was removed because it caused some undesired behaviour?)
anyway, I can’t see any reason why this would cause any problems, so I’m happy that’s resolved my issue now.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.