Add features via firmware?

Started 6 months ago | Discussions
David5833 Contributing Member • Posts: 545
Add features via firmware?

After enjoying highlight-weighted metering and group area AF on other Nikons, I now miss having them on my D7200. So, I was wondering if a clever geek could add those functionalities via firmware, or would they also require hardware changes? Just curious, thinking about Magic Lantern and Canon.

-
https://www.flickr.com/gp/143821723@N06/sRBm53

 David5833's gear list:David5833's gear list
Canon G9 X II Nikon D810 Nikon D7500 Nikon AF Micro-Nikkor 200mm f/4D ED-IF Sigma 15mm F2.8 EX DG Diagonal Fisheye +7 more
Nikon D7200
If you believe there are incorrect tags, please send us this post using our feedback form.
john Clinch Veteran Member • Posts: 3,669
Re: Add features via firmware?

My hunch is that it needs to higher resolution chip in the exposure sensor, so no

David Lal Forum Pro • Posts: 10,233
And for the D500 ...

David5833 wrote:

After enjoying highlight-weighted metering and group area AF on other Nikons, I now miss having them on my D7200. So, I was wondering if a clever geek could add those functionalities via firmware, or would they also require hardware changes?

.. correct the omission of a built-in flash tube!

DStan
DStan Forum Pro • Posts: 10,725
Re: Add features via firmware?

The source code for the camera is proprietary, not open source. Who is willing to disassemble and or decompile the firmware, figure it out an make changes? That is a huge undertaking as in a fulltime job.  When Nikon makes an update this would have to be figured out and reconciled into one's private fork. One would have to do this for every model. Then there's the possibility of legal issues.

So who's willing to take this on? Not me.

-- hide signature --

Stan ;o()
In the spirit of Occam’s Razor one should embrace the less complicated formulation or simply put, less is more.
http://standavidson.com/post/Birds

blue_cheese
blue_cheese Senior Member • Posts: 1,880
Re: Add features via firmware?

If your binary firmware is not encrypted and signed then you should not be in business in 2018...

Unless you are the NSA, brute force disassembly of encrypted firmware is not a trivial task.

-- hide signature --

-- lets get rid of all the warning labels --

DStan
DStan Forum Pro • Posts: 10,725
Re: Add features via firmware?

blue_cheese wrote:

If your binary firmware is not encrypted and signed then you should not be in business in 2018...

Unless you are the NSA, brute force disassembly of encrypted firmware is not a trivial task.

Even if it's not encrypted, disassembly and or decompiling software alone is a painful task when you won't have meaningful names for functions, parameters and variables, etc. because one would have to make sense of it all and understand it before modification can proceed. Oops, new release, start over again. Sounds like a fool's errand.

-- hide signature --

Stan ;o()
In the spirit of Occam’s Razor one should embrace the less complicated formulation or simply put, less is more.
http://standavidson.com/post/Birds

OP David5833 Contributing Member • Posts: 545
Re: Add features via firmware?

DStan wrote:

The source code for the camera is proprietary, not open source. Who is willing to disassemble and or decompile the firmware, figure it out an make changes? That is a huge undertaking as in a fulltime job. When Nikon makes an update this would have to be figured out and reconciled into one's private fork. One would have to do this for every model. Then there's the possibility of legal issues.

So who's willing to take this on? Not me.

Is Nikon different from Canon in that regard, or is adding features like highlight weighted metering or group area AF different from what Magic Lantern does for Canon?  I realize that ML does not replace or modify Canon code, it runs alongside it.

 David5833's gear list:David5833's gear list
Canon G9 X II Nikon D810 Nikon D7500 Nikon AF Micro-Nikkor 200mm f/4D ED-IF Sigma 15mm F2.8 EX DG Diagonal Fisheye +7 more
DStan
DStan Forum Pro • Posts: 10,725
Re: Add features via firmware?

David5833 wrote:

DStan wrote:

The source code for the camera is proprietary, not open source. Who is willing to disassemble and or decompile the firmware, figure it out an make changes? That is a huge undertaking as in a fulltime job. When Nikon makes an update this would have to be figured out and reconciled into one's private fork. One would have to do this for every model. Then there's the possibility of legal issues.

So who's willing to take this on? Not me.

Is Nikon different from Canon in that regard, or is adding features like highlight weighted metering or group area AF different from what Magic Lantern does for Canon? I realize that ML does not replace or modify Canon code, it runs alongside it.

From what I understand the Canon firmware can read in additional routines from a memory card. I don't think Nikon allows for this.

-- hide signature --

Stan ;o()
In the spirit of Occam’s Razor one should embrace the less complicated formulation or simply put, less is more.
http://standavidson.com/post/Birds

FingerPainter Senior Member • Posts: 6,585
Re: Add features via firmware?

David5833 wrote:

DStan wrote:

The source code for the camera is proprietary, not open source. Who is willing to disassemble and or decompile the firmware, figure it out an make changes? That is a huge undertaking as in a fulltime job. When Nikon makes an update this would have to be figured out and reconciled into one's private fork. One would have to do this for every model. Then there's the possibility of legal issues.

So who's willing to take this on? Not me.

...

Is Nikon different from Canon in that regard, or is adding features like highlight weighted metering or group area AF different from what Magic Lantern does for Canon? I realize that ML does not replace or modify Canon code, it runs alongside it.

The fact that there is no Magic Lantern for Nikon cameras might give you a hint about the relative ease of making third-party firmware adjustments to Nikon cameras.

David Lal Forum Pro • Posts: 10,233
Designed-in firmware extensibility

DStan wrote:

From what I understand the Canon firmware can read in additional routines from a memory card. I don't think Nikon allows for this.

I know nothing of Canon firmware but if what you say is true then that is very different from the Nikon situation as it implies that Canon designed extensibility into the firmware.

I rather think Nikon would do the complete opposite. Finding a place in lump of compiled code where one can jump out and then somewhere else to jump back in again is, as you say, a daunting, fulltime task.

mosswings Veteran Member • Posts: 8,943
Re: Add features via firmware?

David5833 wrote:

DStan wrote:

The source code for the camera is proprietary, not open source. Who is willing to disassemble and or decompile the firmware, figure it out an make changes? That is a huge undertaking as in a fulltime job. When Nikon makes an update this would have to be figured out and reconciled into one's private fork. One would have to do this for every model. Then there's the possibility of legal issues.

So who's willing to take this on? Not me.

Is Nikon different from Canon in that regard, or is adding features like highlight weighted metering or group area AF different from what Magic Lantern does for Canon? I realize that ML does not replace or modify Canon code, it runs alongside it.

Canon is somewhat unusual in that its operating system is partially accessible to clever hackers (the acronym CHDK should give you a hint as to how truly Canon-supported this accessibility is - the H stands for Hack). Sony created a more robust applications programming interface for their Play Memories feature in their cameras (now quietly being deprecated). Nikon has NEVER made its operating system available to consumers, and given Nikon's extreme aversion to open-source and NIH, almost assuredly never will.

So from just an API point of view you're out of luck.

From a practical point of view, your desire to hack top end Nikon AF features like Group AF into a lower end body would not really be possible, because these features depend deeply on components as well as programs not found in lower end bodies. The D7200 has a relative crude exposure sensor - so 3D Tracking and subject feature detection that plays into the performance of the higher end bodies isn't possible.  It also doesn't have all the rest of the AF subsystem, processor, etc. that supports these features.

 mosswings's gear list:mosswings's gear list
Olympus XZ-1 Olympus Stylus 1 Nikon D90 Nikon D7100 Nikon AF-S DX Nikkor 18-105mm f/3.5-5.6G ED VR +5 more
john Clinch Veteran Member • Posts: 3,669
Re: Add features via firmware?

From a practical point of view, your desire to hack top end Nikon AF features like Group AF into a lower end body would not really be possible, because these features depend deeply on components as well as programs not found in lower end bodies. The D7200 has a relative crude exposure sensor - so 3D Tracking and subject feature detection that plays into the performance of the higher end bodies isn't possible. It also doesn't have all the rest of the AF subsystem, processor, etc. that supports these features.

Thanks for this input, I said quite early that some of the hardware isn't there. But that doesn't seem to have been taken into account

OP David5833 Contributing Member • Posts: 545
Re: Add features via firmware?

mosswings wrote:

Canon is somewhat unusual in that its operating system is partially accessible to clever hackers (the acronym CHDK should give you a hint as to how truly Canon-supported this accessibility is - the H stands for Hack). Sony created a more robust applications programming interface for their Play Memories feature in their cameras (now quietly being deprecated). Nikon has NEVER made its operating system available to consumers, and given Nikon's extreme aversion to open-source and NIH, almost assuredly never will.

So from just an API point of view you're out of luck.

From a practical point of view, your desire to hack top end Nikon AF features like Group AF into a lower end body would not really be possible, because these features depend deeply on components as well as programs not found in lower end bodies. The D7200 has a relative crude exposure sensor - so 3D Tracking and subject feature detection that plays into the performance of the higher end bodies isn't possible. It also doesn't have all the rest of the AF subsystem, processor, etc. that supports these features.

It was not my "desire to hack" features, just my curiosity about whether or not it would be possible via firmware upgrade. If it WAS possible and someone came up with a way to do it legally, safely, and inexpensively, I certainly might take advantage of it    but my question was really just for the sake of curiosity. Your reply and those of others indicate that it would not only be very difficult to accomplish in software but would require different hardware as well, so that pretty much answers it (and probably explains why it hasn't been done already). Thanks, I appreciate your comments.

 David5833's gear list:David5833's gear list
Canon G9 X II Nikon D810 Nikon D7500 Nikon AF Micro-Nikkor 200mm f/4D ED-IF Sigma 15mm F2.8 EX DG Diagonal Fisheye +7 more
mosswings Veteran Member • Posts: 8,943
Re: Add features via firmware?

David5833 wrote:

mosswings wrote:

Canon is somewhat unusual in that its operating system is partially accessible to clever hackers (the acronym CHDK should give you a hint as to how truly Canon-supported this accessibility is - the H stands for Hack). Sony created a more robust applications programming interface for their Play Memories feature in their cameras (now quietly being deprecated). Nikon has NEVER made its operating system available to consumers, and given Nikon's extreme aversion to open-source and NIH, almost assuredly never will.

So from just an API point of view you're out of luck.

From a practical point of view, your desire to hack top end Nikon AF features like Group AF into a lower end body would not really be possible, because these features depend deeply on components as well as programs not found in lower end bodies. The D7200 has a relative crude exposure sensor - so 3D Tracking and subject feature detection that plays into the performance of the higher end bodies isn't possible. It also doesn't have all the rest of the AF subsystem, processor, etc. that supports these features.

It was not my "desire to hack" features, just my curiosity about whether or not it would be possible via firmware upgrade. If it WAS possible and someone came up with a way to do it legally, safely, and inexpensively, I certainly might take advantage of it but my question was really just for the sake of curiosity. Your reply and those of others indicate that it would not only be very difficult to accomplish in software but would require different hardware as well, so that pretty much answers it (and probably explains why it hasn't been done already). Thanks, I appreciate your comments.

My apologies for being brusque. I was trying to point out that Nikon doesn't permit it, but really neither does Canon - the CHDK stuff was, indeed, hacked by enthusiasts taking advantage of a back door into the Canon UI. There are warnings all over the CHDK site to this effect. It takes a fair amount of UI programming to properly support 3rd party applications, as Sony has found out.

Certainly Nikon's UI has a firmware update portal - they do provide the rare firmware update - but hold the API protocol very close to the vest. It would be great if camera design was standardized enough that we COULD effectively modularize/appify them. The CHDK effort shows just how much can be done - at least outside of the very critical capture algorithms. I'd welcome it, although I'm skeptical as to whether or not providing such advanced features as Group AF with the desired reliability and speed would be possible without close cooperation with Nikon itself.

 mosswings's gear list:mosswings's gear list
Olympus XZ-1 Olympus Stylus 1 Nikon D90 Nikon D7100 Nikon AF-S DX Nikkor 18-105mm f/3.5-5.6G ED VR +5 more
DStan
DStan Forum Pro • Posts: 10,725
Re: Designed-in firmware extensibility

David Lal wrote:

DStan wrote:

From what I understand the Canon firmware can read in additional routines from a memory card. I don't think Nikon allows for this.

I know nothing of Canon firmware but if what you say is true then that is very different from the Nikon situation as it implies that Canon designed extensibility into the firmware.

I rather think Nikon would do the complete opposite. Finding a place in lump of compiled code where one can jump out and then somewhere else to jump back in again is, as you say, a daunting, fulltime task.

Back in the day, when I worked on embedded MCU systems, not cameras, I used to do that all the time. Let's see, when I patched linked code for an eprom, I already had the source code, with comments. Either I wrote the code or someone that worked for me did, otherwise, forget about it. Digital cameras, at the time no such thing, what a great idea.

-- hide signature --

Stan ;o()
In the spirit of Occam’s Razor one should embrace the less complicated formulation or simply put, less is more.
http://standavidson.com/post/Birds

DStan
DStan Forum Pro • Posts: 10,725
Re: Add features via firmware?

mosswings wrote:

David5833 wrote:

DStan wrote:

The source code for the camera is proprietary, not open source. Who is willing to disassemble and or decompile the firmware, figure it out an make changes? That is a huge undertaking as in a fulltime job. When Nikon makes an update this would have to be figured out and reconciled into one's private fork. One would have to do this for every model. Then there's the possibility of legal issues.

So who's willing to take this on? Not me.

Is Nikon different from Canon in that regard, or is adding features like highlight weighted metering or group area AF different from what Magic Lantern does for Canon? I realize that ML does not replace or modify Canon code, it runs alongside it.

Canon is somewhat unusual in that its operating system is partially accessible to clever hackers (the acronym CHDK should give you a hint as to how truly Canon-supported this accessibility is - the H stands for Hack). Sony created a more robust applications programming interface for their Play Memories feature in their cameras (now quietly being deprecated). Nikon has NEVER made its operating system available to consumers, and given Nikon's extreme aversion to open-source and NIH, almost assuredly never will.

So from just an API point of view you're out of luck.

From a practical point of view, your desire to hack top end Nikon AF features like Group AF into a lower end body would not really be possible, because these features depend deeply on components as well as programs not found in lower end bodies. The D7200 has a relative crude exposure sensor - so 3D Tracking and subject feature detection that plays into the performance of the higher end bodies isn't possible. It also doesn't have all the rest of the AF subsystem, processor, etc. that supports these features.

The D7200 has 3D tracking. The D300 had this with far less processing power, although not as capable when it comes to response time. As far as hacking these cameras, I'd rather buy a higher end model then spend my life on a fool's errand. 

I don't think it would be in the best interests of any camera manufacturer to publish a public API for their cameras, let alone to open source their code.

-- hide signature --

Stan ;o()
In the spirit of Occam’s Razor one should embrace the less complicated formulation or simply put, less is more.
http://standavidson.com/post/Birds

mosswings Veteran Member • Posts: 8,943
Re: Add features via firmware?

DStan wrote:

mosswings wrote:

David5833 wrote:

DStan wrote:

The source code for the camera is proprietary, not open source. Who is willing to disassemble and or decompile the firmware, figure it out an make changes? That is a huge undertaking as in a fulltime job. When Nikon makes an update this would have to be figured out and reconciled into one's private fork. One would have to do this for every model. Then there's the possibility of legal issues.

So who's willing to take this on? Not me.

Is Nikon different from Canon in that regard, or is adding features like highlight weighted metering or group area AF different from what Magic Lantern does for Canon? I realize that ML does not replace or modify Canon code, it runs alongside it.

Canon is somewhat unusual in that its operating system is partially accessible to clever hackers (the acronym CHDK should give you a hint as to how truly Canon-supported this accessibility is - the H stands for Hack). Sony created a more robust applications programming interface for their Play Memories feature in their cameras (now quietly being deprecated). Nikon has NEVER made its operating system available to consumers, and given Nikon's extreme aversion to open-source and NIH, almost assuredly never will.

So from just an API point of view you're out of luck.

From a practical point of view, your desire to hack top end Nikon AF features like Group AF into a lower end body would not really be possible, because these features depend deeply on components as well as programs not found in lower end bodies. The D7200 has a relative crude exposure sensor - so 3D Tracking and subject feature detection that plays into the performance of the higher end bodies isn't possible. It also doesn't have all the rest of the AF subsystem, processor, etc. that supports these features.

The D7200 has 3D tracking. The D300 had this with far less processing power, although not as capable when it comes to response time. As far as hacking these cameras, I'd rather buy a higher end model then spend my life on a fool's errand.

I don't think it would be in the best interests of any camera manufacturer to publish a public API for their cameras, let alone to open source their code.

Sorry, I wasn't clear. 3D-tracking has been a staple of Nikon bodies for years, but it's never been able to track quickly moving smaller subjects until the advent of the 91K and higher resolution exposure sensors. It's really been in my experience more frustration than help - more of a focus-and-recompose aid than anything else. With the D7500 and higher end Nikons, the exposure sensor has become truly capable of fast subject feature recognition on finer and finer scales, similar to what mirrorless cameras do at the native resolution of the main sensor - not just crude blocks of color that contrast with the background, as in cameras like the d90, d7000, d7100, and d7200.

The OP wanted performance like what he enjoyed with his high end Nikons...that won't happen without similar physical components and higher end processors. My comments were targeted towards that level of performance.

 mosswings's gear list:mosswings's gear list
Olympus XZ-1 Olympus Stylus 1 Nikon D90 Nikon D7100 Nikon AF-S DX Nikkor 18-105mm f/3.5-5.6G ED VR +5 more
Tom_N Forum Pro • Posts: 14,080
Re: Add features via firmware?

David5833 wrote:

Is Nikon different from Canon in that regard, or is adding features like highlight weighted metering or group area AF different from what Magic Lantern does for Canon? I realize that ML does not replace or modify Canon code, it runs alongside it.

The reverse engineering done for CKDK / Magic Lantern is the exception that proves the rule.  Just because some people figured out a way to do it for one set of Canon compact cameras, and were kind enough to release the work for free, doesn't mean that you can reasonably expect someone to do the equivalent for other cameras.

OP David5833 Contributing Member • Posts: 545
Re: Add features via firmware?

Tom_N wrote:

David5833 wrote:

Is Nikon different from Canon in that regard, or is adding features like highlight weighted metering or group area AF different from what Magic Lantern does for Canon? I realize that ML does not replace or modify Canon code, it runs alongside it.

The reverse engineering done for CKDK / Magic Lantern is the exception that proves the rule. Just because some people figured out a way to do it for one set of Canon compact cameras, and were kind enough to release the work for free, doesn't mean that you can reasonably expect someone to do the equivalent for other cameras.

I think my questions have been answered. I've learned that the consensus here seems to be a) that a Magic Lantern equivalent for Nikon would be a herculean task and b) that Canon is different from Nikon in that regard. I've also learned that adding the specific features I asked about would be unlikely anyway, since people have pointed out that they depend also on hardware.

OTOH, nikonhacker.com seems to have gone at least partially towards that before apparently shutting down (does anybody know what that story is?) As to "reasonable" expectations, difficult is not impossible, and with the right combination of diligence, understanding, creativity, and luck, I'm not holding my breath, but wouldn't be surprised if it did happen at some point. Tech today is awesome to an old semi-luddite like me, and it seems to reward some people extremely well, even when the work is planned to be released "for free"; "kindness" in those cases is admirable but isn't necessarily the only driving force. Just be sure to keep the Russians out of it.    j/k, tovarishchi.

If anyone is interested, according to their website Magic Lantern is available for the following Canon cameras: 5D Mark II, 5D Mark III, 6D, 7D, 50D, 60D, 500D/T1i, 550D/T2i, 600D/T3i, 650D/T4i, 700D/T5i, 1100D/T3, EOS M, with others in development. https://magiclantern.fm/

 David5833's gear list:David5833's gear list
Canon G9 X II Nikon D810 Nikon D7500 Nikon AF Micro-Nikkor 200mm f/4D ED-IF Sigma 15mm F2.8 EX DG Diagonal Fisheye +7 more
Keyboard shortcuts:
FForum MMy threads