Using gphoto2 to Control a DSLR Camera

June 2017

Introduction

I am looking to buy a new DSLR camera body this year, and one of the grievances I have seen with the model I want, is that it only has a single card slot. Not a problem for me, but for some people who want backups of what they shoot, they see it as an issue (to be honest, most DSLRs have not had this feature, only in the last couple of years, and you never got this with film!)
Anyway, gphoto2 allows you to control your camera via the USB port, the amount of control you get varies between the make and model of camera that you are using.
You can use gphoto2 to take photos (great for making your own intervalometer, which we will try here, but you can also use gphoto2 to pull the images from your camera, and store them on a storage device attached to the Raspberry Pi, this is what I am really interested in.

Overview

For this guide I am using the following:

Raspberry Pi Zero

Raspbian (I am using Jessie, this should work on any version)

8GB SD Card (will expand this when I am happy that gphoto2 does everything I need)

Canon 700D

Canon 5DMk2

USB type A to USB Mini A Cable (most devices now use the Mini B, like your mobile does, Canon uses the older type)

Now I generally shoot with 16GB cards, I don't see the point in using really large cards, if a card goes bad you can lose so much. So my aim is to use a 128GB storage device on my Raspberry Pi, and have the Raspberry Pi backup the cards periodically (as well as eventually having a manual button).
I do occasionally fill a 16GB card on a day out, but not very often. So having the ability to backup up to 8 cards is pretty good, and even if I was shooting a wedding, or doing some sports photography, I doubt I would fill more than two or three cards.

Topics

Installing gphoto2

Running gphoto2

gphoto2 Auto Detect

gphoto Support for My Camera

List Files on Camera

Copy all files from SD Card

Live Capture Setup

Live Capture

Tested Cameras

Use gphoto2 to Configure DSLR