Spring 2012

Spring 2012
by ani

Submit your Photo
Hall of Fame

Please participate in Meta
and help us grow.

Photography Stack Exchange is a question and answer site for professional, enthusiast and amateur photographers. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm a seasoned photographer who used to have a nikon until recently and I am now thinking of buying a new camera and want to experiment more with it. The types of things I want to do is:

  1. control the shutter based on signals from a computer (based on sensors/external timers/etc) or arduino boards
  2. Look into the software to change some of the limits (min ISO, bracketing, etc)
  3. Especially, I want to look at and learn from other peoples' project with their cameras.

Hence, do you know which brand between Canon and Nikon would have this open hacking ecosystem around it?

And where can I find forums/github repos/DIY/etc where people talk about that stuff?


share|improve this question
You might want to look into less known "brands" such as Kickstarter projects- kickstarter.com/projects/761738591/… – dpollitt Mar 14 '13 at 18:56
A starting point for research could be: photo.stackexchange.com/questions/35185/… – Regmi Mar 14 '13 at 19:33

Canon wins hands down in this regard. Many of Canon's compacts can run CHDK (sources), which exposes otherwise unavailable functionalities. The more recent DSLRs can run Magic Lantern (sources). Magic Lantern adds huge amounts of functionality, including the ability to shoot timelapse and HDR within the camera, and a built-in intervalometer.

Manipulating the shutter is pretty easy on both Canon and Nikon DSLRs, and can be done both via a dedicated shutter release jack on the side of the camera or via USB using (or reverse engineering) the tethered shooting API.

share|improve this answer
Not sure Canon wins hands down given Nikon have a published SDK. CHDK and Magic Lantern are certainly more well known though – MikeW Mar 15 '13 at 1:09
I'd say having a hack running in the camera does win hands down against having to keep a computer connected. – Imre Mar 15 '13 at 7:14
maybe I misunderstood his desire to "control the shutter based on signals from a computer" – MikeW Mar 15 '13 at 8:11
maybe he didn't dare to dream he'd actually be able to program the device itself. – PeterT Mar 15 '13 at 11:44
Hi, thanks! I will look into all this info soon! :) From your reply, and others', it seems Canon is the way to go. Too bad because the nikon d7000 is much cheaper than the canon 6d. – pipo17171 Mar 16 '13 at 21:28


There is a hacked firmware extension for Canon called CHDK, which is pretty extensive and well-documented. A lot of the features are in-camera I think, but there are UBASIC scripts for doing intervalometer type stuff. There are a lot of CHDK-related questions and answer on this site.


Nikon has an official SDK which allows you to:

  • query/change camera settings such as exposure, ISO, aperture
  • trigger the shutter and receive images into memory
  • receive Live View images
  • record video

Nikon does not support it officially, the documentation is not that extensive, and I'm not aware of a community where you can get a lot of help. The SDK includes some very basic sample programs to get you going.

There is an open source project SDK C# Wrapper which provides a C# wrapper around the SDK.

There is another open source project digiCamControl (.NET) which provides tethering, bracketing, intervalometer functionality, and more for most Nikon DSLRs.

share|improve this answer
Hi, thanks! I will look into all this info soon! :) From your reply, and others', it seems Canon is the way to go. Too bad because the nikon d7000 is much cheaper than the canon 6d. – pipo17171 Mar 16 '13 at 21:29
If you have Nikon, there are options, but Canon has the more mature offerings. – MikeW Mar 16 '13 at 21:50

I would say in terms of order

  1. Sony
  2. Canon

Sony has a repo where you can have access to the operating system, if doing embedded development is your kind of thing. You can access their current repository here.

Canon because of the Magic Lantern work and the fact that they do publish some form of API to work with DryOS.

If you were a end user who had no real interest in running debug dumps, I'd say Canon is a pretty good bet due to progress on Magic Lantern. The list of cameras that work are not inclusive of everything that Canon has made but they include some of them more common and popular ones.

The question and related answers Operating Systems in DSLR might also be of interest to you.

share|improve this answer
Hi, thanks! I will look into all this info soon! :) From your reply, and others', it seems Canon is the way to go. Too bad because the nikon d7000 is much cheaper than the canon 6d. – pipo17171 Mar 16 '13 at 21:30

Magic Lantern is a very widely used and supported third party application that runs on multiple Canon platforms and adds a lot of functionality and access to the hardware. I don't think either platform really supports the hacking community, but Canon hasn't really tried to fight it directly too much from what I understand. I'm not a Nikon guy, so I can't really comment on what is available on the Nikon side.

share|improve this answer
thank you, I will look into Magic Lantern! – pipo17171 Mar 16 '13 at 21:30

Here is a link to a great hack of controlling a Canon 5D mark 2 with a Raspberry PI. It puts the R-PI in a battery/grip so it looks normal.


My guess is that neither Canon nor Nikon want to encourage these hacks, but I love them.

share|improve this answer
Actually, Canon is pretty grown-up about Magic Lantern. From various CPS responses, the official Canon line seems to be that any warranties on Canon equipment are still valid as long as the custom firmware isn't directly responsible for the damage. – Chinmay Kanchi Mar 14 '13 at 22:34
Wow, that's pretty cool – Pat Farrell Mar 14 '13 at 23:58
thank you! I checked the link, pretty cool! – pipo17171 Mar 16 '13 at 21:31

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.