An Open Letter To Camera Manufacturers

Silicon is found everywhere today. What used to be the domain of nitrocellulose, emulsion, and mechanical components is now light-reactive silicon, software algorithms, and computers. Inside even the simplest digital camera is much the same components you find in your desktop PC: a CPU, Input/Output, and Memory. (My CS-101 professor woud be so proud that I remember the basic building blocks of any computer.)

What I find personally frustrating is that I cannot use the computer inside my camera in any way other than what the manufacturer intended. Who today would be happy buying a home computer that could only run the software installed at the factory?

Why is my camera not programmable? Why can I not load new abilities onto it just as I do at my desk? Even my phone takes new programs!

What I want to see is a camera that has a language from which I can write programs to control its functions. This could be Python, Java, or even Pawn. It should be obvious from history that as soon as something is completely flexible, people start using it in ways that were never expected.

I like night photography, but the High Dynamic Range of such exceeds the capabilities of modern-day digital sensors. To compensate, I take multiple exposures with different shutter times and merge them using special “hdr” software.

The mixing is a fairly easy process with the exception of the alignment of the photos. Even with a tripod, touching the camera to change the shutter time moves the camera slightly and the resulting photos end up offset by a few pixels in some direction.

If the camera were programmable, I would have it take multiple exposures all by itself,
stopping automatically when it has all that are needed. I would write something like this:

function TakeHDR() {
    raise mirror        // do it once for all shots
    wait 5 seconds      // let mirror shake settle out
    let T = 30 seconds
    do {
        set shutter time to T
        take photo
        save photo
        let T = T / 4   // next at -2 stops exposure
        create histogram of photo
    } while (photo has any pixel's R,G,B at maximum value)
    lower mirror
    signal "all done"

With that simple program, I’d get a series of shots, each 2 stops faster in exposure, until there were no overexposed pixels. Because there was no need to touch the camera, all of the images would be perfectly aligned.

How important is this feature to me? I would actually consider switching my equipment from Nikon to another to get this.

Share This:

4 comments to An Open Letter To Camera Manufacturers

  • anon

    You can do this with hacked Canons:

    .. but you probably already know that.

    You probably also know about the fully open source (hardware/software) Elphel cameras that Google uses for streetview/books and that NASA uses on Global Hawk UAV drones:

  • bcwhite

    Thanks for the links. I do know about the Canon hack though it’s only for their point-and-shoot models, not their SLRs. I didn’t know about Elphel cameras.

  • Have you seen the “DSLR Controller” app on the Android Market? There’s actually several different apps that that let you control the camera and get a live-view on your android phone by connecting the camera via USB to the phone. Now all you need to do is convince one of those app-developers to also add the ability to script the action, and you’ll be able to do those photos!

  • I know of it, but it’s only for Canon. There is development of a Nikon one ( but I’m not sure of its status.
    Even so, there’s no reason why the camera itself can have an internal API and program storage.

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>