From 0f123d6d05f436cd22ec7fe9be4e3deb372fd449 Mon Sep 17 00:00:00 2001 From: Wessel Nieboer Date: Tue, 3 Mar 2026 01:09:39 +0100 Subject: [PATCH] Only enable DC/DC converter when SoftDevice is managing power --- src/helpers/NRF52Board.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/helpers/NRF52Board.cpp b/src/helpers/NRF52Board.cpp index 982bd1dce..d6f748814 100644 --- a/src/helpers/NRF52Board.cpp +++ b/src/helpers/NRF52Board.cpp @@ -244,13 +244,15 @@ bool NRF52Board::configureVoltageWake(uint8_t ain_channel, uint8_t refsel) { void NRF52BoardDCDC::begin() { NRF52Board::begin(); - // Enable DC/DC converter for improved power efficiency + // Enable DC/DC converter only when SoftDevice is managing the POWER peripheral. + // Without SoftDevice, NRF_POWER->DCDCEN = 1 leaves the DC/DC permanently on, + // which causes boot failures on some boards when running on battery alone. + // The SoftDevice manages DC/DC dynamically (on during radio, off during idle), + // which is the safe way to use it. uint8_t sd_enabled = 0; sd_softdevice_is_enabled(&sd_enabled); if (sd_enabled) { sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE); - } else { - NRF_POWER->DCDCEN = 1; } }