Python Bluetooth controller for GoPro cameras starting from the HERO5 Black (successfully tested with the HERO5 Black, HERO6 Black, HERO7 Black, MAX, HERO9 Black)
Enable Wireless Connections on the GoPro and go to connect > connect new > GoPro APP
Then connect your device to the camera via Bluetooth.
On Windows, make sure when you connect to wait for the PC to successfully pair with the camera:
The camera should return to the last mode and exit the pairing screen.
Then run:
python main.py
Then enter the commands.
>> record start
[recv] ...
Commands available:
- record start
- record stop
- mode video
- mode photo
- mode multishot
- poweroff
- tag
- wifi off
- wifi on
- set (will prompt you to enter settings)
- exit (disconnect && exit)
Settings are parsed as constant strings from my library gopro-py-api.
Settings available:
- video:
- resolution
- framerate
- fov
- lowlight
- protune
- white_balance
- color
- iso_limit
- sharpness
Pass a list of Bluetooth MAC addresses in the --address
parameter to control multiple cameras.
By default this script runs in interactive mode, but to control camera aspects via the command line or a bash script pass --address
and/or --command
Commands can be passed using the --command
parameter (multi camera supported)
python .\main.py --verbose --address "XX:XX:XX:XX:XX:XX" --command "record start"
python .\main.py --verbose --address "XX:XX:XX:XX:XX:XX" --command "wifi on"
It relied on gatt
library and bluetooth
library, and it was a PITA to work on and install. I decided to move to bleak
which works perfectly on Windows and Raspbian.
https://github.com/KonradIT/goprowifihack/blob/master/Bluetooth/Platforms/RaspberryPi.md
https://gethypoxic.com/blogs/technical/gopro-hero5-interfaces