This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

SDK12 ble_app_buttonless_dfu

Hi,

Im tryin to use the ble_dfu service example from SDK12, I get DFU SERVICE NOT FOUND when trying to update from Android. Any suggestions what to look for?

I use S132v3, bootloader is flashed and I performed successful upload of the application via BLE when there was no app loaded.

Parents
  • I added the "char_md.char_props.write = 1;" change. I still receive the following error from nrfutil:

    Traceback (most recent call last):                                                                          
      File "C:\Python27\Scripts\nrfutil-script.py", line 9, in <module>                                         
        load_entry_point('nrfutil==1.5.3', 'console_scripts', 'nrfutil')()                                      
      File "c:\python27\lib\site-packages\click\core.py", line 716, in __call__                                 
        return self.main(*args, **kwargs)                                                                       
      File "c:\python27\lib\site-packages\click\core.py", line 696, in main                                     
        rv = self.invoke(ctx)                                                                                   
      File "c:\python27\lib\site-packages\click\core.py", line 1060, in invoke                                  
        return _process_result(sub_ctx.command.invoke(sub_ctx))                                                 
      File "c:\python27\lib\site-packages\click\core.py", line 1060, in invoke                                  
        return _process_result(sub_ctx.command.invoke(sub_ctx))                                                 
      File "c:\python27\lib\site-packages\click\core.py", line 889, in invoke                                   
        return ctx.invoke(self.callback, **ctx.params)                                                          
      File "c:\python27\lib\site-packages\click\core.py", line 534, in invoke                                   
        return callback(*args, **kwargs)                                                                        
      File "c:\python27\lib\site-packages\nordicsemi\__main__.py", line 613, in ble                             
        dfu.dfu_send_images()                                                                                   
      File "c:\python27\lib\site-packages\nordicsemi\dfu\dfu.py", line 122, in dfu_send_images                  
        self._dfu_send_image(self.manifest.application)                                                         
      File "c:\python27\lib\site-packages\nordicsemi\dfu\dfu.py", line 83, in _dfu_send_image                   
        self.dfu_transport.open()                                                                               
      File "c:\python27\lib\site-packages\nordicsemi\dfu\dfu_transport_ble.py", line 193, in open               
        target_device_addr = self.target_device_addr)                                                           
      File "c:\python27\lib\site-packages\nordicsemi\dfu\dfu_transport_ble.py", line 98, in connect             
        self.adapter.enable_notification(conn_handle=self.conn_handle, uuid=DFUAdapter.CP_UUID)                 
      File "c:\python27\lib\site-packages\wrapt\wrappers.py", line 561, in __call__                             
        args, kwargs)                                                                                           
      File "c:\python27\lib\site-packages\pc_ble_driver_py\ble_driver.py", line 115, in wrapper                 
        err_code = wrapped(*args, **kwargs)                                                                     
      File "c:\python27\lib\site-packages\pc_ble_driver_py\ble_adapter.py", line 228, in enable_notification    
        raise NordicSemiException('CCCD not found')                                                             
    pc_ble_driver_py.exceptions.NordicSemiException: CCCD not found    
    
  • I don't clearly know it. Perhaps analyzing the init fucntions in both application and bootloader project can help to understand.

        nrf_ble_dfu.c\ble_dfu_init() - bootloader project uses following
    // This is a 16-bit UUID.
    #define BLE_DFU_SERVICE_UUID                 0xFE59
    
    #define BLE_DFU_CTRL_PT_UUID                 0x0001 
    #define BLE_DFU_PKT_CHAR_UUID                0x0002 
    const ble_uuid128_t base_uuid128 =
            0x50, 0xEA, 0xDA, 0x30, 0x88, 0x83, 0xB8, 0x9F,
            0x60, 0x4F, 0x15, 0xF3,  0x00, 0x00, 0xC9, 0x8E
        
    
    ble_dfu.c\ble_dfu_init() - buttonless example
    
        #define BLE_UUID_DFU_SERVICE 0x0001
    
        #define BLE_DFU_BASE_UUID   {{0x50, 0xEA, 0xDA, 0x30, 0x88, 0x83, 0xB8, 0x9F, 0x60, 0x4F, 0x15, 0xF3, 0x00, 0x00, 0x40, 0x8E}} /**< Used vendor specific UUID. */
    
Reply
  • I don't clearly know it. Perhaps analyzing the init fucntions in both application and bootloader project can help to understand.

        nrf_ble_dfu.c\ble_dfu_init() - bootloader project uses following
    // This is a 16-bit UUID.
    #define BLE_DFU_SERVICE_UUID                 0xFE59
    
    #define BLE_DFU_CTRL_PT_UUID                 0x0001 
    #define BLE_DFU_PKT_CHAR_UUID                0x0002 
    const ble_uuid128_t base_uuid128 =
            0x50, 0xEA, 0xDA, 0x30, 0x88, 0x83, 0xB8, 0x9F,
            0x60, 0x4F, 0x15, 0xF3,  0x00, 0x00, 0xC9, 0x8E
        
    
    ble_dfu.c\ble_dfu_init() - buttonless example
    
        #define BLE_UUID_DFU_SERVICE 0x0001
    
        #define BLE_DFU_BASE_UUID   {{0x50, 0xEA, 0xDA, 0x30, 0x88, 0x83, 0xB8, 0x9F, 0x60, 0x4F, 0x15, 0xF3, 0x00, 0x00, 0x40, 0x8E}} /**< Used vendor specific UUID. */
    
Children
No Data
Related