Hi, it's been a while I didn't use the watch for my project, and today I experienced a lot of troubles regarding Ble. I set my peripheral in pairing no bonding mode (I first tried in pairing/bonding but no password).
My phone has succeded in connecting all the time, but not the bangle. I should say the success of the pairing is around 40%. This success rate is not bothering to conduct the tests I want.
For the rest, i am facing a "Not connected" error (caught after get primaryService method), or a Ble error 0x11 (Busy ).
Unfortunately, even during the data exchange of values, I faced weird behavior.
The communication stopped without having the 'gattserverdisconnected' callback triggered.
Even the Bluetooth communication used for debug to my computer stopped !
The peripheral, the computer and the bangle always stay close (never farer than 3m).
I started looking at my RSSI values for the different devices (values for devices 0 to 1m away):
Phone detecting my peripheral (-50 to -75 using nrf connect ).
Bangle detecting my peripheral (-85 to -95 using the value from BleScanner app ).
Phone detecting bangle (-70 to -100 using nrf connect).
I also used the setRSSIHandler to log the RSSI values of the signal during connection, It disconnect when values are around -85 and above (I can see the rate of the logs decreasing with the RSSI value).
So the problem for my disconnection seems to be that the signal strengh of the Bangle is too low.
Is there any way I can improve the signal strengh ? My issue is that the peripheral is behind the user (on his back), the body seems to affect the signal too strongly.
You can find attached my function I use to pair, but we already exchange about it, I don't think I am doing wrong.
I've been able to modify the peripheral strengh of the signal through software (nothing very crazy though) using the sd_ble_gap_tx_power_set function of the nrf SDK library. I also did the same with the bangle library.
The change on the bangle did not have visible effect. Maybe the disconnection issue is related to the min and max intervals set at the beginning of the connection ?