Skip to content

Python SDK fails to open BLE on cameras that don't support COHN #756

@EricScottN

Description

@EricScottN

First ensure you are using a camera that is currently supported by Open GoPro. Any other tickets will be rejected.

Component
What is the bug in?

  • Python SDK

Describe the bug

Error occurs both when running any demo from the Python SDK, or when running the following simple script in Pycharm.

import asyncio

from open_gopro import WirelessGoPro

async def main() -> None:
    print("Establishing connection...")
    async with WirelessGoPro() as gopro:
        print("Yay! I'm connected via BLE, Wifi, opened, and ready to send / get data now!")

if __name__ == "__main__":
    asyncio.run(main())

Response timeout of 5 seconds when sending ActionId.RESPONSE_GET_COHN_STATUS!
Response timeout of 5 seconds when sending SettingId.LED!
Error while opening: TimeoutError()

BLE session will then be terminated and connect again. During second attempt will get as far as..

INFO | Done enabling notifications and then nothing will happen. I've waited for as long as 5 minutes and nothing else is logged.

To Reproduce
Steps to reproduce the behavior:

  1. Put GoPro in pairing mode
  2. Run script or demo

Expected behavior
No errors - demo should complete or "Yay! I'm connected via BLE, Wifi, opened, and ready to send / get data now!" printed to console

Logs

   MainThread:08:16:06.095 util.py                                   217 DEBUG    | Send cmd --> netsh wlan show interfaces
   MainThread:08:16:06.243 util.py                                   223 DEBUG    | Receive response --> 

There is 1 interface on the system: 



    Name                   : Wi-Fi

    Description            : Intel(R) Dual Band Wireless-AC 3168

    GUID                   : e4438be5-5a77-4544-837f-bdf1c7e0e54b

    Physical address       : d4:25:8b:25:d9:47

    Interface type         : Primary

    State                  : disconnected

    Radio status           : Hardware On

                             Software On



    Hosted network status  : Not available




   MainThread:08:16:06.243 wireless.py                                94 DEBUG    | Wifi setup. Using [WifiCli] driver::[Wi-Fi] interface
   MainThread:08:16:06.243 bleak_wrapper.py                          121 INFO     | Scanning for GoPro [A-Z0-9]{4} bluetooth devices...
   MainThread:08:16:07.583 scanner.py                                117 DEBUG    | Received E1:4D:96:CD:6D:EB: GoPro 3652.
   MainThread:08:16:07.584 bleak_wrapper.py                          134 INFO     | 	Discovered: E1:4D:96:CD:6D:EB: GoPro 3652
   MainThread:08:16:07.599 scanner.py                                212 DEBUG    | 1 devices found. Watcher status: <BluetoothLEAdvertisementWatcherStatus.STOPPED: 3>.
   MainThread:08:16:07.601 bleak_wrapper.py                          149 INFO     | Found 1 matching devices.
   MainThread:08:16:07.606 client.py                                 108 INFO     | Establishing the BLE connection
   MainThread:08:16:07.615 bleak_wrapper.py                          216 INFO     | Establishing BLE connection to E1:4D:96:CD:6D:EB: GoPro 3652...
   MainThread:08:16:07.655 client.py                                 300 DEBUG    | Connecting to BLE device @ E1:4D:96:CD:6D:EB
   MainThread:08:16:08.051 client.py                                 683 DEBUG    | getting services (service_cache_mode=None, cache_mode=None)...
      Dummy-1:08:16:13.904 client.py                                 378 DEBUG    | session_status_changed_event_handler: id: BluetoothLE#BluetoothLEd4:25:8b:25:d9:4b-e1:4d:96:cd:6d:eb, error: <BluetoothError.SUCCESS: 0>, status: <GattSessionStatus.ACTIVE: 1>
   MainThread:08:16:13.904 bleak_wrapper.py                          260 DEBUG    | Attempting to pair...
   MainThread:08:16:13.908 bleak_wrapper.py                          303 DEBUG    | Pairing complete!
   MainThread:08:16:13.908 bleak_wrapper.py                          361 INFO     | Discovering characteristics...
   MainThread:08:16:13.910 bleak_wrapper.py                          369 DEBUG    | [Service] Generic Attribute Service
   MainThread:08:16:13.910 bleak_wrapper.py                          369 DEBUG    | [Service] Generic Access Service
   MainThread:08:16:13.910 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Device Name @ handle 3: READ
   MainThread:08:16:13.910 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Appearance @ handle 5: READ
   MainThread:08:16:13.910 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Preferred Connection Parameters @ handle 7: READ
   MainThread:08:16:13.910 bleak_wrapper.py                          369 DEBUG    | [Service] Battery Service
      Dummy-2:08:16:14.187 client.py                                 395 DEBUG    | max_pdu_size_changed_handler: 517
   MainThread:08:16:14.319 client.py                                 883 DEBUG    | Read Descriptor 000C : bytearray(b'\x00\x00')
   MainThread:08:16:14.319 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Battery Level @ handle 10: READ|NOTIFY
   MainThread:08:16:14.319 bleak_wrapper.py                          369 DEBUG    | [Service] Device Information Service
   MainThread:08:16:14.319 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Manufacturer Name @ handle 14: READ
   MainThread:08:16:14.319 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Model Number @ handle 16: READ
   MainThread:08:16:14.319 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Serial Number @ handle 18: READ
   MainThread:08:16:14.319 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Hardware Revision @ handle 20: READ
   MainThread:08:16:14.319 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Firmware Revision @ handle 22: READ
   MainThread:08:16:14.319 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Software Revision @ handle 24: READ
   MainThread:08:16:14.319 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] System ID @ handle 26: READ
   MainThread:08:16:14.319 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] PNP ID @ handle 28: READ
   MainThread:08:16:14.319 bleak_wrapper.py                          369 DEBUG    | [Service] Wifi Access Point Service
   MainThread:08:16:14.319 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Wifi AP SSID @ handle 31: READ|WRITE_YES_RSP
   MainThread:08:16:14.319 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Wifi AP Password @ handle 33: READ|WRITE_YES_RSP
   MainThread:08:16:14.319 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Wifi Power @ handle 35: WRITE_YES_RSP
   MainThread:08:16:14.438 client.py                                 883 DEBUG    | Read Descriptor 0027 : bytearray(b'\x00\x00')
   MainThread:08:16:14.438 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Wifi State @ handle 37: READ|INDICATE
   MainThread:08:16:14.438 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] CSI Password @ handle 40: READ
   MainThread:08:16:14.438 bleak_wrapper.py                          369 DEBUG    | [Service] Control and Query Service
   MainThread:08:16:14.438 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Command @ handle 43: WRITE_YES_RSP
   MainThread:08:16:14.556 client.py                                 883 DEBUG    | Read Descriptor 002F : bytearray(b'\x00\x00')
   MainThread:08:16:14.556 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Command Response @ handle 45: NOTIFY
   MainThread:08:16:14.556 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Settings @ handle 48: WRITE_YES_RSP
   MainThread:08:16:14.679 client.py                                 883 DEBUG    | Read Descriptor 0034 : bytearray(b'\x00\x00')
   MainThread:08:16:14.679 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Settings Response @ handle 50: NOTIFY
   MainThread:08:16:14.679 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Query @ handle 53: WRITE_YES_RSP
   MainThread:08:16:14.800 client.py                                 883 DEBUG    | Read Descriptor 0039 : bytearray(b'\x00\x00')
   MainThread:08:16:14.800 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Query Response @ handle 55: NOTIFY
   MainThread:08:16:14.800 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Sensor @ handle 58: WRITE_YES_RSP
   MainThread:08:16:14.913 client.py                                 883 DEBUG    | Read Descriptor 003E : bytearray(b'\x00\x00')
   MainThread:08:16:14.921 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Sensor Response @ handle 60: NOTIFY
   MainThread:08:16:14.921 bleak_wrapper.py                          369 DEBUG    | [Service] Camera Management Service
   MainThread:08:16:14.921 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Camera Management @ handle 64: WRITE_YES_RSP
   MainThread:08:16:15.040 client.py                                 883 DEBUG    | Read Descriptor 0044 : bytearray(b'\x00\x00')
   MainThread:08:16:15.042 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Camera Management Response @ handle 66: NOTIFY
   MainThread:08:16:15.042 bleak_wrapper.py                          369 DEBUG    | [Service] Unknown Service
   MainThread:08:16:15.159 client.py                                 883 DEBUG    | Read Descriptor 0048 : bytearray(b'\x00\x00')
   MainThread:08:16:15.159 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Internal 81 @ handle 70: NOTIFY
   MainThread:08:16:15.159 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Internal 82 @ handle 73: WRITE_YES_RSP
   MainThread:08:16:15.279 client.py                                 883 DEBUG    | Read Descriptor 004D : bytearray(b'\x00\x00')
   MainThread:08:16:15.279 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Internal 83 @ handle 75: NOTIFY
   MainThread:08:16:15.399 client.py                                 883 DEBUG    | Read Descriptor 0050 : bytearray(b'\x00\x00')
   MainThread:08:16:15.399 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Internal 84 @ handle 78: NOTIFY
   MainThread:08:16:15.399 bleak_wrapper.py                          369 DEBUG    | [Service] Tx Power Service
   MainThread:08:16:15.399 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Tx Power Level @ handle 82: READ
   MainThread:08:16:15.399 bleak_wrapper.py                          406 INFO     | Done discovering characteristics!
   MainThread:08:16:15.407 bleak_wrapper.py                          324 INFO     | Enabling notifications...
   MainThread:08:16:15.416 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char 00002a19-0000-1000-8000-00805f9b34fb
   MainThread:08:16:15.520 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90073-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:16:15.632 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90075-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:16:15.761 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90077-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:16:15.877 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90079-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:16:16.001 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90092-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:16:16.120 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90081-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:16:16.228 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90083-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:16:16.356 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90084-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:16:16.470 bleak_wrapper.py                          330 INFO     | Done enabling notifications
   MainThread:08:16:16.486 gopro_wireless.py                         806 INFO     | 
<<<<<<<<--------------
    "id" : "QueryCmdId.REG_STATUS_VAL_UPDATE",
    "status_id" : "StatusId.ENCODING",
    "protocol" : "Protocol.BLE",
    "uuid" : "Query",
<<<<<<<<--------------

   MainThread:08:16:16.492 gopro_wireless.py                         810 DEBUG    | Writing to [Query] UUID: 20:02:53:0a
   MainThread:08:16:16.502 bleak_wrapper.py                          101 DEBUG    | Writing to Query: b5f90076aa8d11e390460002a5d5c51b
   MainThread:08:16:16.599 gopro_wireless.py                         763 DEBUG    | Received response on BleUUID [Query Response]: 05:53:00:0a:01:00
   MainThread:08:16:16.599 gopro_wireless.py                         738 INFO     | 
-------------->>>>>>>>
    "id" : "QueryCmdId.REG_STATUS_VAL_UPDATE",
    "status" : "ErrorCode.SUCCESS",
    "protocol" : "Protocol.BLE",
    "data" : {
        "StatusId.ENCODING" : "False",
    },
-------------->>>>>>>>

   MainThread:08:16:16.609 gopro_wireless.py                         806 INFO     | 
<<<<<<<<--------------
    "id" : "QueryCmdId.REG_STATUS_VAL_UPDATE",
    "status_id" : "StatusId.BUSY",
    "protocol" : "Protocol.BLE",
    "uuid" : "Query",
<<<<<<<<--------------

   MainThread:08:16:16.620 gopro_wireless.py                         810 DEBUG    | Writing to [Query] UUID: 20:02:53:08
   MainThread:08:16:16.620 bleak_wrapper.py                          101 DEBUG    | Writing to Query: b5f90076aa8d11e390460002a5d5c51b
   MainThread:08:16:16.716 gopro_wireless.py                         763 DEBUG    | Received response on BleUUID [Query Response]: 05:53:00:08:01:00
   MainThread:08:16:16.720 gopro_wireless.py                         738 INFO     | 
-------------->>>>>>>>
    "id" : "QueryCmdId.REG_STATUS_VAL_UPDATE",
    "status" : "ErrorCode.SUCCESS",
    "protocol" : "Protocol.BLE",
    "data" : {
        "StatusId.BUSY" : "False",
    },
-------------->>>>>>>>

   MainThread:08:16:16.732 gopro_wireless.py                         685 INFO     | BLE is ready!
   MainThread:08:16:16.739 gopro_wireless.py                         806 INFO     | 
<<<<<<<<--------------
    "id" : "CmdId.SET_THIRD_PARTY_CLIENT_INFO",
    "protocol" : "Protocol.BLE",
    "uuid" : "Command",
<<<<<<<<--------------

   MainThread:08:16:16.751 gopro_wireless.py                         810 DEBUG    | Writing to [Command] UUID: 20:01:50
   MainThread:08:16:16.751 bleak_wrapper.py                          101 DEBUG    | Writing to Command: b5f90072aa8d11e390460002a5d5c51b
   MainThread:08:16:16.837 gopro_wireless.py                         763 DEBUG    | Received response on BleUUID [Command Response]: 02:50:00
   MainThread:08:16:16.837 gopro_wireless.py                         738 INFO     | 
-------------->>>>>>>>
    "id" : "CmdId.SET_THIRD_PARTY_CLIENT_INFO",
    "status" : "ErrorCode.SUCCESS",
    "protocol" : "Protocol.BLE",
-------------->>>>>>>>

   MainThread:08:16:17.096 gopro_wireless.py                         806 INFO     | 
<<<<<<<<--------------
    "id" : "CmdId.SET_DATE_TIME_DST",
    "protocol" : "Protocol.BLE",
    "uuid" : "Command",
    "date_time" : "2025-05-19 08:16:17.096111-04:00",
    "tz_offset" : "-240",
    "is_dst" : "True",
<<<<<<<<--------------

   MainThread:08:16:17.096 gopro_wireless.py                         810 DEBUG    | Writing to [Command] UUID: 20:0c:0f:0a:07:e9:05:13:08:10:11:ff:10:01
   MainThread:08:16:17.096 bleak_wrapper.py                          101 DEBUG    | Writing to Command: b5f90072aa8d11e390460002a5d5c51b
   MainThread:08:16:17.193 gopro_wireless.py                         763 DEBUG    | Received response on BleUUID [Command Response]: 02:0f:00
   MainThread:08:16:17.200 gopro_wireless.py                         738 INFO     | 
-------------->>>>>>>>
    "id" : "CmdId.SET_DATE_TIME_DST",
    "status" : "ErrorCode.SUCCESS",
    "protocol" : "Protocol.BLE",
-------------->>>>>>>>

   MainThread:08:16:17.211 gopro_wireless.py                         806 INFO     | 
<<<<<<<<--------------
    "id" : "CmdId.GET_THIRD_PARTY_API_VERSION",
    "protocol" : "Protocol.BLE",
    "uuid" : "Command",
<<<<<<<<--------------

   MainThread:08:16:17.221 gopro_wireless.py                         810 DEBUG    | Writing to [Command] UUID: 20:01:51
   MainThread:08:16:17.221 bleak_wrapper.py                          101 DEBUG    | Writing to Command: b5f90072aa8d11e390460002a5d5c51b
   MainThread:08:16:17.305 gopro_wireless.py                         763 DEBUG    | Received response on BleUUID [Command Response]: 06:51:00:01:02:01:00
   MainThread:08:16:17.305 gopro_wireless.py                         738 INFO     | 
-------------->>>>>>>>
    "id" : "CmdId.GET_THIRD_PARTY_API_VERSION",
    "status" : "ErrorCode.SUCCESS",
    "protocol" : "Protocol.BLE",
    "data" : "2.0",
-------------->>>>>>>>

   MainThread:08:16:17.325 gopro_wireless.py                         453 INFO     | Using Open GoPro API version 2.0
   MainThread:08:16:17.337 cohn_feature.py                            65 DEBUG    | Waiting for COHN to be ready
   MainThread:08:16:17.369 gopro_wireless.py                         806 INFO     | 
<<<<<<<<--------------
    "id" : "ActionId.REQUEST_GET_COHN_STATUS",
    "feature_id" : "FeatureId.QUERY",
    "protocol" : "Protocol.BLE",
    "uuid" : "Query",
    "register_cohn_status" : "1",
<<<<<<<<--------------

   MainThread:08:16:17.373 gopro_wireless.py                         810 DEBUG    | Writing to [Query] UUID: 20:04:f5:6f:08:01
   MainThread:08:16:17.373 bleak_wrapper.py                          101 DEBUG    | Writing to Query: b5f90076aa8d11e390460002a5d5c51b
   MainThread:08:16:17.499 gopro_wireless.py                         763 DEBUG    | Received response on BleUUID [Query Response]: 02:f5:02
   MainThread:08:16:18.337 gopro_wireless.py                         806 INFO     | 
<<<<<<<<--------------
    "id" : "SettingId.LED",
    "setting_id" : "SettingId.LED",
    "protocol" : "Protocol.BLE",
    "uuid" : "Settings",
<<<<<<<<--------------

   MainThread:08:16:18.337 gopro_wireless.py                         810 DEBUG    | Writing to [Settings] UUID: 20:03:5b:01:42
   MainThread:08:16:18.349 bleak_wrapper.py                          101 DEBUG    | Writing to Settings: b5f90074aa8d11e390460002a5d5c51b
   MainThread:08:16:18.451 gopro_wireless.py                         763 DEBUG    | Received response on BleUUID [Settings Response]: 02:5b:00
   MainThread:08:16:18.451 gopro_wireless.py                         744 INFO     | 
----ASYNC----->>>>>>>>
    "id" : "SettingId.LED",
    "status" : "ErrorCode.SUCCESS",
    "protocol" : "Protocol.BLE",
----ASYNC----->>>>>>>>

   MainThread:08:16:22.512 gopro_wireless.py                         817 ERROR    | Response timeout of 5 seconds when sending ActionId.RESPONSE_GET_COHN_STATUS!
   MainThread:08:16:23.462 gopro_wireless.py                         817 ERROR    | Response timeout of 5 seconds when sending SettingId.LED!
   MainThread:08:16:48.984 gopro_wireless.py                         763 DEBUG    | Received response on BleUUID [Query Response]: 08:93:00:08:01:00:0a:01:00
   MainThread:08:16:48.984 gopro_wireless.py                         744 INFO     | 
----ASYNC----->>>>>>>>
    "id" : "QueryCmdId.STATUS_VAL_PUSH",
    "status" : "ErrorCode.SUCCESS",
    "protocol" : "Protocol.BLE",
    "data" : {
        "StatusId.BUSY" : "False",
        "StatusId.ENCODING" : "False",
    },
----ASYNC----->>>>>>>>

   MainThread:08:17:17.355 gopro_wireless.py                         477 ERROR    | Error while opening: TimeoutError()
   MainThread:08:17:17.371 util.py                                   217 DEBUG    | Send cmd --> netsh wlan disconnect interface="Wi-Fi"
   MainThread:08:17:17.500 util.py                                   223 DEBUG    | Receive response --> 


   MainThread:08:17:17.500 client.py                                 132 INFO     | Terminating the BLE connection
   MainThread:08:17:17.500 bleak_wrapper.py                          416 INFO     | Disconnecting...
   MainThread:08:17:17.500 client.py                                 515 DEBUG    | Disconnecting from BLE device...
      Dummy-2:08:17:20.743 client.py                                 395 DEBUG    | max_pdu_size_changed_handler: 23
      Dummy-2:08:17:20.743 client.py                                 378 DEBUG    | session_status_changed_event_handler: id: BluetoothLE#BluetoothLEd4:25:8b:25:d9:4b-e1:4d:96:cd:6d:eb, error: <BluetoothError.SUCCESS: 0>, status: <GattSessionStatus.CLOSED: 0>
   MainThread:08:17:20.743 client.py                                 330 DEBUG    | closing requester
   MainThread:08:17:20.743 client.py                                 347 DEBUG    | closing session
   MainThread:08:17:20.743 bleak_wrapper.py                          420 INFO     | Device disconnected!
   MainThread:08:17:20.743 bleak_wrapper.py                          121 INFO     | Scanning for GoPro [A-Z0-9]{4} bluetooth devices...
   MainThread:08:17:21.181 scanner.py                                117 DEBUG    | Received E1:4D:96:CD:6D:EB: GoPro 3652.
   MainThread:08:17:21.181 bleak_wrapper.py                          134 INFO     | 	Discovered: E1:4D:96:CD:6D:EB: GoPro 3652
   MainThread:08:17:21.195 scanner.py                                212 DEBUG    | 1 devices found. Watcher status: <BluetoothLEAdvertisementWatcherStatus.STOPPED: 3>.
   MainThread:08:17:21.195 bleak_wrapper.py                          149 INFO     | Found 1 matching devices.
   MainThread:08:17:21.205 client.py                                 108 INFO     | Establishing the BLE connection
   MainThread:08:17:21.211 bleak_wrapper.py                          216 INFO     | Establishing BLE connection to E1:4D:96:CD:6D:EB: GoPro 3652...
   MainThread:08:17:21.211 client.py                                 300 DEBUG    | Connecting to BLE device @ E1:4D:96:CD:6D:EB
   MainThread:08:17:21.568 client.py                                 683 DEBUG    | getting services (service_cache_mode=None, cache_mode=None)...
      Dummy-3:08:17:31.384 client.py                                 378 DEBUG    | session_status_changed_event_handler: id: BluetoothLE#BluetoothLEd4:25:8b:25:d9:4b-e1:4d:96:cd:6d:eb, error: <BluetoothError.SUCCESS: 0>, status: <GattSessionStatus.ACTIVE: 1>
   MainThread:08:17:31.384 bleak_wrapper.py                          260 DEBUG    | Attempting to pair...
   MainThread:08:17:31.387 bleak_wrapper.py                          303 DEBUG    | Pairing complete!
   MainThread:08:17:31.387 bleak_wrapper.py                          361 INFO     | Discovering characteristics...
   MainThread:08:17:31.388 bleak_wrapper.py                          369 DEBUG    | [Service] Generic Attribute Service
   MainThread:08:17:31.388 bleak_wrapper.py                          369 DEBUG    | [Service] Generic Access Service
   MainThread:08:17:31.388 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Device Name @ handle 3: READ
   MainThread:08:17:31.388 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Appearance @ handle 5: READ
   MainThread:08:17:31.388 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Preferred Connection Parameters @ handle 7: READ
   MainThread:08:17:31.388 bleak_wrapper.py                          369 DEBUG    | [Service] Battery Service
      Dummy-3:08:17:31.637 client.py                                 395 DEBUG    | max_pdu_size_changed_handler: 517
   MainThread:08:17:31.755 client.py                                 883 DEBUG    | Read Descriptor 000C : bytearray(b'\x00\x00')
   MainThread:08:17:31.755 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Battery Level @ handle 10: READ|NOTIFY
   MainThread:08:17:31.755 bleak_wrapper.py                          369 DEBUG    | [Service] Device Information Service
   MainThread:08:17:31.755 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Manufacturer Name @ handle 14: READ
   MainThread:08:17:31.755 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Model Number @ handle 16: READ
   MainThread:08:17:31.755 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Serial Number @ handle 18: READ
   MainThread:08:17:31.755 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Hardware Revision @ handle 20: READ
   MainThread:08:17:31.755 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Firmware Revision @ handle 22: READ
   MainThread:08:17:31.755 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Software Revision @ handle 24: READ
   MainThread:08:17:31.755 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] System ID @ handle 26: READ
   MainThread:08:17:31.755 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] PNP ID @ handle 28: READ
   MainThread:08:17:31.755 bleak_wrapper.py                          369 DEBUG    | [Service] Wifi Access Point Service
   MainThread:08:17:31.755 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Wifi AP SSID @ handle 31: READ|WRITE_YES_RSP
   MainThread:08:17:31.755 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Wifi AP Password @ handle 33: READ|WRITE_YES_RSP
   MainThread:08:17:31.755 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Wifi Power @ handle 35: WRITE_YES_RSP
   MainThread:08:17:31.868 client.py                                 883 DEBUG    | Read Descriptor 0027 : bytearray(b'\x00\x00')
   MainThread:08:17:31.868 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Wifi State @ handle 37: READ|INDICATE
   MainThread:08:17:31.868 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] CSI Password @ handle 40: READ
   MainThread:08:17:31.868 bleak_wrapper.py                          369 DEBUG    | [Service] Control and Query Service
   MainThread:08:17:31.868 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Command @ handle 43: WRITE_YES_RSP
   MainThread:08:17:31.982 client.py                                 883 DEBUG    | Read Descriptor 002F : bytearray(b'\x00\x00')
   MainThread:08:17:31.982 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Command Response @ handle 45: NOTIFY
   MainThread:08:17:31.982 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Settings @ handle 48: WRITE_YES_RSP
   MainThread:08:17:32.094 client.py                                 883 DEBUG    | Read Descriptor 0034 : bytearray(b'\x00\x00')
   MainThread:08:17:32.094 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Settings Response @ handle 50: NOTIFY
   MainThread:08:17:32.094 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Query @ handle 53: WRITE_YES_RSP
   MainThread:08:17:32.208 client.py                                 883 DEBUG    | Read Descriptor 0039 : bytearray(b'\x00\x00')
   MainThread:08:17:32.208 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Query Response @ handle 55: NOTIFY
   MainThread:08:17:32.208 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Sensor @ handle 58: WRITE_YES_RSP
   MainThread:08:17:32.304 client.py                                 883 DEBUG    | Read Descriptor 003E : bytearray(b'\x00\x00')
   MainThread:08:17:32.320 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Sensor Response @ handle 60: NOTIFY
   MainThread:08:17:32.320 bleak_wrapper.py                          369 DEBUG    | [Service] Camera Management Service
   MainThread:08:17:32.320 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Camera Management @ handle 64: WRITE_YES_RSP
   MainThread:08:17:32.418 client.py                                 883 DEBUG    | Read Descriptor 0044 : bytearray(b'\x00\x00')
   MainThread:08:17:32.418 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Camera Management Response @ handle 66: NOTIFY
   MainThread:08:17:32.418 bleak_wrapper.py                          369 DEBUG    | [Service] Unknown Service
   MainThread:08:17:32.544 client.py                                 883 DEBUG    | Read Descriptor 0048 : bytearray(b'\x00\x00')
   MainThread:08:17:32.544 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Internal 81 @ handle 70: NOTIFY
   MainThread:08:17:32.544 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Internal 82 @ handle 73: WRITE_YES_RSP
   MainThread:08:17:32.645 client.py                                 883 DEBUG    | Read Descriptor 004D : bytearray(b'\x00\x00')
   MainThread:08:17:32.645 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Internal 83 @ handle 75: NOTIFY
   MainThread:08:17:32.759 client.py                                 883 DEBUG    | Read Descriptor 0050 : bytearray(b'\x00\x00')
   MainThread:08:17:32.759 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Internal 84 @ handle 78: NOTIFY
   MainThread:08:17:32.759 bleak_wrapper.py                          369 DEBUG    | [Service] Tx Power Service
   MainThread:08:17:32.759 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Tx Power Level @ handle 82: READ
   MainThread:08:17:32.759 bleak_wrapper.py                          406 INFO     | Done discovering characteristics!
   MainThread:08:17:32.774 bleak_wrapper.py                          324 INFO     | Enabling notifications...
   MainThread:08:17:32.774 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char 00002a19-0000-1000-8000-00805f9b34fb
   MainThread:08:17:32.871 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90073-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:17:32.990 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90075-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:17:33.107 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90077-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:17:33.210 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90079-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:17:33.331 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90092-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:17:33.438 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90081-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:17:33.555 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90083-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:17:33.664 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90084-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:17:33.778 bleak_wrapper.py                          330 INFO     | Done enabling notifications
   MainThread:08:17:33.778 gopro_wireless.py                         806 INFO     | 
<<<<<<<<--------------
    "id" : "QueryCmdId.REG_STATUS_VAL_UPDATE",
    "status_id" : "StatusId.ENCODING",
    "protocol" : "Protocol.BLE",
    "uuid" : "Query",
<<<<<<<<--------------

   MainThread:08:17:33.794 gopro_wireless.py                         810 DEBUG    | Writing to [Query] UUID: 20:02:53:0a
   MainThread:08:17:33.794 bleak_wrapper.py                          101 DEBUG    | Writing to Query: b5f90076aa8d11e390460002a5d5c51b
   MainThread:08:17:33.890 gopro_wireless.py                         763 DEBUG    | Received response on BleUUID [Query Response]: 05:53:00:0a:01:00
   MainThread:08:17:33.890 gopro_wireless.py                         744 INFO     | 
----ASYNC----->>>>>>>>
    "id" : "QueryCmdId.REG_STATUS_VAL_UPDATE",
    "status" : "ErrorCode.SUCCESS",
    "protocol" : "Protocol.BLE",
    "data" : {
        "StatusId.ENCODING" : "False",
    },
----ASYNC----->>>>>>>>

   MainThread:08:17:38.909 gopro_wireless.py                         817 ERROR    | Response timeout of 5 seconds when sending QueryCmdId.REG_STATUS_VAL_UPDATE!
   MainThread:08:17:38.909 gopro_wireless.py                         477 ERROR    | Error while opening: ResponseTimeout('Response timeout occurred of 5 seconds')
   MainThread:08:17:38.946 util.py                                   217 DEBUG    | Send cmd --> netsh wlan disconnect interface="Wi-Fi"
   MainThread:08:17:39.078 util.py                                   223 DEBUG    | Receive response --> 


   MainThread:08:17:39.078 client.py                                 132 INFO     | Terminating the BLE connection
   MainThread:08:17:39.078 bleak_wrapper.py                          416 INFO     | Disconnecting...
   MainThread:08:17:39.088 client.py                                 515 DEBUG    | Disconnecting from BLE device...
      Dummy-2:08:17:42.336 client.py                                 378 DEBUG    | session_status_changed_event_handler: id: BluetoothLE#BluetoothLEd4:25:8b:25:d9:4b-e1:4d:96:cd:6d:eb, error: <BluetoothError.SUCCESS: 0>, status: <GattSessionStatus.CLOSED: 0>
      Dummy-4:08:17:42.336 client.py                                 395 DEBUG    | max_pdu_size_changed_handler: 23
   MainThread:08:17:42.336 client.py                                 330 DEBUG    | closing requester
   MainThread:08:17:42.336 client.py                                 347 DEBUG    | closing session
   MainThread:08:17:42.336 bleak_wrapper.py                          420 INFO     | Device disconnected!
   MainThread:08:17:42.336 bleak_wrapper.py                          121 INFO     | Scanning for GoPro [A-Z0-9]{4} bluetooth devices...
   MainThread:08:17:44.668 scanner.py                                117 DEBUG    | Received E1:4D:96:CD:6D:EB: GoPro 3652.
   MainThread:08:17:44.668 bleak_wrapper.py                          134 INFO     | 	Discovered: E1:4D:96:CD:6D:EB: GoPro 3652
   MainThread:08:17:44.684 scanner.py                                212 DEBUG    | 1 devices found. Watcher status: <BluetoothLEAdvertisementWatcherStatus.STOPPED: 3>.
   MainThread:08:17:44.684 bleak_wrapper.py                          149 INFO     | Found 1 matching devices.
   MainThread:08:17:44.684 client.py                                 108 INFO     | Establishing the BLE connection
   MainThread:08:17:44.684 bleak_wrapper.py                          216 INFO     | Establishing BLE connection to E1:4D:96:CD:6D:EB: GoPro 3652...
   MainThread:08:17:44.695 scanner.py                                117 DEBUG    | Received A4:C1:38:0E:80:A7: ihoment_H6126_80A7.
   MainThread:08:17:44.695 client.py                                 300 DEBUG    | Connecting to BLE device @ E1:4D:96:CD:6D:EB
   MainThread:08:17:44.968 client.py                                 683 DEBUG    | getting services (service_cache_mode=None, cache_mode=None)...
      Dummy-5:08:18:03.344 client.py                                 378 DEBUG    | session_status_changed_event_handler: id: BluetoothLE#BluetoothLEd4:25:8b:25:d9:4b-e1:4d:96:cd:6d:eb, error: <BluetoothError.SUCCESS: 0>, status: <GattSessionStatus.ACTIVE: 1>
   MainThread:08:18:03.344 bleak_wrapper.py                          260 DEBUG    | Attempting to pair...
   MainThread:08:18:03.346 bleak_wrapper.py                          303 DEBUG    | Pairing complete!
   MainThread:08:18:03.346 bleak_wrapper.py                          361 INFO     | Discovering characteristics...
   MainThread:08:18:03.346 bleak_wrapper.py                          369 DEBUG    | [Service] Generic Attribute Service
   MainThread:08:18:03.346 bleak_wrapper.py                          369 DEBUG    | [Service] Generic Access Service
   MainThread:08:18:03.346 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Device Name @ handle 3: READ
   MainThread:08:18:03.346 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Appearance @ handle 5: READ
   MainThread:08:18:03.346 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Preferred Connection Parameters @ handle 7: READ
   MainThread:08:18:03.346 bleak_wrapper.py                          369 DEBUG    | [Service] Battery Service
      Dummy-6:08:18:06.110 client.py                                 395 DEBUG    | max_pdu_size_changed_handler: 517
   MainThread:08:18:06.240 client.py                                 883 DEBUG    | Read Descriptor 000C : bytearray(b'\x00\x00')
   MainThread:08:18:06.240 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Battery Level @ handle 10: READ|NOTIFY
   MainThread:08:18:06.240 bleak_wrapper.py                          369 DEBUG    | [Service] Device Information Service
   MainThread:08:18:06.240 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Manufacturer Name @ handle 14: READ
   MainThread:08:18:06.240 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Model Number @ handle 16: READ
   MainThread:08:18:06.240 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Serial Number @ handle 18: READ
   MainThread:08:18:06.240 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Hardware Revision @ handle 20: READ
   MainThread:08:18:06.240 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Firmware Revision @ handle 22: READ
   MainThread:08:18:06.240 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Software Revision @ handle 24: READ
   MainThread:08:18:06.240 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] System ID @ handle 26: READ
   MainThread:08:18:06.240 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] PNP ID @ handle 28: READ
   MainThread:08:18:06.240 bleak_wrapper.py                          369 DEBUG    | [Service] Wifi Access Point Service
   MainThread:08:18:06.240 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Wifi AP SSID @ handle 31: READ|WRITE_YES_RSP
   MainThread:08:18:06.240 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Wifi AP Password @ handle 33: READ|WRITE_YES_RSP
   MainThread:08:18:06.240 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Wifi Power @ handle 35: WRITE_YES_RSP
   MainThread:08:18:06.403 client.py                                 883 DEBUG    | Read Descriptor 0027 : bytearray(b'\x00\x00')
   MainThread:08:18:06.403 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Wifi State @ handle 37: READ|INDICATE
   MainThread:08:18:06.403 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] CSI Password @ handle 40: READ
   MainThread:08:18:06.403 bleak_wrapper.py                          369 DEBUG    | [Service] Control and Query Service
   MainThread:08:18:06.403 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Command @ handle 43: WRITE_YES_RSP
   MainThread:08:18:06.519 client.py                                 883 DEBUG    | Read Descriptor 002F : bytearray(b'\x00\x00')
   MainThread:08:18:06.519 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Command Response @ handle 45: NOTIFY
   MainThread:08:18:06.519 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Settings @ handle 48: WRITE_YES_RSP
   MainThread:08:18:06.683 client.py                                 883 DEBUG    | Read Descriptor 0034 : bytearray(b'\x00\x00')
   MainThread:08:18:06.683 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Settings Response @ handle 50: NOTIFY
   MainThread:08:18:06.683 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Query @ handle 53: WRITE_YES_RSP
   MainThread:08:18:06.854 client.py                                 883 DEBUG    | Read Descriptor 0039 : bytearray(b'\x00\x00')
   MainThread:08:18:06.854 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Query Response @ handle 55: NOTIFY
   MainThread:08:18:06.854 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Sensor @ handle 58: WRITE_YES_RSP
   MainThread:08:18:06.967 client.py                                 883 DEBUG    | Read Descriptor 003E : bytearray(b'\x00\x00')
   MainThread:08:18:06.967 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Sensor Response @ handle 60: NOTIFY
   MainThread:08:18:06.967 bleak_wrapper.py                          369 DEBUG    | [Service] Camera Management Service
   MainThread:08:18:06.967 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Camera Management @ handle 64: WRITE_YES_RSP
   MainThread:08:18:07.080 client.py                                 883 DEBUG    | Read Descriptor 0044 : bytearray(b'\x00\x00')
   MainThread:08:18:07.080 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Camera Management Response @ handle 66: NOTIFY
   MainThread:08:18:07.080 bleak_wrapper.py                          369 DEBUG    | [Service] Unknown Service
   MainThread:08:18:07.194 client.py                                 883 DEBUG    | Read Descriptor 0048 : bytearray(b'\x00\x00')
   MainThread:08:18:07.196 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Internal 81 @ handle 70: NOTIFY
   MainThread:08:18:07.196 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Internal 82 @ handle 73: WRITE_YES_RSP
   MainThread:08:18:07.307 client.py                                 883 DEBUG    | Read Descriptor 004D : bytearray(b'\x00\x00')
   MainThread:08:18:07.307 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Internal 83 @ handle 75: NOTIFY
   MainThread:08:18:07.405 client.py                                 883 DEBUG    | Read Descriptor 0050 : bytearray(b'\x00\x00')
   MainThread:08:18:07.405 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Internal 84 @ handle 78: NOTIFY
   MainThread:08:18:07.421 bleak_wrapper.py                          369 DEBUG    | [Service] Tx Power Service
   MainThread:08:18:07.421 bleak_wrapper.py                          401 DEBUG    | 	[Characteristic] Tx Power Level @ handle 82: READ
   MainThread:08:18:07.421 bleak_wrapper.py                          406 INFO     | Done discovering characteristics!
   MainThread:08:18:07.421 bleak_wrapper.py                          324 INFO     | Enabling notifications...
   MainThread:08:18:07.421 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char 00002a19-0000-1000-8000-00805f9b34fb
   MainThread:08:18:07.529 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90073-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:18:07.644 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90075-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:18:07.808 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90077-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:18:07.920 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90079-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:18:08.037 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90092-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:18:08.149 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90081-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:18:08.261 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90083-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:18:08.374 bleak_wrapper.py                          328 DEBUG    | Enabling notification on char b5f90084-aa8d-11e3-9046-0002a5d5c51b
   MainThread:08:18:08.536 bleak_wrapper.py                          330 INFO     | Done enabling notifications

Hardware

  • Camera: Hero11 Black Mini
  • Windows 11

Additional context
I have tried to forgot the bluetooth connection on Windows 11, as well as factory resetting the camera. The series of errors always starts at ActionId.RESPONSE_GET_COHN_STATUS!

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpython sdkPython SDK

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions