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 logged the first three bytes of data received in on_ctrlpt_write(). nrfutil is sending 0x06 0x01 0x90. The nRF is sending 0x20 for the first byte of its response, but nrfutil is expecting 0x60.

    I could change DFU_OP_RESPONSE_CODE in ble_dfu.h to 0x60, but I'm not sure that's heading in the right direction. Shouldn't nrfutil be sending a 0x01 for the first byte of its command in order to jump to the bootloader? How does nrfutil know whether the nRF is in the application or the bootloader (and hence, whether to send the jump to boot command)?

Reply
  • I logged the first three bytes of data received in on_ctrlpt_write(). nrfutil is sending 0x06 0x01 0x90. The nRF is sending 0x20 for the first byte of its response, but nrfutil is expecting 0x60.

    I could change DFU_OP_RESPONSE_CODE in ble_dfu.h to 0x60, but I'm not sure that's heading in the right direction. Shouldn't nrfutil be sending a 0x01 for the first byte of its command in order to jump to the bootloader? How does nrfutil know whether the nRF is in the application or the bootloader (and hence, whether to send the jump to boot command)?

Children
No Data
Related