Skip to content

aster94/GoProControl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoPro Control for Arduino

This is a library to interface with GoPro cameras over WiFi using Arduino!

Alt text

Alt text

Here there is a short video that shows the potential of the library (click below to play)

Alt text

Projects

Check out these nice projects:

If you want to show your project make a pull request

Supported actions

  • take a picture
  • start and stop a video
  • change the mode (photo, video, etc)
  • delete last file
  • format the SD
  • turn the camera on/off
  • change the field of view (FOV)
  • change frame rate
  • change photo and video resolution
  • turn the localization on/off
  • change the orientation
  • more

Supported boards:

  • ESP32
  • ESP8266
  • MKR1000
  • MKR WiFi 1010
  • MKR VIDOR 4000
  • UNO WiFi Rev.2
  • Raspberry Pi Boards
  • any other boards (UNO, NANO, bluepill) attached to an ESP01 using AT commands with this library

Supported cameras:

  • HERO3
  • HERO4
  • HERO5
  • HERO6
  • HERO7
  • FUSION
  • HERO8
  • MAX

I made the library with a style which would be quite easy to add other cameras (not only GoPro). I would be very happy to accept pull requests 😃

Installation

Examples

Start with the GoProControl.ino to get used with the library

If you wish to control two (or more) camera at the same time check MultiCam.ino

On the ESP32 there is the possibility to use the dual core architecture with the FreeRTOS framework, check ESP32_FreeRTOS.ino

An advantage use of the getStatus() and getMediaList() can be seen in ArduinoJson.ino, you would need to download the ArduinoJson library

To improve the connection stability is very important to always close the connection with end()

Important: Before uploading to your board you have to change the SSID, password and camera model from Secrets.h

Supported Settings

You can see the available settings in the manual of your camera or here for HERO3 and here for HERO4 and newer.

In the file Settings.h you can see how them are defined

NOTE: Not all the combination of settings are available for all the cameras (for example on a HERO3 you can't set 8K at 240 frame per second 😲).

To Do list and known issues

  • ESP8266 can't get the BSSID of the camera. So if you want to turn it on you need to manually pass it to the constructor, see the docs
  • There is no way to know if an HERO3 camera is on or off so the function isOn() will always return true on this camera - open an issue if you found a way
  • BLE not implemented: the ESP32 core is not enough stable, especially if used together with wifi: see here
  • No confirm pairing for HERO4: see here - PR are welcome
  • on STM32 there is a known bug with WiFiEsp
  • Arduino official WiFi API doesn't support getHostname(), see here
  • HERO4 and later camera can't be turned on, this is due to a bug inside this library which I wasn't able to fix yet

Reference

All the commands came from the great work of KonradIT

The idea of making a GoPro library for arduino comes from another library which works only on arduino WiFi boards and only with GoPro HERO3

Donate

If you liked the library and wish to donate you can sent to PayPal