Description
I'm not an expert at all so bare with me.
I'm tryng to pair a GoPro with an ESP32-S3 using aioble. When i put the GoPro in pairing mode everithing works as it should, but when I try to reconnect after reboot, the paring part fails. On 2 boards, I have no idea why, it works most of the time, but i cannot replicate the same on any other board. The pair seems need to be called every time to allow to send any command.
Here a log of a 1st successful pair:
MPY: soft reboot
[INIT] Starting BLE scan-connect sequence...
[aioble] I: 29 (2, 0, None)
[aioble] I: get secret: 2 0 None
[aioble] I: 29 (10, 0, )
[aioble] I: get secret: 10 0 b'irk'
[aioble] I: 30 (10, , )
[aioble] I: set secret: (10, b'irk') b'\xbc<\xd4pZ;\x1d\xb7\xbd\nn\x16\xd2\x1c\xdaC'
[aioble] I: [aioble] I: 29 (2, 0, None)
[aioble] I: get secret: 2 0 None
Saving secret - Type: 10 Key (b64): aXJr Value (b64): vDzUcFo7Hbe9Cm4W0hzaQw==
[STEP 1] Begin scanning...
[aioble] I: 5 (1, , 0, -79, )
[aioble] I: 5 (1, , 4, -79, )
[aioble] I: 5 (0, , 0, -64, )
[aioble] I: 5 (0, , 4, -64, )
[aioble] I: 5 (1, , 0, -66, )
[aioble] I: 5 (1, , 4, -66, )
[aioble] I: 5 (1, , 0, -37, )
[aioble] I: 5 (1, , 4, -38, )
[aioble] I: 5 (1, , 3, -65, )
[aioble] I: 5 (1, , 3, -38, )
[aioble] I: 5 (1, , 0, -49, )
[aioble] I: 5 (1, , 4, -48, )
[aioble] I: 5 (1, , 0, -42, )
[aioble] I: 5 (1, , 4, -41, )
[aioble] I: 5 (0, , 0, -68, )
[aioble] I: 5 (1, , 0, -43, )
[aioble] I: 5 (1, , 4, -43, )
[aioble] I: 5 (1, , 3, -82, )
[aioble] I: 5 (1, , 0, -45, )
[aioble] I: 5 (1, , 4, -44, )
[aioble] I: 5 (1, , 0, -38, )
[aioble] I: 5 (1, , 4, -37, )
[aioble] I: 5 (1, , 3, -65, )
[aioble] I: 5 (1, , 3, -37, )
[aioble] I: 5 (1, , 3, -87, )
[aioble] I: 5 (1, , 0, -45, )
[aioble] I: 5 (1, , 4, -44, )
[aioble] I: 5 (1, , 0, -81, )
[aioble] I: 5 (1, , 4, -80, )
[aioble] I: 5 (1, , 3, -48, )
[aioble] I: 5 (1, , 0, -48, )
[aioble] I: 5 (1, , 4, -48, )
[aioble] I: 5 (1, , 0, -80, )
[aioble] I: 5 (1, , 4, -81, )
[aioble] I: 5 (1, , 0, -85, )
[aioble] I: 5 (1, , 4, -82, )
[aioble] I: 5 (1, , 0, -41, )
[aioble] I: 5 (1, , 4, -41, )
[aioble] I: 5 (1, , 0, -88, )
[aioble] I: 5 (1, , 0, -37, )
[aioble] I: 5 (1, , 4, -38, )
[aioble] I: 5 (1, , 0, -74, )
[aioble] I: 5 (1, , 3, -38, )
[aioble] I: 5 (1, , 0, -75, )
[aioble] I: 5 (1, , 4, -77, )
[aioble] I: 5 (1, , 0, -45, )
[aioble] I: 5 (1, , 4, -43, )
[aioble] I: 5 (0, , 0, -82, )
[aioble] I: 5 (0, , 4, -82, )
[SCAN] GoPro match found: GoPro 7630
──────────
[SCAN] Address : FA:4A:F7:8A:53:C4
[SCAN] RSSI : -45 dBm
[SCAN[aioble] I: 5 (1, , 0, -88, )
] Name : GoPro 7630
[SCAN] Services : ['UUID(0x[aioble] I: 5 (1, , 0, -60, )
[aioble] I: 5 (1, , 4, -60, )
[aioble] I: 5 (1, , 0, -43, )
[aioble] I: 5 (1, , 4, -43, )
[aioble] I: 5 (1, , 0, -74, )
[aioble] I: 5 (1, , 4, -75, )
fea6)']
[SCAN] ADV Raw : 0201020302a6fe0ffff2020205393f00c4538af74afa0f
──────────
[aioble] I: 6 ()
[STEP 2] Connecting to device...
[aioble] I: 7 (0, 1, )
[STEP 2] Connected successfully.
[STEP 3] Starting pairing...
[aioble] I: 29 (2, 0, )
[aioble] I: get secret: 2 0 b'\x01\xc4S\x8a\xf7J\xfa'
[aioble] I: 29 (2, 0, None)
[aioble] I: get secret: 2 0 None
[aioble] I: 29 (1, 0, )
[aioble] I: get secret: 1 0 b'\x00\x00\x00\x00\x00\x00\x00'
[aioble] I: 28 (0, 1, 0, 1, 16)
[aioble] I: encryption update 0 1 0 1 16
[aioble] I: 30 (1, , )
[aioble] I: set secret: (1, b'\x01\xc4S\x8a\xf7J\xfa') b'\x01\xc4S\x8a\xf7J\xfa\x00\x00\x00\x10\x00\x14Z\x00\x00zg\x04!h\xce+/\x84\x14\xab\x99hY\xf8&~$\x0f\xc3\x97\x8dk\xbc\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n?C\xd7B\xda\xe1\x9c^\xb0xa\x00m\xbf\xa2\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
[aioble] I: 30 (2, , )
[aioble] I: set secret: (2, b'\x01\xc4S\x8a\xf7J\xfa') b'\x01\xc4S\x8a\xf7J\xfa\x00\x00\x00\x10\x00=j\x00\x00\x15\xd3m^x\x92\x7fwt\xa57\xe8G\x8a\xf5kJ\x18\xbbq\xdc\x19\x0e\xfb\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00T\x11\xd1\xaex]\xad\xba\x13\x8c\xf4`t\xf4\x02\xdf\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
[aioble] I: Saving secret - Type: 10 Key (b64): aXJr Value (b64): vDzUcFo7Hbe9Cm4W0hzaQw==
[aioble] I: Saving secret - Type: 2 Key (b64): AcRTivdK+g== Value (b64): AcRTivdK+gAAABAAPWoAABXTbV54kn93dKU36EeK9WtKGLtx3BkO+wEAAAAAAAAAAAAAAAAAAAAAAFQR0a54Xa26E4z0YHT0At8BAAAAAAAAAAAAAAAAAA==
[aioble] I: Saving secret - Type: 1 Key (b64): AcRTivdK+g== Value (b64): AcRTivdK+gAAABAAFFoAAHpnBCFozisvhBSrmWhZ+CZ+JA/Dl41rvAEAAAAAAAAAAAAAAAAAAAAAAAo/Q9dC2uGcXrB4YQBtv6IBAAAAAAAAAAAAAAAAAA==
[STEP 3] Pairing successful.
[STEP 4] Discovering GoPro service...
[aioble] I: 9 (0, 45, 65, UUID(0xfea6))
[aioble] I: 10 (0, 0)
[STEP 4] GoPro service found.
[STEP 5] Discovering command response characteristic...
[aioble] I: 11 (0, 50, 49, 16, UUID('b5f90073-aa8d-11e3-9046-0002a5d5c51b'))
[aioble] I: 12 (0, 0)
[STEP 5] Characteristic found.
[STEP 6] Subscribing to notifications...
[aioble] I: 13 (0, 50, UUID(0x2902))
[aioble] I: 14 (0, 0)
[aioble] I: 17 (0, 50, 0)
[STEP 6] Subscribed to notifications.
[WAIT] Ready to receive notifications...
[STEP 8] Disconnecting from device...
[aioble] I: 8 (0, 1, )
[STEP 8] Disconnected successfully.
and here after reboot:
MPY: soft reboot
[INIT] Starting BLE scan-connect sequence...
[aioble] I: 29 (2, 0, None)
[aioble] I: get secret: 2 0 None
[aioble] I: 29 (10, 0, )
[aioble] I: get secret: 10 0 b'irk'
[aioble] I: 30 (10, , )
[aioble] I: set secret: (10, b'irk') b'4\x1e{\x9a\xb1(\x98\x8dY\x9b\xc5\x06\x18\xf5\xfc\xfa'
[aioble] I: [aioble] I: 29 (2, 0, None)
[aioble] I: get secret: 2 0 None
Saving secret - Type: 10 Key (b64): aXJr Value (b64): NB57mrEomI1Zm8UGGPX8+g==
[STEP 1] Begin scanning...
[aioble] I: 5 (1, , 0, -71, )
[aioble] I: 5 (1, , 4, -71, )
[aioble] I: 5 (1, , 0, -58, )
[aioble] I: 5 (1, , 4, -58, )
[aioble] I: 5 (1, , 0, -56, )
[aioble] I: 5 (0, , 0, -62, )
[aioble] I: 5 (0, , 4, -63, )
[aioble] I: 5 (1, , 0, -84, )
[aioble] I: 5 (1, , 3, -38, )
[aioble] I: 5 (1, , 0, -38, )
[aioble] I: 5 (1, , 4, -38, )
[aioble] I: 5 (0, , 0, -82, )
[aioble] I: 5 (1, , 0, -43, )
[aioble] I: 5 (1, , 4, -44, )
[aioble] I: 5 (1, , 0, -51, )
[aioble] I: 5 (1, , 4, -51, )
[SCAN] GoPro match found: GoPro 7630
──────────
[SCAN] Address : FA:4A:F7:8A:53:C4
[SCAN] RSSI : -43 dBm
[SCAN] Name : GoPro 7630
[SCAN] Services : ['UUID(0xfea6)']
[SCAN] ADV Raw : 0201020302a6fe0ffff2020201393f00c4538af74afa0f
──────────
[aioble] I: 6 ()
[STEP 2] Connecting to device...
[aioble] I: 7 (0, 1, )
[STEP 2] Connected successfully.
[STEP 3] Starting pairing...
[aioble] I: 29 (2, 0, )
[aioble] I: get secret: 2 0 b'\x01\xc4S\x8a\xf7J\xfa'
[aioble] I: 29 (2, 0, None)
[aioble] I: get secret: 2 0 None
[aioble] I: 29 (1, 0, )
[aioble] I: get secret: 1 0 b'\x00\x00\x00\x00\x00\x00\x00'
[aioble] I: 28 (0, 0, 0, 0, 0)
[aioble] I: encryption update 0 0 0 0 0
[ERROR] Pairing failed:
Any help would be appreciated.