This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Getting a "GATT CONN TIMEOUT" message when trying to upload a new firmware via BLE DFU

Thank you very much in advance for any help.

I am attempting to upload an example firmware on a nRF52832 with the s132 softdevice BLE stack and the example DFU bootloader. When I use the DFU toolbox provided with the nordic toolbox running on my nexus 5 with android 6.0.1, I am capable of pairing with the MCU (which is on the pca10040 dev board) but I am incapable of uploading a new firmware. I receive the following message: "GATT CONN TIMEOUT".

The firmware example I am uploading is "dfu_test_app_hrm_s132.zip" found at:

....\Workspace\nRF52_SDK_0.9.2_dbc28c9\examples\dfu\ble_dfu_send_hex\test_images_update_nrf52

and the bootloader I have placed in the device is "dual_bank_ble_s132" found at:

....\Workspace\nRF52_SDK_0.9.2_dbc28c9\examples\dfu\bootloader\pca10036\dual_bank_ble_s132\armgcc

Any help would be greatly appreciated and I can supply any other information necessary, if the need arises. I have tried to find similar posts or problems but have been unsuccessful. Thank you again!

Parents
  • Haleluia! Thanks a lot for your help! I changed the parameters in dfu_transport_ble.c to

    #define MIN_CONN_INTERVAL                    (uint16_t)(MSEC_TO_UNITS(15, UNIT_1_25_MS)) 
    #define MAX_CONN_INTERVAL                    (uint16_t)(MSEC_TO_UNITS(500, UNIT_1_25_MS))
    

    which is brute force and I'm going to have to figure out the optimal values for them so that the uploading is not so slow.

    Update:

    The following connection interval parameters works well

    #define MIN_CONN_INTERVAL                    (uint16_t)(MSEC_TO_UNITS(15, UNIT_1_25_MS)) 
    #define MAX_CONN_INTERVAL                    (uint16_t)(MSEC_TO_UNITS(100, UNIT_1_25_MS))
    
Reply
  • Haleluia! Thanks a lot for your help! I changed the parameters in dfu_transport_ble.c to

    #define MIN_CONN_INTERVAL                    (uint16_t)(MSEC_TO_UNITS(15, UNIT_1_25_MS)) 
    #define MAX_CONN_INTERVAL                    (uint16_t)(MSEC_TO_UNITS(500, UNIT_1_25_MS))
    

    which is brute force and I'm going to have to figure out the optimal values for them so that the uploading is not so slow.

    Update:

    The following connection interval parameters works well

    #define MIN_CONN_INTERVAL                    (uint16_t)(MSEC_TO_UNITS(15, UNIT_1_25_MS)) 
    #define MAX_CONN_INTERVAL                    (uint16_t)(MSEC_TO_UNITS(100, UNIT_1_25_MS))
    
Children
Related