nRF52832 custom board: application only starts after JLinkRTTClient + JLinkExe connection

I developed a BLE application for the nRF52832 using NCS v3.0.0. The application runs correctly when flashed to the nRF52 DK.

However, when flashing the same application to my custom board, it does not boot unless I open a J-Link RTT connection. After flashing, I open JLinkRTTClient, then in a new terminal tab I run JLinkExe -device nRF52832_xxAA -if SWD -speed 4000 -autoreconnect 1. As soon as the J-Link connection is established, the application starts running and continues working even after I close the RTT connection. However, if I power-cycle the board, the application does not reinitialize and again requires opening a J-Link RTT session to boot.

I'm flashing the custom board using the Debug Out port (P19) of the nRF52 DK, and flashing appears successful — I can see real-time sensor data when moving magnets near the sensors while the RTT connection is open.

Sharing my custom board's schematic in case this is a hardware issue:

Also attaching the application's prj.conf (note: RTT logging has been disabled here, so this is without the J-Link RTT workaround):

CONFIG_NCS_SAMPLES_DEFAULTS=y

# Bluetooth
CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_DEVICE_NAME="test"
CONFIG_BT_DEVICE_APPEARANCE=1157

# GATT services
CONFIG_BT_GATT_DYNAMIC_DB=y
CONFIG_BT_SETTINGS=y
CONFIG_SETTINGS=y

# Sensors
CONFIG_ADC=y
CONFIG_GPIO=y

# Crystal Oscillator
CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y

# Disable UART and console
CONFIG_SERIAL=n
CONFIG_CONSOLE=n
CONFIG_UART_CONSOLE=n
CONFIG_LOG=n
CONFIG_LOG_DEFAULT_LEVEL=0

# Disable all logging
CONFIG_LOG=n
CONFIG_LOG_DEFAULT_LEVEL=0
CONFIG_USE_SEGGER_RTT=n

# Optimizations
CONFIG_SIZE_OPTIMIZATIONS=y
CONFIG_ASSERT=n

Thank you for any guidance in advance. Happy to share additional info.

Related