You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, first of all thanks a lot for this library! So much better than the bluedroid based library. Solved a lot of issues.
I want an ESP32 to act as a server, to be precise as an HID bluetooth keyboard.
I need to connect to different clients (in my case a FireTV and an AppleTV) and to switch the connection to them at runtime. Only one should be connected at the same time.
I am able to pair and bond both of them. One after the other. In the list of bonded peers I have two peers afterwards.
Remark: It is possible to connect both of them at the same time, if advertising is not stopped after the first connect. But it does not make sense because both devices would receive the same keyboard keys. I cannot force certain keys to be send to a certain peer.
So to achieve switching between the two peers, I tried to:
NimBLEDevice::getServer()->disconnect(...) // the currently connected peer
add the other device to the whitelist (AppleTV or FireTV) and restart advertising with advertising->setScanFilter(true, true);
The whitelist filter works in principle (bonding is only possible based on the whitelist). But if a client is already bonded, it can reconnect no matter if there is a whitelist set in advertising or not.
So how can I force only a certain bonded client to connect to the NimBLEServer?
I tried to pair the HID without bonding, NimBLEDevice::setSecurityAuth(false, false, false);, but when doing so, reconnects completely fail. It seems that keyboards always need to be bonded, not only to be paired.
The text was updated successfully, but these errors were encountered:
Hi, first of all thanks a lot for this library! So much better than the bluedroid based library. Solved a lot of issues.
I want an ESP32 to act as a server, to be precise as an HID bluetooth keyboard.
I need to connect to different clients (in my case a FireTV and an AppleTV) and to switch the connection to them at runtime. Only one should be connected at the same time.
I am able to pair and bond both of them. One after the other. In the list of bonded peers I have two peers afterwards.
Remark: It is possible to connect both of them at the same time, if advertising is not stopped after the first connect. But it does not make sense because both devices would receive the same keyboard keys. I cannot force certain keys to be send to a certain peer.
So to achieve switching between the two peers, I tried to:
NimBLEDevice::getServer()->disconnect(...)
// the currently connected peeradvertising->setScanFilter(true, true);
The whitelist filter works in principle (bonding is only possible based on the whitelist). But if a client is already bonded, it can reconnect no matter if there is a whitelist set in advertising or not.
So how can I force only a certain bonded client to connect to the NimBLEServer?
I tried to pair the HID without bonding,
NimBLEDevice::setSecurityAuth(false, false, false);
, but when doing so, reconnects completely fail. It seems that keyboards always need to be bonded, not only to be paired.The text was updated successfully, but these errors were encountered: