“Camera Pi” – David Hunt hacks his Canon EOS 5D Mark II with an embedded computer!

by planetMitch11 Comments

We covered this cool little gizmo over on the HDSLR news last week but the more I look at it, the more I thought you might be very interested in reading about it on the blog in case you're not reading our HDSLR news page (which is a real shame because you're missing out on a lot). David Hunt is attempting to use what's called a single board computer (SBC) to modify his five D2 to attempt to do some really cool stuff.

The Raspberry Pi is a single board computer that can run Linux. So what David has done here is to take that board and insert it into a broken Canon EOS 5D Mark II battery grip and is attempting to do some cool things with the software. Here are some of his ideas about what he can do from his blog post.

Possibilities include:

  • Wireless tethered shooting – attach a Wifi dongle to the USB port, so I can transmit pictures to a PC or tablet PC as I’m shooting.
  • Attach a USB memory key or hard drive so I can back up the images on the camera.
  • Remote control the camera using a PC, tablet PC or smartphone (from anywhere in the world).
  • Intervalometer – take a picture every few seconds for those high-speed sunset sequences, including exposure adjustment as you go.
  • On-the-fly image conversion for faster previews on remote display device (iPad, etc).
  • Add a small LCD display to give status, allow user input via buttons, etc.
  • Trigger camera via shutter release port, also allows waking up of sleeping camera, which cant be done via USB.


The possibilities of this device are really intriguing. Just imagine what you could do with a combination of this device and magic lantern!
Canon, are you watchin?

David Hunt's Raspberry Pi hacked battery grip on his Canon EOS 5D Mark II

Here's more from David Hunt's blog:

So what I’ve done is take an old (broken) battery grip that I had lying around (for my Canon 5D Mark II), and made a few modifications to it so I could fit the Raspberry Pi SBC (Single Board Computer) into it. I left a few holes in the case so that I could get at the USB and network ports, and video port. it’s a fully functioning computer with a Linux Operating System (Raspbian), has 2 USB, network, video, HDMI and GPIO.

An image of the bottom of David's modified Canon EOS 5D Mark II grip – click to read more on his blog

a bit more from his blog… you really should read it 🙂

There’s plenty of work to be done on the software side of things but the prototype is working. I can pull images from the camera and transmit them via either Wifi or ethernet. There’s a significant problem with the current USB drivers on the Raspbian linux disribution, though. After a few requests to the camera, the gphoto app responds with “Unknown Error”, and the only solution seems to be to unplug the usb cable and re-insert it. Not a workable solution, so I’ll have to look into that. Works fine on my other linux box, but a full-sized PC won’t fit into the battery grip!

–Note– I found a wee ‘C’ code snippet that will reset a USB port, and that seems to do the trick if I call it between each gphoto2 call. Not ideal, but it gets me away from constantly unplugging the cable….

What do you think? Does it have possibilities?

Sound off in the comments below!

(cover photo credit: snap from David's site)


  1. -Convertion from RAW to jpeg
    -Sound recorder for external mic
    -Off camera flash control and HSS
    -Micro-controller for timelapse dolly
    -GPS solution

  2. Nikon D800 is inferior camera to 5D mk III, however D800 has HDMI out. You can get 10 bit with atomos. You can’t with Mk III

    All of a sudden, the Nikon becomes the superior camera

    1. 5dMk2 is better than the 3. It’s too blury for video. I even wonder if Canon did it to increase sales of C300 and higher models. As for the D800 it’s dynamic range and detail are amazing. Its robust the histogram while recording is a pleasure to use.

  3. Magic Lantern shooting a bulb ramped 9 shot HDR on a motorized glider with a pan head using gphoto2 for focusing as well… A little too much for an arduino, but the possibilities are unlimited for a Pi.

    This would also work with your common powershot hacked with CHDK, shooting in raw.

    One step farther… I can use my smartphone as my interface. I’m working on something in this general direction as well.

    Cameras become more fun when we start soldering things to them…

  4. Brilliant! A place for app developers to bring photography to another level. Treat your IP with care or you might be well flattered.

  5. Hi, i`m using raspberry pi and gphoto2-2.5.2(on truth, a program in Java that control much functions from camera). With a camera Canon 5D mark II, to a the project Time-lapse of images. Just left solver one error that let me sad .. :`(

    Ultimatelly, the error happens when I connect the camera in the raspberry pi o/ my distro is Raspbian Wheezy as the project of david… return a prompt ~Unespecified error -1~

    form the command line, when I take “gphoto2 –capture-image” return following the line errors:

    PTP I/O error

    something respect io library…

    any help, I`ll stay happy.

Leave a Comment