Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Pairing GoPro fails on reboot #1029

Open
@marcotidei

Description

@marcotidei

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions