Trigger library does not work

After a painful sequence here

https://devzone.nordicsemi.com/f/nordic-q-a/80283/how-to-use-the-trigger-library-to-program-the-nrf52840-dongle

I managed to merge the projects and insert all those c-files and h-files and tried to match all the correct items in the sdk_config.h file (perhaps the hardest part) into the project to support the single function added to my project nrf_dfu_trigger_usb_init().

It finally built with no undefined references and I was able to use nRF Connect to install SoftDevice and my trigger-usb loaded application onto the dongle. Though the application worked fine, nRF Connect gave the message

Nordic DFU Trigger Interface was not found. Please physically reset the device.

I have no idea how to test this and why it should fail. Since there is not much I have to do with respect to writing code (add one h-file and one init method), if you can get all the dependencies right so the project builds, what could go wrong? The only thing I can think of is the sdk_config.h file. There are all kinds of things in there mostly undocumented and I have no idea what they do.

Since my original project did not use USB in any way, I assumed the share option would be off. The example project \examples\connectivity\ble_connectivity\pca10059\ser_s140_usb_hci had it set to shared, but I do not know what it is sharing it with.

Has anyone ever gotten this to work with their BTLE-SoftDevice application?

In the connectivity sdk_config.h file the following items are enabled:

sdk_config.h(151) : #define BLE_DTM_ENABLED 1
sdk_config.h(209) : #define NRFX_CLOCK_ENABLED 1
sdk_config.h(294) : #define NRFX_POWER_ENABLED 1
sdk_config.h(334) : #define NRFX_PRS_ENABLED 1
sdk_config.h(368) : #define NRFX_PRS_BOX_4_ENABLED 1
sdk_config.h(428) : #define NRFX_SYSTICK_ENABLED 1
sdk_config.h(434) : #define NRFX_UARTE_ENABLED 1
sdk_config.h(560) : #define NRFX_UART_ENABLED 1
sdk_config.h(681) : #define NRFX_USBD_ENABLED 1
sdk_config.h(746) : #define NRF_CLOCK_ENABLED 1
sdk_config.h(789) : #define POWER_ENABLED 1
sdk_config.h(832) : #define SYSTICK_ENABLED 1
sdk_config.h(838) : #define UART_ENABLED 1
sdk_config.h(915) : #define UART0_ENABLED 1
sdk_config.h(938) : #define USBD_ENABLED 1
sdk_config.h(1001) : #define APP_SCHEDULER_ENABLED 1
sdk_config.h(1022) : #define APP_TIMER_ENABLED 1
sdk_config.h(1117) : #define APP_USBD_ENABLED 1
sdk_config.h(1388) : #define APP_USBD_NRF_DFU_TRIGGER_ENABLED 1
sdk_config.h(1395) : #define CRC16_ENABLED 1
sdk_config.h(1401) : #define NRF_BALLOC_ENABLED 1
sdk_config.h(1458) : #define NRF_MEMOBJ_ENABLED 1
sdk_config.h(1464) : #define NRF_QUEUE_ENABLED 1
sdk_config.h(1479) : #define NRF_SECTION_ITER_ENABLED 1
sdk_config.h(1486) : #define NRF_SORTLIST_ENABLED 1
sdk_config.h(1493) : #define NRF_STRERROR_ENABLED 1
sdk_config.h(1503) : #define APP_USBD_CDC_ACM_ENABLED 1
sdk_config.h(1526) : #define NRF_FPRINTF_ENABLED 1
sdk_config.h(1533) : #define NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF_ENABLED 1
sdk_config.h(4212) : #define NRF_SDH_BLE_LOG_ENABLED 1
sdk_config.h(4263) : #define NRF_SDH_LOG_ENABLED 1
sdk_config.h(4314) : #define NRF_SDH_SOC_LOG_ENABLED 1
sdk_config.h(4467) : #define PM_LOG_ENABLED 1
sdk_config.h(4584) : #define NRF_LOG_STR_FORMATTER_TIMESTAMP_FORMAT_ENABLED 1
sdk_config.h(4646) : #define NRF_SDH_BLE_ENABLED 1
sdk_config.h(5127) : #define NRF_SDH_ENABLED 1
sdk_config.h(5295) : #define NRF_SDH_SOC_ENABLED 1

Some I understand, most I do not. Which of these MUST be enabled in order for the trigger to work?

Related