GoPro devices (at least Hero 3) is capable of producing awesome timelapse photos that you can later turn into videos. If you have a power source and a large SD card, then your only constraint is the interval that the photos are taken at. The longest interval available is 60 seconds. But what if you want the interval to be larger? What if you want to take only a few pictures a day?

For example... what if you know you won't be using your gopro for the upcoming month and you just planted a new garden, and you want to capture the rapid growth of your strawberries on video?! Well that's what I want to do!

Instead of taking the picture manually, there is a way to accomplish this programmatically. When you connect your computer to GoPro's WiFi server, you can have full control over all it's features by performing HTTP GET requests; it's as simple as forming and executing web links! Here is an example that turns the gopro on

http://10.5.5.9/bacpac/PW?p=%01&t=XXXXXXXX (replace X's with GoPro's WiFi password)

Here is a complete list of Hero 3 commands.

Fun fact: you can browse all pictures and videos on your GoPro over WiFi! Just browse to http://10.5.5.9:8080 in your browser.

timelapse-gopro.py

timelapse-gopro.py is a python script that uses the above URL's to control GoPro. This fixes the 60 second frequency limis and extends it to whatever you want.

To make this happen, you need the following:

Hardware Setup: GoPro Hero 3, battery pack or power cable for GoPro, and a WiFi enabled device running Python 2

Software Setup: Python 2, python-crontab, timelapse-gopro.py

Configuration: Open timelapse-gopro.py and modify the heading varaibles, specifying between what hours that you want the picture to be taken and every how many mintues. Then fill out the varaible for GoPro's WiFi password and you're good to go!

Execution: Run python timelapse-gopro.py in priviledged mode and watch the magic run! First, the script will configure the GoPro (turn off power saving timeouts, etc) and then create cron jobs for the specific times.

Sample output:

[20:22:47] ~ > sudo python timelapse-gopro.py 
seting up gopro  
http://10.5.5.9/bacpac/PW?t=XXXXXX&p=%01  
http://10.5.5.9/camera/BS?t=XXXXXX&p=%00  
http://10.5.5.9/camera/LB?t=XXXXXX&p=%00  
http://10.5.5.9/camera/AO?t=XXXXXX&p=%00  
http://10.5.5.9/bacpac/PW?t=XXXXXX&p=%00  
http://10.5.5.9/bacpac/PW?t=XXXXXX&p=%00

* 3-9/60 * * * python /Users/adriansitterle/timelapse-gopro.py takepic # from timelapse-gopro.py script

Common problems:

I get an error Error connecting to camera. Did you replace the url_pass variable in timelapse-gopro.py with your GoPro's WiFi password?

I get an error crontab: must be privileged to use -u. Are you executing the timelapse-gopro.py in priviledged mode? If not use sudo python timelapse-gopro.py to run the script. You need root proviledge to create cron jobs on your system.

timelapse.gopro.py script location:

https://github.com/adrian-source/timelapse-gopro

Some silly tests:
timelapse

24 hours/every 30 minutes

Check out hackaday.com for a link to this article and other similar hacks!