Skip to content

Commit ce48bd8

Browse files
committed
support for HERO8 and MAX
1 parent 2323f38 commit ce48bd8

File tree

14 files changed

+1728
-1932
lines changed

14 files changed

+1728
-1932
lines changed

.clang-format

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
BasedOnStyle: Chromium

.gitignore

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1-
.**
1+
.pio/**
2+
.vscode/**
3+
.travis.yml
4+
lib/**
5+
test/**
6+
include/**
27
platformio.ini
3-
examples/*/Constants.h

README.md

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# GoPro Control Arduino
22

3-
This is a library to interface with GoPro cameras over WiFi, just press a button and control your GoPro action camera using an Arduino!
3+
This is a library to interface with GoPro cameras over WiFi using Arduino!
44

55
![Alt text](/extras/gopro3_and_nodemcu.jpg?raw=true "GoPro3")
66

77
![Alt text](/extras/gopros_and_esps.jpg?raw=true "GoPro4")
88

9-
Have you ever thought about the possibility to control your action camera with your Arduino? Well if you are here because you googled that you may be interested in watching this video
9+
Here there is a short video that shows the potential of the library
1010

1111
[![Alt text](https://img.youtube.com/vi/PuM-ZQ2tMW0/0.jpg)](https://www.youtube.com/watch?v=PuM-ZQ2tMW0)
1212

@@ -23,7 +23,7 @@ Have you ever thought about the possibility to control your action camera with y
2323
- change photo and video resolution
2424
- turn the localization on/off
2525
- change the orientation
26-
- more?
26+
- more
2727

2828
## Supported boards:
2929

@@ -33,7 +33,7 @@ Have you ever thought about the possibility to control your action camera with y
3333
- MKR WiFi 1010
3434
- MKR VIDOR 4000
3535
- UNO WiFi Rev.2
36-
- any arduino boards (UNO, nano, 101, etc.) attached to an ESP8266 (ESP01) using AT commands with [this library](https://github.com/bportaluri/WiFiEsp)
36+
- any other boards (UNO, NANO, bluepill) attached to an ESP01 using AT commands with [this library](https://github.com/bportaluri/WiFiEsp)
3737

3838
## Supported cameras:
3939

@@ -43,6 +43,8 @@ Have you ever thought about the possibility to control your action camera with y
4343
- HERO6
4444
- HERO7
4545
- FUSION
46+
- HERO8
47+
- MAX
4648

4749
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 😃
4850

@@ -52,7 +54,7 @@ I made the library with a style which would be quite easy to add other cameras (
5254
- Go to Tools > Manage libraries
5355
- Search for `GoProControl`
5456
- PlatformIO:
55-
- From command line: run `pio lib install "GoProControl"`
57+
- From command line: run `pio lib install "GoProControl"` or use the ID `pio lib install 5599`
5658
- Or if you prefer a GUI from [Platformio IDE](https://docs.platformio.org/en/latest/librarymanager/)
5759
- Manually:
5860
- `cd $HOME/Arduino/libraries` ([see Arduino library paths for other operating systems](https://www.arduino.cc/en/hacking/libraries))
@@ -61,11 +63,13 @@ I made the library with a style which would be quite easy to add other cameras (
6163

6264
## Examples
6365

64-
**Important:** Rename the `Constants.h.example` to `Constants.h` and change the SSID, password and camera model
66+
Start with the `GoProControl.ino` to get used with the library
67+
68+
**Important:** Before uploading to your board you have to change the SSID, password and camera model from `Secrets.h`
6569

6670
## Supported Options
6771

68-
| Mode | HERO3 | HERO4,5,6,7 |
72+
| Mode | HERO3 | HERO4 and beyond |
6973
| --- | :---: | :---: |
7074
| VIDEO_MODE |||
7175
| PHOTO_MODE |||
@@ -85,13 +89,13 @@ I made the library with a style which would be quite easy to add other cameras (
8589
| MULTISHOT_TIMELAPSE_MODE | ||
8690
| MULTISHOT_NIGHTLAPSE_MODE | ||
8791

88-
| Orientation | HERO3 | HERO4,5,6,7 |
92+
| Orientation | HERO3 | HERO4 and beyond |
8993
| --- | :---: | :---: |
9094
| ORIENTATION_UP |||
9195
| ORIENTATION_DOWN |||
9296
| ORIENTATION_AUTO | ||
9397

94-
| Video Resolution | HERO3 | HERO4,5,6,7 |
98+
| Video Resolution | HERO3 | HERO4 and beyond |
9599
| --- | :---: | :---: |
96100
| VR_4K | ||
97101
| VR_2K | ||
@@ -104,14 +108,14 @@ I made the library with a style which would be quite easy to add other cameras (
104108
| VR_720p |||
105109
| VR_WVGA |||
106110

107-
| Field Of View | HERO3 | HERO4,5,6,7 |
111+
| Field Of View | HERO3 | HERO4 and beyond |
108112
| --- | :---: | :---: |
109113
| WIDE_FOV |||
110114
| MEDIUM_FOV |||
111115
| NARROW_FOV |||
112116
| LINEAR_FOV | ||
113117

114-
| Frame Rate | HERO3 | HERO4,5,6,7 |
118+
| Frame Rate | HERO3 | HERO4 and beyond |
115119
| --- | :---: | :---: |
116120
| FR_240 |||
117121
| FR_120 |||
@@ -128,12 +132,12 @@ I made the library with a style which would be quite easy to add other cameras (
128132
| FR_12p5 || |
129133
| FR_12 || |
130134

131-
| Video Encoding | HERO3 | HERO4,5,6,7 |
135+
| Video Encoding | HERO3 | HERO4 and beyond |
132136
| --- | :---: | :---: |
133137
| NTSC |||
134138
| PAL |||
135139

136-
| Photo Resolution | HERO3 | HERO4,5,6,7 |
140+
| Photo Resolution | HERO3 | HERO4 and beyond |
137141
| --- | :---: | :---: |
138142
| PR_12MP_WIDE | ||
139143
| PR_12MP_MEDIUM | ||
@@ -147,7 +151,7 @@ I made the library with a style which would be quite easy to add other cameras (
147151
| PR_5MP_WIDE |||
148152
| PR_5MP_MEDIUM | ||
149153

150-
| Time Lapse | HERO3 | HERO4,5,6,7 |
154+
| Time Lapse | HERO3 | HERO4 and beyond |
151155
| --- | :---: | :---: |
152156
| 60 |||
153157
| 30 |||
@@ -156,26 +160,27 @@ I made the library with a style which would be quite easy to add other cameras (
156160
| 1 |||
157161
| 0.5 |||
158162

159-
| Continuous Shot | HERO3 | HERO4,5,6,7 |
163+
| Continuous Shot | HERO3 | HERO4 and beyond |
160164
| --- | :---: | :---: |
161165
| 10 || |
162166
| 5 || |
163167
| 3 || |
164168
| 0 || |
165169

166-
**NOTE:** Not all the options are available for all the cameras (for example on a HERO3 you can't set 1080p at 240 frame per second 😲). You can see the possibilities on the manual of your camera of here for [HERO3](https://github.com/KonradIT/goprowifihack/blob/master/HERO3/Framerates-Resolutions.md) and here for [HERO4 and newer](https://github.com/KonradIT/goprowifihack/blob/master/HERO4/Framerates-Resolutions.md)
170+
**NOTE:** Not all the options are available for all the cameras (for example on a HERO3 you can't set 1080p at 240 frame per second 😲). You can see the possibilities on the manual of your camera or here for [HERO3](https://github.com/KonradIT/goprowifihack/blob/master/HERO3/Framerates-Resolutions.md) and here for [HERO4 and newer](https://github.com/KonradIT/goprowifihack/blob/master/HERO4/Framerates-Resolutions.md)
167171

168172
## To Do list and known issues
169173

170174
- 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](https://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/station-class.html#bssid)
171175
- 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
172-
- It is possible to get a lot of info (mode, fow, battery) from HERO4 and newer camera but this is not implemented, [see here](https://github.com/KonradIT/goprowifihack/blob/master/HERO5/HERO5-Commands.md#gopro-hero5-commands-status-and-notes) - PR are welcome
176+
- It is possible to get a lot of info (mode, fow, battery) from HERO4 and newer camera but this is not implemented [see here](https://github.com/KonradIT/goprowifihack/blob/master/HERO5/HERO5-Commands.md#gopro-hero5-commands-status-and-notes), a Json parser should be used, like [ArduinoJson](https://arduinojson.org/) - PR are welcome
173177
- BLE not implemented: the ESP32 core is not enough stable, especially, if used together with wifi: [see here](https://github.com/espressif/arduino-esp32/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+ble)
174178
- No confirm pairing for HERO4: [see here](https://github.com/KonradIT/goprowifihack/blob/master/HERO4/WifiCommands.md#code-pairing) - PR are welcome
175179
- The arduino class `String()` is known to cause memory leaks but in hours and hours of use of this library I never had a single problem
180+
- on STM32 there is a known bug with [WiFiEsp](https://github.com/bportaluri/WiFiEsp/pull/179)
176181

177182
## Reference
178183

179-
All the commands came from [here](https://github.com/KonradIT/goprowifihack)
184+
All the commands came from the great work of [KonradIT](https://github.com/KonradIT/goprowifihack)
180185

181-
The idea of making a GoPro library for arduino comes from another [library](https://github.com/agdl/GoPRO) which works only on arduino WiFi boards and only with GoPro HERO3
186+
The idea of making a GoPro library for arduino comes from another [library](https://github.com/agdl/GoPRO) which works only on arduino WiFi boards and only with GoPro HERO3

0 commit comments

Comments
 (0)