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))
    
  • I use Android OS. If I set the timing like below the update speed is good but 6~7 in 10 time the app will show the gatt conn timeout error message. #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))

    If I set the timing like below. The update speed is slow but 2~3 in 10 time app show the gatt conn timeout #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))

    I use the example code hrs ble will error every time. If I use the example code csc ble just few time will show the timeout error MCU: nRF52832 SDK: 11 Project: ble_peripheral ble_app_cscs and ble_app_hrs Cell Phone: samsung s7 OS: Android App: nRFToolbox FW: I did nRFutil to make application to zip file

Reply
  • I use Android OS. If I set the timing like below the update speed is good but 6~7 in 10 time the app will show the gatt conn timeout error message. #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))

    If I set the timing like below. The update speed is slow but 2~3 in 10 time app show the gatt conn timeout #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))

    I use the example code hrs ble will error every time. If I use the example code csc ble just few time will show the timeout error MCU: nRF52832 SDK: 11 Project: ble_peripheral ble_app_cscs and ble_app_hrs Cell Phone: samsung s7 OS: Android App: nRFToolbox FW: I did nRFutil to make application to zip file

Children
No Data
Related