dancj / GoproControl

Control a gopro over wifi connection to take photos at longer intervals.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

(Unofficial) GoPro Timelapse Control

GoPro + Raspberry Pi = Timelapse

This solution extends the built in functionality of the GoPro around capturing timelapse videos. This project runs on a device connected to your GoPro's wifi network can send commands to capture frames when you want them. I used it on a Raspberry Pi 3B+ and GoPro Hero4 to record a construction timelapse, taking a photo every 10 minutes for 6 weeks straight.

Useful added features:

  • Longer intervals (>60 sec)

  • Timelapse frames saved as still images to later combine together in Lightroom, LRTimelapse, etc. with greater customization

Compatibility:

HERO3
HERO3+
HERO4                 <--- Tested
HERO4 Session
HERO+
HERO5 
HERO5 Session
HERO6
Fusion 1
HERO7 (Black)

Raspberry Pi 3 Model A+
Raspberry Pi 3 Model B       <--- Tested
Raspberry Pi 3 Model B+   
Raspberry Pi 4 Model B

Getting started

Raspberry Pi (RPi) Setup

  • Flash RPi with Debian - RPi docs
  • Go through basic setup with raspi-config to set localization and wifi country
# if it doesn't start automatically, can launch raspi-config from command line -
sudo raspi-config

# install pip3 and gopropy dependencies (this project uses Python3 due to the gopropy library)
sudo apt-get install python3-pip
pip3 install request

# Set static IP address in the default GoPro subnet 
#  TODO /etc/dhcpcd.conf

# Set wifi settings in wpa_supplicant file
# TODO: /etc/wpa_supplicant/wpa_supplicant.conf

GoProControl App Setup

  • Clone this project
  • Edit config.py and set desired settings (interval, etc.)

RPi Runtime Config

  • Edit ~/.bash_profile to launch the run script on startup
  • Configure lxterminal to run on startup so it will start our script

Quick Start

After going through RPI setup, turn GoPro WiFi setting on. Power up RPi and it will connect to the camera's WiFi and launch the timelapse script on bootup.

Make sure the camera starts taking photos, and that's it!

Camera LEDs, sounds, and display can all be disabled in GoPro settings if desired.

Accessories

Used a suction cup window mount - link. Suction held for about a week without falling. Beyond that use painters tape or something for extra support.

Skeleton housing that allows camera to run with power cable connected - link

Future improvements

  • Set nested intervals, such as every 10 minutes between hours of 7am and 7pm each day
  • Add screen and controls to see app state and start/stop. The GoPro only allows one connection so cannot do this remotely.

Dependencies

Python 3 Unofficial GoPro API Library for Python

About

Control a gopro over wifi connection to take photos at longer intervals.

License:MIT License


Languages

Language:Python 92.1%Language:Shell 6.0%Language:PowerShell 1.9%