When reading reviews of cameras there are often complaints about features that could be easily resolved with external software, such as zebra patterning, intervalometers, HDR modes, custom menus, etc. However all camera manufacturers (if we discount phone makers) seem to use closed-source software with no official options for after-market modifications. Magic lantern has made some progress in fine-tuning Canon cameras, but their efforts are impeded by Canon's closed policy requiring extra effort for every new model on the market.

So why haven't we seen camera manufacturers embracing external development efforts? Is it that they extensively use sandbagging on low-end cameras to upsell their professional models? Is it that it would be too expensive to modify their firmware to support add-ons? Or perhaps most camera users don't really care for those extra features, so it would be a waste of time to open up your systems?

  • 4
    \$\begingroup\$ Only the camera makers can say for sure. Everyone else is just guessing. Voting to close as primarily opinion based. \$\endgroup\$
    – Michael C
    Dec 26, 2017 at 20:39
  • \$\begingroup\$ @MichaelClark I'm sure one of the camera manufacturers have answered this question at least once in the past 10 years... \$\endgroup\$ Dec 26, 2017 at 20:53
  • \$\begingroup\$ @MichaelClark it is opinion-based but there are logical design decisions involved in making cameras closed systems. I think it's important to understand those. maybe question should be more of a "whats the key difference between open-source and closed-source cameras" \$\endgroup\$ Dec 26, 2017 at 21:23
  • 2
    \$\begingroup\$ I have to agree with @MichaelClark's assessment. Very few manufacturers of anything actually answer the question "why is application/market-specific product X not more like a PC where users can run anything they want on them?" There are many valid answers (market segmentation; competitive advantage; etc.) that are probably all part of the answer, but it's in no manufacturer's interest to blink before their competition does, and answer the question. Voting to close as primarily opinion based. \$\endgroup\$
    – scottbb
    Dec 27, 2017 at 0:53

4 Answers 4


I think the biggest concern is that custom firmware could force a camera to operate outside of its normal operating limits, thus making it possible to break it with software.

There would be no way for the manufacturer to prove this occurred thus they would have to honor the warranty, despite the user abusing the camera (with software).

  • \$\begingroup\$ Protecting the hardware is one of the tasks of the operative system, just like in a phone. \$\endgroup\$
    – Davidmh
    Jan 1, 2018 at 10:48

I suspect that part of the problem is that until recently, cameras were fairly closed off "bespoke" embedded devices—there was no real money in releasing free firmware, and the systems were "unusual" enough that you'd have to dump the firmware out, do some pretty serious reverse engineering, and test per model.

In theory, even if a platform was closed off, if it was a standard and well understood enough, people would reverse engineer it and build things on top of it.

With some more modern cameras, there are camera companies that can/do upsell apps. For example, Sony's Alpha series basically runs something similar to Android, and it's a little easier to develop for, since you don't have to dump the whole OS—you just work out what the API is. I've got openPMCA, and from the end user standpoint, it's easier. I'd note the official app store is a way to basically sell DLCs for your hardware. There's no real money in releasing an API, unless your competitor did it.

This is a little less risky than reverse engineering and writing your own firmware (though not as easy as the old Samsung cameras, that basically ran Android).

Even then, there's sometimes reverse engineering going on that lets you 'unlock' features; CHDK, while limited, unlocked a bunch of useful features. That said each model and revision of camera had to have a separate build with all that entailed.

While I'm sure that the stock features on cameras were differentiated for different products, camera manufacturers are probably not actively trying to stop people from adding features to their cameras.

  • \$\begingroup\$ Wow, so the Sony A7 series let you run custom Android apps? That's amazing! I wonder why reviews don't mention this unique feature. \$\endgroup\$ Dec 31, 2017 at 11:25
  • \$\begingroup\$ In theory, you can sideload other android apps using openPMCA - its third party, but from what I can tell, dosen't alter the firmware at all. I've got it on an alpha 5100. It was a reason I bought this camera - and its supported on a pretty wide range of sony mirrorless cameras. \$\endgroup\$ Dec 31, 2017 at 11:28

My own answer would be that the primary reason for disallowing it is that it would prevent sandbagging by the camera manufacturers. E.g. here are some software-only features in the latest generation of Canon cameras that could be available on any model rather than limited to higher-end products:

  • Built-in intervalometer
  • Built-in bulb timer
  • Microfocus adjustment
  • Ability to fire manual flashes in Live View mode
  • Unlimited bracketing options
  • Ability to attempt focus at any aperture, rather than limited to f/5.6.
  • Being able to re-program any button to any functions
  • Shooting videos over 29 minutes
  • Unlimited menu customization (e.g. having the Fn section as a separate tab)
  • GPS tagging when connected via WiFi to a phone
  • Focus stacking mode
  • Detailed battery level indicator

While this would be fantastic news for users (just take a look at how popular Magic Lantern is), it would hurt the opportunities for upselling products and reduce profit margins, which are already quite thin as far as I know.

  • \$\begingroup\$ Exactly. All camera's have a very good image quality these days, and most people don't really look in to the details of what their light meter and AF sensors can do, so the main reason to buy a new body or a more expensive body is that it offers more functions, such as rear curtain flash, HDR or the ones mentioned above. \$\endgroup\$
    – Orbit
    Dec 31, 2017 at 12:58

Key point is that modern digital camera is a pretty "embedded" system, as you want to optimize it to fit hardware as much as possibly. This is done in order to maximize performance while striving for least weight, power consumption, manufacturing costs, and complexity.

Open-source cameras of course exist (check Raspberry Pi camera), but they use commodity hardware. Other cameras, especially high-end DSLRs often use custom CPU designs that might use very different architecture from "standard" CPUs. That means that you will have to compile your software using specialized compilers, that can contain trade secrets and that can be reverse-engineered if given to public.

To address one point specifically:

Is it that they extensively use sandbagging on low-end cameras to upsell their professional models?

As you heard recently, Apple intentionally "slows down" their iphones when battery is low. You can think that is sandbagging, but also you can consider that as a feature that protects user's experience with the phone. Same with cameras: they are designed and tested for limited functions, and trying to "fine-tune" them can create unstable operation. Thus, camera companies choose to limit flexibility in order to deliver and advertise optimal performance. They choose to make closed system, and not to spend time and money on making something more flexible, very expensive effort to do well. And they don't want to do bad job at making camera more open.

  • 1
    \$\begingroup\$ Given that the same processor is used in the very limited Canon 200D and the much less limited 77D, this argument doesn't really seem to hold water. It's de facto the same hardware, so they've already tested it and know it works. \$\endgroup\$
    – Philip Kendall
    Dec 26, 2017 at 22:47

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