Schlagwort-Archiv: Tipps

DIY GoPro remote

facebooktwittergoogle_plusmail

In this tutorial, I will show you, how to build an very cheap GoPro remote control!

UPDATE: The First Prototype is ready -> goto the NEW post

Things you need:

  • GoPro with WIFI (eg. GoPro HERO 4 Silver)
  • ESP8266 (ESP-01 is okay)
  • some ESP-burning parts (eg.USB 2 TTL converter)
  • my ESP-Firmware for Arduino IDE

This are all required parts:

 

Part 1:

Set up the GoPro WIFI over your Smartphone or PC – note the WIFI name and its PW.

Part 2:

Wire up the ESP8266 for flashing : WATCH OUT   VCC = 3.3V !!!

ESP8266 to USB2TTL
ESP8266 to USB2TTL

Part 3:

Flash the following code, as described here, over the Arduino IDE: Replace the red parts with your settings!




/**********************************************************************************
* ESP8266 REMOTE for GoPro by Robert Stefanowicz - euerdesign.de 28 Dec 2015 *
*********************************************************************************/

#include

/*********************************
* YOUR SETTINGS *
*********************************/

const char* ssid = "Go1337Pro"; //Your Wifi name (SSID)
const char* password = "PASSWORD"; //Your WiFi password
/*********************************
* DO NOT CHANGE BELOW THIS LINE *
*********************************/
const char* host = "10.5.5.9";
int delshort = 50;
int dellong = 500;
const int buttonPin = 0;
int value;
int buttonstate;
int buttonstates;
int camstates;
int checked;
const int buttonPins = 2;
int values;
int valuess;
void setup() {
Serial.begin(115200);
delay(100);
pinMode(buttonPin, INPUT);
pinMode(buttonPins, INPUT);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
delay(delshort);
values = digitalRead(buttonPins);

if (buttonstates != values)
{
buttonstates = values;
if (values == 1)
{ checked = 0;
if (camstates == 1){camstates = 0; checked = 1;}
if (camstates == 0){
if (checked == 0) {camstates = 1;}
}
Serial.println("Aenderung");
Serial.print("connecting to ");
Serial.println(host);
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
String url = "/gp/gpControl/command/shutter?p=";
url += camstates;
Serial.print("Requesting URL: ");
Serial.println(url);
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10);
Serial.println();
Serial.println("closing connection");

}
delay(dellong);
valuess = digitalRead(buttonPins);
if (valuess == 1)
{
camstates = 0;
while(valuess == 1){
delay(delshort);
Serial.println("WHILE-LOOP");
Serial.println(valuess);
valuess = digitalRead(buttonPins);

}

Serial.println("BUTTON STATE CHANGE ");
Serial.print("connecting to ");
Serial.println(host);
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
String url = "/gp/gpControl/command/shutter?p=0";
Serial.print("Requesting URL: ");
Serial.println(url);
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10);
Serial.println();
Serial.println("closing connection");
}

}

}


Part 4

Solder a 33 kOhm Resistor between Ground an the next pin right to it. Then a phusbutton between this pin an VCC.

ESPBUTTON

Part 5

Turn on your GoPro – Turn in Wifi in the Settings or with the side button.
Turn on the ESP and Trigger your Shutter. Thats it!

GoPro URLs:

Controls:
off: http://10.5.5.9/gp/gpControl/setting/10/0
on: http://10.5.5.9/gp/gpControl/setting/10/1
White Balance:
Auto: http://10.5.5.9/gp/gpControl/setting/11/0
3000k: http://10.5.5.9/gp/gpControl/setting/11/1
5500k: http://10.5.5.9/gp/gpControl/setting/11/2
6500k: http://10.5.5.9/gp/gpControl/setting/11/3
Native: http://10.5.5.9/gp/gpControl/setting/11/4
Color:
GOPRO: http://10.5.5.9/gp/gpControl/setting/12/0
Flat: http://10.5.5.9/gp/gpControl/setting/12/1
ISO:
6400: http://10.5.5.9/gp/gpControl/setting/13/0
1600: http://10.5.5.9/gp/gpControl/setting/13/1
400: http://10.5.5.9/gp/gpControl/setting/13/2
Sharpness:
High: http://10.5.5.9/gp/gpControl/setting/14/0
Med: http://10.5.5.9/gp/gpControl/setting/14/1
Low: http://10.5.5.9/gp/gpControl/setting/14/2
EV:
Value URL
+2 http://10.5.5.9/gp/gpControl/setting/15/0
+1.5 http://10.5.5.9/gp/gpControl/setting/15/1
+1 http://10.5.5.9/gp/gpControl/setting/15/2
+0.5 http://10.5.5.9/gp/gpControl/setting/15/3
0 http://10.5.5.9/gp/gpControl/setting/15/4
-0.5 http://10.5.5.9/gp/gpControl/setting/15/5
-1 http://10.5.5.9/gp/gpControl/setting/15/6
-1.5 http://10.5.5.9/gp/gpControl/setting/15/7
-2 http://10.5.5.9/gp/gpControl/setting/15/8
Primary modes:
Video: http://10.5.5.9/gp/gpControl/command/mode?p=0
Photo: http://10.5.5.9/gp/gpControl/command/mode?p=1
MultiShot: http://10.5.5.9/gp/gpControl/command/mode?p=2
Secondary modes:
Video (VIDEO): http://10.5.5.9/gp/gpControl/setting/68/0
TimeLapse Video (VIDEO): http://10.5.5.9/gp/gpControl/setting/68/1
Video + Photo (VIDEO): http://10.5.5.9/gp/gpControl/setting/68/2
Looping (VIDEO): http://10.5.5.9/gp/gpControl/setting/68/3
Single (PHOTO): http://10.5.5.9/gp/gpControl/setting/69/0
Continuous (PHOTO): http://10.5.5.9/gp/gpControl/setting/69/1
Night (PHOTO): http://10.5.5.9/gp/gpControl/setting/69/2
Burst (MultiShot): http://10.5.5.9/gp/gpControl/setting/70/0
Timelapse (MultiShot): http://10.5.5.9/gp/gpControl/setting/70/1
NightLapse (MultiShot): http://10.5.5.9/gp/gpControl/setting/70/2
Power:
Power Off: http://10.5.5.9/gp/gpControl/command/system/sleep
Frame Rate:
120fps: http://10.5.5.9/gp/gpControl/setting/3/0
90fps: http://10.5.5.9/gp/gpControl/setting/3/3
60fps: http://10.5.5.9/gp/gpControl/setting/3/5
48fps: http://10.5.5.9/gp/gpControl/setting/3/7
30fps: http://10.5.5.9/gp/gpControl/setting/3/8
24fps: http://10.5.5.9/gp/gpControl/setting/3/10
Resolutions:
4K: http://10.5.5.9/gp/gpControl/setting/2/1
4K SuperView: http://10.5.5.9/gp/gpControl/setting/2/2
2.7K: http://10.5.5.9/gp/gpControl/setting/2/4
2.7K SuperView: http://10.5.5.9/gp/gpControl/setting/2/5
2.7K 4:3: http://10.5.5.9/gp/gpControl/setting/2/6
1440p: http://10.5.5.9/gp/gpControl/setting/2/7
1080p SuperView: http://10.5.5.9/gp/gpControl/setting/2/8
1080p: http://10.5.5.9/gp/gpControl/setting/2/9
960p: http://10.5.5.9/gp/gpControl/setting/2/10
720p SuperView: http://10.5.5.9/gp/gpControl/setting/2/11
720p: http://10.5.5.9/gp/gpControl/setting/2/12
WVGA: http://10.5.5.9/gp/gpControl/setting/2/13
Exposure time for NightPhoto:
Auto: http://10.5.5.9/gp/gpControl/setting/19/0
2: http://10.5.5.9/gp/gpControl/setting/19/1
5: http://10.5.5.9/gp/gpControl/setting/19/2
10: http://10.5.5.9/gp/gpControl/setting/19/3
15: http://10.5.5.9/gp/gpControl/setting/19/4
20: http://10.5.5.9/gp/gpControl/setting/19/5
30: http://10.5.5.9/gp/gpControl/setting/19/6
Exposure time for NightLapse:
Auto: http://10.5.5.9/gp/gpControl/setting/31/0
2: http://10.5.5.9/gp/gpControl/setting/31/1
5: http://10.5.5.9/gp/gpControl/setting/31/2
10: http://10.5.5.9/gp/gpControl/setting/31/3
15: http://10.5.5.9/gp/gpControl/setting/31/4
20: http://10.5.5.9/gp/gpControl/setting/31/5
30: http://10.5.5.9/gp/gpControl/setting/31/6
Photo resolution:
12MP Wide: http://10.5.5.9/gp/gpControl/setting/17/0
7MP Wide: http://10.5.5.9/gp/gpControl/setting/17/1
7MP Medi: http://10.5.5.9/gp/gpControl/setting/17/2
5MP Wide: http://10.5.5.9/gp/gpControl/setting/17/3
Field Of View:
Wide: http://10.5.5.9/gp/gpControl/setting/4/0
Medium: http://10.5.5.9/gp/gpControl/setting/4/1
Narrow: http://10.5.5.9/gp/gpControl/setting/4/2
Low Light:
ON: http://10.5.5.9/gp/gpControl/setting/8/1
OFF: http://10.5.5.9/gp/gpControl/setting/8/0
Timelapse Interval (TIMELAPSE MODE on MultiShot):
0.5: http://10.5.5.9/gp/gpControl/setting/5/0
1: http://10.5.5.9/gp/gpControl/setting/5/1
2: http://10.5.5.9/gp/gpControl/setting/5/2
5: http://10.5.5.9/gp/gpControl/setting/5/3
10: http://10.5.5.9/gp/gpControl/setting/5/4
30: http://10.5.5.9/gp/gpControl/setting/5/5
60: http://10.5.5.9/gp/gpControl/setting/5/6
Continuous photo rate:
3: http://10.5.5.9/gp/gpControl/setting/18/0
5: http://10.5.5.9/gp/gpControl/setting/18/1
10: http://10.5.5.9/gp/gpControl/setting/18/2
Video Looping Duration:
Max: http://10.5.5.9/gp/gpControl/setting/6/0
5Min: http://10.5.5.9/gp/gpControl/setting/6/1
20Min: http://10.5.5.9/gp/gpControl/setting/6/2
60Min: http://10.5.5.9/gp/gpControl/setting/6/3
120Min: http://10.5.5.9/gp/gpControl/setting/6/4
Video+Photo Interval:
5: http://10.5.5.9/gp/gpControl/setting/7/1
10: http://10.5.5.9/gp/gpControl/setting/7/2
30: http://10.5.5.9/gp/gpControl/setting/7/3
60Min: http://10.5.5.9/gp/gpControl/setting/7/4
Spot Meter:
off: http://10.5.5.9/gp/gpControl/setting/9/0
on: http://10.5.5.9/gp/gpControl/setting/9/1
Shutter
Trigger: http://10.5.5.9/gp/gpControl/command/shutter?p=1
Stop (Video/Timelapse): http://10.5.5.9/gp/gpControl/command/shutter?p=0
Streaming:
Start Streaming http://10.5.5.9/gp/gpControl/execute?p1=gpStream&c1=start
Restart Streaming http://10.5.5.9/gp/gpControl/execute?p1=gpStream&c1=restart
Stop Streaming http://10.5.5.9/gp/gpControl/execute?p1=gpStream&c1=stop
Video can be streamed by using aplay or ffplay on udp://:8554, connection must be kept alive using hero4-udp-keep-alive-send.py script.
Tag moment:
http://10.5.5.9/gp/gpControl/command/storage/tag_moment
Delete file:
http://10.5.5.9/gp/gpControl/command/storage/delete?p=file (eg. /100GOPRO/G0010124.JPG)
List files
http://10.5.5.9:8080/gp/gpMediaList
Download thumbnail
http://10.5.5.9/gp/gpMediaMetadata?p=file (eg. /100GOPRO/G0010126.JPG)
facebooktwittergoogle_plusmail