I am currently developing firmware on Qorvo's DWM3001C module, which integrates the Nordic nRF52833. I am using nRF5 SDK 17.1.0 and the SoftDevice S140.
My base project (provided by Qorvo) works correctly without BLE functionality. However, after integrating BLE by adding ble_stack_init()
at the very beginning of main()
, the call to:
ret_code = sd_softdevice_enable(&clock_lf_cfg, app_error_fault_handler);
inside nrf_sdh_enable_request()
returns error code 8, which corresponds to NRF_ERROR_INVALID_STATE.
I have confirmed the following:
-
ble_stack_init()
is the first function inmain()
– no other initialization happens before this call. -
SoftDevice has been correctly flashed using
nrfjprog
. -
The project uses the correct SoftDevice for the nRF52833 (S140 v7.2.0).
-
The application ran fine before adding BLE functionality.
-
Clock configuration appears valid.
-
Flash and RAM are allocated properly for the SoftDevice (e.g., FLASH_START = 0x27000, RAM_START = 0x20002AE8).
-
The issue persists even with the logging system disabled.
-
SDK configuration file
sdk_config.h
has been tailored for BLE and SoftDevice usage.
Attached: My sdk_config.h
file for your review.
Given that BLE initialization is the first step in main()
and all memory and SoftDevice flashing procedures appear correct, what could be the likely causes for sd_softdevice_enable()
to return NRF_ERROR_INVALID_STATE (8)
in this scenario?
Any guidance or suggestions for additional checks would be greatly appreciated. Thank you very much.