BLE stuck at discovering services and being disconnected

Hi, 

I was having a problem with BLE Services at my custom board based on nrf52811. So before, it works on many examples on nrf52 sdk (v.17.1.0), like heartrate using sensor simulation, BMS, etc. So I was trying to change service for BLE based on my project,  but there is a time that I do wrong configuration, and when I revert it back, BLE Services is not work properly anymore.

So current condition, I can see the BLE Services as well, but when I try to connect to it, it stuck on discovering services then disconnected.

So I was trying to revert back to example from nrf52 sdk, but it also not work properly. The condition is same with my firmware, which is only advertizing BLE services, but when I try to connect it, it stuck on discovering services and then being disconnected.

I already erase all firmware using nrf connect and reupload the softdevice, but still not work. Anybody has experience with this? thanks. really appreciate.

  • I'm not sure I understand your problem. I take it your custom board is running a client using the nRF52 17.1.0 SDK? And then you have a standard DK running one of the SDK ble_peripheral projects, for example the heart rate monitor. At first this worked. But you were not interested in a heart rate monitor or whatever so you started changing that example to something you wanted but it didn't work. And now when you try to go back to stage A (heart rate monitor working with your custom client, you can't get it to work?

    If so, I can think of million things that could go wrong here. Clearly SOMETHING is not reverted back to the initial state, the question is what and where. Pairing and address values stored under the hood (especially if you are using a BMS and not doing the pairing/bonding yourself) on both sides of the connection could be an issue. As you change services you have to be careful about addresses and bonding and be sure that all pairing information is deleted from both sides. The disconnect maybe due to pairing inconsistencies which is happening at the same time as service discovery.  Unfortunately, SoftDevice and the SDK do not provide the server application with any events during service discovery so that is a complete black box.

    How about a third-party client that you know works? It is able to connect and discover your altered peripheral's services? How about your reverted ble_peripheral?

Related