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

[nRF51822] BTLE_CONNECTION_TIMEOUT

I'm using ble_uart_app & master control panel v3.5 for debugging uart communication. when uart is sending data to host(master control panel side), suddenly, master control panel lost connection. Here I give the info:

11462;10:34:37.1626 [480100696][ReadPacketQueueThread] Serial port read: 02-00-20-1B-00-17-00-04-00-1B-0E-00-66-77-88-11-22-33-44-55-66-77-88-11-22-33-44-55-66-77-88-AA 11463;10:34:37.1626 [480100696][ReadPacketQueueThread] Received packet: AttHandleValueNotification, 1B-0E-00-66-77-88-11-22-33-44-55-66-77-88-11-22-33-44-55-66-77-88-AA, Handle: 0x000E, Value: 66-77-88-11-22-33-44-55-66-77-88-11-22-33-44-55-66-77-88-AA 11464;10:34:37.1636 [480100696][ScriptThread] Received a HandleValueNotification on handle 000E with value 66778811223344556677881122334455667788AA 11465;10:34:37.2006 [480100696][ReadPacketQueueThread] Serial port read: 02-00-20-08-00-04-00-04-00-1B-0E-00-BB 11466;10:34:37.2006 [480100696][ReadPacketQueueThread] Received packet: AttHandleValueNotification, 1B-0E-00-BB, Handle: 0x000E, Value: BB 11467;10:34:37.2016 [480100696][ScriptThread] Received a HandleValueNotification on handle 000E with value BB 11468;10:34:40.2408 [480100696][ReadPacketQueueThread] Serial port read: 04-05-04-00-00-00-08 11469;10:34:40.2408 [480100696][ReadPacketQueueThread] HCI event: BTLE_EVENT_DISCONNECTION_COMPLETE ConnectionHandle: 0x0000, Reason: BTLE_CONNECTION_TIMEOUT 11470;10:34:40.2418 [480100696][ReadPacketQueueThread] Received LL Connection Termination Event, reason 08 11471;10:34:40.2428 [480100696][ScriptThread] Lost connection to device. Reason: BTLE_CONNECTION_TIMEOUT 11472;10:34:40.2438 [480100696] SERVER: Received packet <HciEvent: eventCode=0x0A> - <HciEvent: eventCode=0x0A> 11473;10:34:40.2438 [480100696] SERVER: Received Link Loss

Can someone tell me what cause the problem? BTW: what does "BTLE_CONNECTION_TIMEOUT" mean? Dose it set by "MIN_CONN_INTERVAL" and "MAX_CONN_INTERVAL" in SDK(my sdk is v4.4.1).

Parents
  • Hi Terry,

    The BTLE_CONNECTION_TIMEOUT occurs when the slave is not responding to any packets within the Supervision timeout. Lets say the connection interval is 1s and the supervision timeout is 1.5s. If the slave does not respond to one packet the master would stop trying to send packets and terminate the connection.

    This could happen if your application goes in to an infinite while loop in the event handler, that the stack asserts or that it is a bad radio environment and packets get corrupted. (It could also happen if you reset the Slave without doing a graceful disconnection, or that you move the device out of range)

    If you could provide more info (and try to put a break-point in the assert handler)

    You can also run the application in debug, and try to stop it to see where the application hangs when this error occurs.

  • Terry, Could you tell us how to solve this issue. I have met it today.

Reply Children
No Data
Related