Hi Dialog,
I've modified the example project under ble_examples\ble_app_peripheral
The sleep mode is set to ARCH_EXT_SLEEP_ON. The code calls the function arch_ble_ext_wakeup_on(); and I expected this to cause the chip to enter sleep mode at the end of the main function under arch_main.c and not wake without an external interrupt. The chip, though, continues advertising. According to the sleep modes current measurement tutorial, on page 11
"It can be disabled before going to sleep mode by calling the API: app_ble_ext_wakeup_on();
This will disable all BLE events and periodic events."
I'm trying to understand what is waking the chip so that advertising continues. Also, how can I properly disable that periodic wake and enter sleep. Eventaully, I will be using deep sleep mode, but I can't test that now without burning OTP.
Thanks

嗨jbuttelmann,
The tutorial is based on the prox_reporter example of the SDK. The procedure that you have followed into the ble_app_peripheral example will not stop advertising and put the device in extended sleep mode. If you ARCH_EXT_SLEEP_ON, you set the default sleep mode upon the system initialization but the device will wake up and start advertising. You can check it if you add a break point into the user_app_adv_start() and you will see that the break point hits. There are two option for setting the DA14585 into sleep mode. The first is to put it into extended sleep mode between advertising intervals but the chip will continue advertising. You can achieve that by executing the arch_set_extended_sleep(false) into the user_app_adv_start(). The second option is to stop advertising and put the device into extended sleep mode. For this option, I would strongly recommend you to check the ble_app_sleepmode example of the SDK which implements this functionality. You can also take a look at the 7.6 Pillar 5 (Sleep Mode) section ofUM-B-080 DA14585 & DA14586 Software Developer's Guide (SDK 6.0.8)为更详细的通知文件ation regarding this example.
Thanks, PM_Dialog
Thanks. That is helpful.