Project start date: 19.10.2024
Building a cheap GoPro camera remote control, using Open GoPro API
- Creating a simple -easy to use, BLE remote control for GoPro Cameras.
- up to 2 buttons and LED for operation Indication.
- Mobile and small size (similar to car remote)
The remote will indicate the following using build in led:
- On connection - Green LED
- On disconnection - Red LED
- On sending Action Start command - Blue LED
- On sending Camera mode command - Yellow LED
- BLE knowledge.
- PCB editing.
- 3D design.
- 3D printing.
- Arduino and C++ programming.
- ESP32 C6 dev kit
- 2 X tact switches.
- 2 X 330 Ohm resistors.
- Charger panel
- LiPo battery 120 mAh.
For R&D:
- Wiring.
- breadboard.
For production:
- PCB manufacturing.
- 3D printing for enclosure.
- Arduino IDE for coding and uploading to ESP32 C6 board.
- KiCad for PCB design.
- Fusion360 for 3D enclosure design
- Using a BLE to control GoPro camera OpenGoPro
- Running on ESP32 C6 dev board
- FOR THE FIRST TIME, AND AFTER INSTALLING NEW FIRMWARE: Insert GoPro camera into paring model
- Remote will scan for BLE devices.
- Remote will connect to the first device that advertise GoPro
serviceUUID(0xFEA6) - On fail connection / disconnection, remote will scan for BLE devices again.
- Remote will stop scanning and go to deep sleep mode after 3 failed scans.
- Remote will wake up on button press. OnConnection to GoPro camera:
- Remote will turn BUILTIN LED to Green.
- On pressing button 1, remote will send Action start command to
COMMAND_REQ_UUID - On releasing button 2, remote will send Action stop command to
COMMAND_REQ_UUID - On pressing button 2, remote will rotate between PhotoMode / VideoMode / TimelapsMode, by sending the correct request to
COMMAND_REQ_UUID - The remote will listen to camera reply by registering a listener on
COMMAND_RSP_UUIDservice OnDisconnection from GoPro camera: - Remote will turn BUILTIN LED to Red.
- Remote will start scanning for GoPro devices again.
- Remote will go to deep sleep mode after 3 failed scans.
- PCB design using KiCad
- 2 layers PCB
- PCB manufacturing using PCBWay
Coin cell battery capacity:
| Battery | Capacity |
|---|---|
| 2016 | 100 mAh |
| 2025 | 170 mAh |
| 2032 | 235 mAh |
| 2450 | 620 mAh |
- Using 2032 battery did not work, as it was not able to power the ESP32 C6 board, I had to use LiPo battery. with 1200 mAh capacity.
Fixing arduino not displaying BLE device names:
Fixing library dont support short names
the file BLEAdvertisedDevice.cpp in library :
c:\Users\user1\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.5\libraries\BLE\src\
- deep sleep:
- espressif doc
- Wake up on button can be use only on RTC pins
- On ESP32-C6: RTC pins are 0-7
If you have any feedback, please reach out to us at mailto:shmulik.debby@gmail.com








