Gopro Camera Bluetooth Remote

About the project

Making own Bluetooth remote for GoPro Hero 6/7/8

Project info

Items used in this project

Hardware components

GoPro Hero 7 GoPro Hero 7 x 1
PSoC 6 Wi-Fi BT Prototyping Kit PSoC 6 Wi-Fi BT Prototyping Kit x 1

Software apps and online services

CySmartApp CySmartApp Only for Testing



The Aim of this project is to provide easy soluiton for GoPro Camera users with capsense enabled Bluetooth remote. I used to travel lot in car. To control the camera all time my co passenger has to reach the camera or through mobile app. Voice control also there but it will drain our tongue :) . This is simple remote prototype design board , i can break the board and attach into my dash board. Its easy for me to reach the board and control my camera.


I took the Gopro Camera and put into paring mode. I used Cy-smart app to find out the  UUID and GATT characteristic.

Found the UUID as 0xFEA6 which is 16bit UUID,

then there are many BLE GATT Services like, Battery, Device Information etc. the one we need is Custom service where we can send commands to GoPro.

The Custom Service UUID is { 0xfbu, 0x34u, 0x9bu, 0x5fu, 0x80u, 0x00u, 0x00u, 0x80u, 0x00u, 0x10u, 0x00u, 0x00u, 0xa6u, 0xfeu, 0x00u, 0x00u }

Cypress PSoC 6 Proto Kit is used in this project, Used Eclipse IDE for Modus Toolbox 2.1 is used as project development environment. Cypress Anycloud SDK 1.0.0 is used for bluetooth development.

Just create Empty project for PSoC 6 Proto Kit and add bluetooth , capsense libs into it from library manager or  CLI commands using "make getlibs" ,

the deps folder contains the all dependency for the project. Initialize the BT stack, GATT DB and Capsense then Implement the GATT services as client and scan for the Gopro UUID, once the UUID matches then start discover the characteristic for custom service UUID.  The stack returns with the handler value if its valid.

Next step is to write the values to the GATT attributes. 

GoPro Camera Commands set:

For Video Mode: {0x03 0x02 0x01 0x00 }

For Photo Mode: {0x03 0x02 0x01 0x01 }

For Time Wrap Mode: {0x03 0x02 0x01 0x02 }

Shutter ON: {0x03 , 0x1, 0x01, 0x01}

Shutter Off: {0x03 , 0x1, 0x01, 0x00}

CapSense slider and button values are monitored and used to send the GATT commands on touch.

The final working video is here.


Schematics, diagrams and documents


Go to download


Code Snippet


Photo of ashokr


Hello! I’m Ashok. I’m currently working as software engineer. passionate about doing Hobbies Projects and Animations works.


Leave your feedback...