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

nRF Connect GATT Timeout After Connecting To Device

Hi,

My device advertises and "connects", but then I later receive an error through nRF Connect: "Error: Received a GATT Timeout".

Has anyone else had a similar problem, or if not, any ideas on how to fix this?

Thanks!

Parents
  • Hi, 

    What are SD/SDK versions and the based example you are using?  

    Just to confirm, the BLE_HCI_CONNECTION_TIMEOUT is the reason you receive on the NRF Connect, right?

    What's the bard you use as the peripheral, custom board or nRF52840DK?

    What is the error log on the peripheral side?

    Is it possible to provide a sniffer trace? A trace captured with nRF Sniffer is sufficient.

    -Amanda H.

  • Hi Amanda,

    1. I am using SDK 16.0.0, implementing a version of the BLE multiperipheral example

    2. I never actually receive a reason in the NRF Connect Log. What happens eventually is a pop up shows up with the “Error: received a GATT timeout” message. The device remains “connected” but NRF never updates its name from “Unknown” or shows its services

    3. I am using a nRF52840 Dongle as the adapter and a standard issue nRF52840-DK as the peripheral

    4. Unsure, could you please tell me how I could get a peripheral-side error log?

    5. I’ll look into it and get back to you as soon as possible, thanks!

  • Hi, 

    kmassa5 said:
    1. I am using SDK 16.0.0, implementing a version of the BLE multiperipheral example

    What did you modify the BLE multiperipheral example? Could it work without the modification?

    kmassa5 said:
    2. I never actually receive a reason in the NRF Connect Log.

    Please provide the nRF Connect log by 

    kmassa5 said:
    4. Unsure, could you please tell me how I could get a peripheral-side error log?

    If you want to use an RTT viewer, you could enable NRF_LOG_BACKEND_RTT_ENABLED in the sdk_config.h. Then, you could get the RTT log in the Segger. 

    //==========================================================
    // <e> NRF_LOG_BACKEND_RTT_ENABLED - nrf_log_backend_rtt - Log RTT backend
    //==========================================================
    #ifndef NRF_LOG_BACKEND_RTT_ENABLED
    #define NRF_LOG_BACKEND_RTT_ENABLED 1
    #endif
     

    Otherwise, Start a terminal emulator like PuTTY and connect to the used COM port with the following UART settings:

    • Baud rate: 115.200
    • 8 data bits
    • 1 stop bit
    • No parity
    • HW flow control: None

    -Amanda H.

     

Reply
  • Hi, 

    kmassa5 said:
    1. I am using SDK 16.0.0, implementing a version of the BLE multiperipheral example

    What did you modify the BLE multiperipheral example? Could it work without the modification?

    kmassa5 said:
    2. I never actually receive a reason in the NRF Connect Log.

    Please provide the nRF Connect log by 

    kmassa5 said:
    4. Unsure, could you please tell me how I could get a peripheral-side error log?

    If you want to use an RTT viewer, you could enable NRF_LOG_BACKEND_RTT_ENABLED in the sdk_config.h. Then, you could get the RTT log in the Segger. 

    //==========================================================
    // <e> NRF_LOG_BACKEND_RTT_ENABLED - nrf_log_backend_rtt - Log RTT backend
    //==========================================================
    #ifndef NRF_LOG_BACKEND_RTT_ENABLED
    #define NRF_LOG_BACKEND_RTT_ENABLED 1
    #endif
     

    Otherwise, Start a terminal emulator like PuTTY and connect to the used COM port with the following UART settings:

    • Baud rate: 115.200
    • 8 data bits
    • 1 stop bit
    • No parity
    • HW flow control: None

    -Amanda H.

     

Children
No Data
Related