adafruit / Adafruit_nRF52_Arduino

Adafruit code for the Nordic nRF52 BLE SoC on Arduino
Other
627 stars 497 forks source link

Bluefruit.Central.connect Connection Timeout? #789

Open macirtr opened 1 year ago

macirtr commented 1 year ago

Operating System

Windows 10

IDE version

Ardino 2.2.0

Board

Adafruit Feather nrf52832

BSP version

1

Sketch

https://github.com/adafruit/Adafruit_nRF52_Arduino/blob/master/libraries/Bluefruit52Lib/examples/Central/central_bleuart/central_bleuart.ino

What happened ?

... void scan_callback(ble_gap_evt_adv_report_t* report) { Bluefruit.Central.connect(report); } ...

After sending a connection request, Adafruit nRF52 ble central stops scanning if a connection is not established. Bluefruit.Scanner.resume(); or Bluefruit.Scanner.start(0); commands do not respond.

As above, when a device is found that can be connected to, I send the connect command. If the target mobile device moves away or turns off after sending this command, the connection cannot be established. And the connection hangs. Scanning stops completely.. There should be a connection timeout option here. If the connection does not occur after x milliseconds after the connection is attempted, the operation should be aborted. But the connection hangs. How do I solve this?

How to reproduce ?

Here's how I do the test.

Debug Log

...

Screenshots

No response

macirtr commented 1 year ago

https://github.com/nkolban/esp32-snippets/issues/874 I found a thread of programmers having similar problems on Esp32. The semaphore was causing the deadlock. They found a solution by reducing the semaphore time. So I replaced all portMAX_DELAY data in the library with 3UL, but it didn't work.

macirtr commented 1 year ago

I thought maybe this error was caused by the new version (1.5.0). I installed the old library version (0.21) and tried it. But there is the same problem.

hathach commented 11 months ago

late response, can you post the log with debug level = 2 or 1, to see if there is any error output when the issue occurs.