GoPro Waterproof Shutter Remote Investigation
Posted by Mark Kirschenbaum on
I've always loved looking into GoPro Inc.'s remote control solutions. When the extension pole with a remote got announced, I knew I had to order one. After a few months of delays, the GoPro Waterproof Shutter Remote finally shipped two weeks before Christmas.
Enjoy this technical report on this new remote.
Specifications - As determined
Waterproof Shutter Remote (WSR), S. Remote, "Chief"
As this remote is part of the extension pole (AGXTS-002), its actual SKU is CNF-ACCH1.
Codename | Chief |
SKU | CNF-ACCH1 |
Power | CR2032 3v @ 0.2mA |
Cameras Support |
GoPro HERO12 (v1.20) Futures |
BLE Range |
10 meters |
Waterproof |
5 meters (no connectivity underwater) |
Temperature |
Min: -4°F/-20°C |
Device Type | 5 |
Manual | GoPro Remote User Manual |
Teardown
At first I thought the remote was overmolded. However, after closer inspection I saw the battery compartment was two parts. There are three hooks affixing the battery compartment to the shell. A simple spudger is all I used to pop it open.
After that there are three screws holding the PCB to the shell.
Top View: Wires used to dump the flash.
11 o'clock: DA14531
9 o'clock: Flash
4 o'clock: SMPS
3 o'clock: Red Blue Led
Bottom View (Rst, VBat, SWCLK, SWDIO, Single wire TX/RX)
Components
Renesas Dialog Semi |
DA14531-00000FX2 | Bluetooth 5.1 Microcontroller 12 GPIO, 24-FCGQFN (2.2x3) Marking: 531 136 |
Dialog Semi | AT25EU0021A |
2 Mbit SPI Flash 0x1f 0x10 0x01 JEDEC Flash ID Marking: AD1 HNG 0x14 0x1F1101 (ID) 0x40000 (Size) |
Texas Instruments (TI) | TPS61220DCK | Adjustable SMPS Marking: CKR 2.65v output |
LED | Red/Blue |
Debugging / Serial
Debugging is provided by SWD. I was unable to connect via SWD after an hour of trying to bring it up via OpenOCD. It's very likely SWD is locked in OTP, so I didn't spend a lot of time on this task.
The TX/RX is a single pin serial and most likely only used during production & test. There are no debug strings in the firmware.
I was able to simply sniff the SPI Flash during bootup an read the codebase. The bootrom loads up the bootloader and the application code at boot.
Release Version
Chief release 01.10.00
(No OTA update available yet)
BLE Protocol
Most of the BLE protocol this remote uses is documented already on Open GoPro. The remote uses one new, and one undocumented, BLE commands to communicate to the camera. Additionally, it uses a new command under the sensor/meta characteristic for updating the LED.
I should note, remotes use several newer UUID16 characteristics for OTA updates Service 0x80 chars 0x81-0x84.
BLECOMMAND_SetButton [Command:0x1B, len 5]
Single command to set all the buttons' states versus SetShutter, SetMode legacy commands. This command also has multi-camera and orientation rotation functional. However, I chose not documented here as it's not implemented in the wild as of yet.
Definition | Bytes | Example |
len-1 | 1 | 4 |
CMD: BLECOMMAND_SetButton | 1 | 1Bh |
stream length | 1 | 2 |
button_type | 1 | 00h |
button_state | 1 | 01 |
button_type
GOPRO_CMD_SETBUTTON_SW_SHUTTER | 00h |
GOPRO_CMD_SETBUTTON_SW_MODE | 01h |
GOPRO_CMD_SETBUTTON_SW_SETTINGS | 02h |
button_state
RELEASE / Stop | 00h |
PRESS | 01h |
BLECOMMAND_ClientInfo [Command:0x1C] Total Length 10bytes
Informs the camera the protocol (7), the connected device (5-Chief), the device's firmware version v1.10.00, and its battery level.
09h 1Ch 07h 01h 05h 01h 0Ah 00h 00h XXh
Definition | Bytes | Example Value |
Len-1 | 1 | 9 |
CMD: BLECOMMAND_ClientInfo | 1 | 0x1C BLECOMMAND_ClientInfo |
Schema | 1 | 0x7 |
Device type | 1 | 0x5 |
Firmware major revision | 1 | 1 |
Firmware minor revision | 1 | 10 |
Firmware build | 1 | 0 |
Battery Level | 1 | XX |
SetThirdPartyClientInfo [Command:0x50]
FUTURE
GetThirdPartyApiVersion [Command:0x51]
FUTURE
bleLedRegister [ Opcode: 0x52]
Via the Sensor/ Meta characteristic, sending the LedRegister opcode turns on notifications for when the LED should be on and off.
Definition | Bytes | Example |
len-1 | 1 | 2 |
CMD: BLEMETA_LedRegister | 1 | 52h |
Enable | 1 | 1 |
Overall
This remote works fairly well on the ground. It's a great addition to most people's kit. At this time, it only supports a single camera and believe it'll remain that way. The current draw is minimal which means the battery will last most users several years.
As far as jumping with this remote, it's not recommend. In freefall, it's way too easy to hit the huge record button. Unlike our BLU2 product line, it also doesn't display warnings such as battery low, card space low, wrong mode, etc). Additionally, it only indicates recording once every second with a brief red LED flash. This is way too slow for our high speed sport that only lasts 50 seconds.
One caveat of all GoPro wireless solutions is, you must power the camera on manually after 8 hours of it not being used in order to turn the BLE subsystem on.
If you enjoyed this blog, please consider buying or promoting the BLU2Pro or BLU2Lite designed for action sports. If you need some assistance with your BLE solution, please know I'm available for contracting work.
Thank you!
-Trunk
International Radio Compliance
FCCID |
CNFACCH1 |
IC | 10193A-ACCH1 |
ANATEL | 15233-23-09720 |
CMIIT ID | 2023DJ16462 |
CCAF23LP1510T0 | |
IFETEL | INGOAC23-38771 |
NR | 2023-09I-0701 |
R-C-WD7-ACCH1 | |
Japan | JR321002-01 |
LEGAL: This product and/or service is not affiliated with, endorsed by, or in any way associated with GoPro Inc. or its products and services. GoPro, HERO, and their respective logos are trademarks or registered trademarks of GoPro, Inc. HEROBUS and BACPAC are trademarks of GoPro Inc.