Action cameras are widely used in vlogging and sports activities, with the GoPro Hero being one of the most popular models. Known for their rugged and waterproof design, these cameras are ideal for use during sports activities and can be mounted on various surfaces, such as helmets or the body. However, controlling the camera can be challenging for users. This challenge has led to the inclusion of remotes with Bluetooth connectivity for these cameras. This project demonstrates how to develop a cost-effective remote with similar Bluetooth capabilities for these cameras.
In this proto design, we interfaced 3 push buttons to the Bluetooth LE SoC CYW20829. And is powered through 3V coin cell. This design also includes PV (photo voltaic) cells in case of using energy harvesting.
Energy Harvesting with CYW20829The CYW20829 from Infineon is a high-performance, ultra-low power, and secure MCU compliant with the latest version (v5.4) of the Bluetooth Core Specification. It is optimal for Bluetooth LE HID applications like remotes and keyboards.
Solar energy harvesting IC solution is an integrated energy management circuit that extracts DC power from PV cells to simultaneously store energy in a rechargeable element and supply the system with two independent regulated voltages. The solar energy harvester for example AEM10941 from e-peas allows to extend battery lifetime and ultimately eliminates the disposable battery energy.
The overview in the block diagram below shows the CYW20829 Shield2Go which is interfaced with 3 Push buttons and powered through a coin cell with 3.3V.
Also the power can be provided through solar PV cells with the help of energy harvesting chip AEM10941.
In this hardware design the Bluetooth shield2Go prototyping board is used, which has the CYW20829 module with necessary pin outs and programming interface. This board also comes with Analog Mic, LEDs and User Button.
Download the schematics, BOM & gerber files from here. There are 3 external switch buttons in this design, which is basically mounted on the top of 3D printed case and wired into the shield2go board. You can find the 3D printed files also attached to this document. Customers can develop their own system solutions by combining Shield2Go boards together with Infineon My IoT adapters or any custom boards.
ModusToolbox, an Eclipse IDE-based tool, is used for code development. The complete Bluetooth codefor the project can be downloaded or cloned from here. Follow the MTB(ModusToolbox) userguide to import the project in the MTB.
Import the Project into ModusToolBoxAlso, the prebuild binary file is available inside the binary folder, this hex can be programmed into the board using MiniProg4 & Cypress Programmer.
Bluetooth Configuration:
The configurator is set in client profile mode and the default scan parameters are configurued in the configurator. The Bluetooth configurator can be found in the folder config/design.cybt. And it generates code during the compilation.
In our demo we are using GoPro 7, the detailed Bluetooth API information can be found here.
In our case we are using basic commands to switch between multiple modes
1. Photo Capture
2. Video Capture
3. TimeWrap Capture
The desired service handle UUID for GoPro Camera is
{ 0xfbu, 0x34u, 0x9bu, 0x5fu, 0x80u, 0x00u, 0x00u, 0x80u, 0x00u, 0x10u, 0x00u, 0x00u, 0xa6u, 0xfeu, 0x00u, 0x00u }
Our interested handle for issuing GATT commends is 0x002f.
All the configuration was set in the firmware to locate the desired handle for GATT read and write operations.
Also, we can use Infineon’s client applications AIROC™ Bluetooth® Connect App to test or execute the commands with GoPro.
Wiring Diagram
The wiring is done as the picture below. It recommends to use thin wires for connection so that the step can be fixed into the enclosure without any trouble.
How it works
The remote is powered ON by inserting coin cell in the slot which located bottom of the board. The power status LED turns ON. On the camera side we need to set for pairing mode by entering into connection settings and choosing “GoPro App” as active.
Then press the top button (S1) on the remote and it starts scanning the device for connection. The user LED starts blinking and stops once the connection is established. Now we can use the centre button (S2) to switch between multiple modes (VIDEO/TIMEWRAP/PHOTO). The bottom button (S3) is trigger button to capture the photo in photo mode and start/stop the video recording in other mode. There are more commands to play with and changing the settings of the camera, if you are inspiered check out the link!
For a live demonstration check out the youtube video below:
Comments