Bluetooth Paired Argon Works Only Once

I’ve worked through some examples on bluetooth and have been able to pair with my Android Galaxy S10 phone without issue

Here is what works:

  • pairing with AUTO, LEGACY_ONLY, and LESC_ONLY all work
  • Pairing IOCaps of NONE and DISPLAY_ONLY both work
  • Connecting either my own android app or LightBlue Explorer and then finding the bonded device and reading or writing characteristics

Here is what is not working:

  • close and reopen either my android app or LightBlue Explorer and try to work with the device a 2nd time

If I go into android bluetooth settings and unpair, then repair the argon both my example application and LightBlue Explorer will work again exactly once.

Any ideas on what might be happening?
On pairing, i see that bonding is set to 0, is that a problem?

Hi, and welcome to the community!
What happens if you power cycle the Argon?
Are you able to connect again?

If this is the case, perhaps the bluetooth connection that was established and closed, is still lingering somehow?

Interesting thought but no power-cycling the Argon does not change anything.

I really think that pairing indicating event.payload.status.bonded = false is a clue to the problem.

I get different results when I changed the android app to lookup the Argon as a bluetooth device by mac address instead of retrieving it by name as a bonded device, In this case the characteristic is getting calls to the receive callback but the peer is not indicating it is paired.

Has anyone else developed a BLE app with an Argon and paired it with a phone in a way that does not produce this problem?

Hey, sorry, I wouldn’t know. Maybe @Colleen can be of help?

Hey- Sorry for the delayed response, I’m on PTO with limited cell/wifi. One thing that may work is doing a device restore using the usb tool.

@rickkas7 have you seen this issue before?

Thanks for the tip @Colleen this is just a learning project so it can certainly wait.

Before I experiment with device restore using USB, this sounds like some kind of recovery for a corrupted device and I do not think that is happening here.

What would be helpful here is some documentation in relation to bluetooth bonding answering 3 questions:

  • Is bonding supported?
  • If it is supported, how does the persistence work?
  • A short example of bonding would be nice

Assuming that bonding is not supported, what is the benefit of pairing?