Why can’t the 5Dmk3,1D X and Nikon cameras be completely automated?

When FoCal was first launched, it supported the Canon EOS 5D Mark II and 7D and could run a complete calibration with absolutely no user interaction.  We added further Canon cameras, and then when we added support for Nikon cameras we hit a stumbling block which meant that the software couldn’t control one particular setting.  With the release of the Canon EOS 5D Mark III and EOS-1D X we found the same problem with these 2 Canon cameras.  We overcame this with the introduction of Manual Setting Change mode which asks you to change this setting on the camera when needed.  But what we would love is to be able to automate control of this setting for all cameras.  Why is it so difficult?


What’s the problem?

FoCal takes control of the camera from the computer it’s connected to.  In order to do this, the camera manufacturer must implement a way of allowing this control in their firmware and then publish information to allow developers to make use of this interface.  Currently only Canon and Nikon have a computer interface that contains enough functionality to allow FoCal to run (you need a lot more than just the functions to get a Live View image and tethered shooting).

Using this interface, we can control most of the functions of the camera.  We can change the aperture, shutter speed, ISO, exposure compensation, metering mode etc.  We can start and stop Live View, capture images, move the lens position and all the other functions required to run the tests in FoCal.

However, we can only control functions that the manufacturers choose to expose through this interface.  As an example, they would not allow you to change the camera serial number through this published interface!  It takes effort for the camera manufacturers to add functionality to the computer interface – they have to design the functions, test them in isolation and then make absolutely sure they don’t affect the operation of the camera in odd ways, and without a compelling case for adding functionality they are unlikely to do it.

The AF Fine Tune (Nikon) setting was actually included in the interface at the time of the D3, D3X, D3S, D300S and D700 cameras but unfortunately it just didn’t work properly.  The way of controlling this setting was overly complicated and when the computer told the camera what to set, it would often either not set the right value or set an incorrect one which meant we couldn’t use it for FoCal.  The only camera of this bunch that seemed to behave in the right way was the D3S which is why FoCal support the D3S as a completely automatic camera – the only Nikon camera to be able to be run completely automatically.  Nikon presumably thought it would take more effort to fix this functionality than it was worth, because at the time they weren’t aware of anyone needing the functions and for future cameras the commands are just not present any more.

So what about Canon?  When the EOS1-D X and 5D Mark III were released, they contained a brand new autofocus system, and the camera user interface was altered to give the autofocus system a number of dedicated pages in the menu.  Unfortunately, this also meant that the control of these functions was no longer possible from the computer because Canon did not carry this change forward into the computer interface.

So, in summary, we can only control what the camera manufacturers give us, and they don’t give us a way of changing the AF Fine Tune (Nikon) or AF Microadjustment (Canon) setting for some of the cameras we support.  These are the ones that run in Manual Setting Change (MSC) mode in FoCal – where the software asks you to change this single setting when it needs to be altered.

So how does it work now?

Manual Setting Change mode is a bit of a bad name as it implies a lot more manual intervention than there actually is.  In reality, FoCal still controls 99% of the functionality required to run the calibration: setting the aperture, metering mode, drive mode, shutter speed, ISO, exposure compensation and several other settings, controlling lens focus and running multiple autofocus operations, transferring and analysing images and carefully picking which settings to use for further shots in the test.  The only single thing that the computer can’t control is the AF Microadjustment (Canon) or AF Fine Tune (Nikon) setting, which is asks you to change.

The hotkey functionality makes this change as easy as possible – when the computer pops up a message to change the setting, you press 2 or 3 buttons on the camera, change the setting and then press the camera hotkey (either the AE Lock button or half press the shutter depending on the camera) and the test moves on.  It takes a few seconds to change the setting, and under good test conditions you need to make the change just 6 times for a full calibration.

As you can see, the test is still fully automatic apart from this single setting change periodically through the test.

Can it be made completely automatic?

It would be brilliant to be able to change this setting and stop having to manually change even this one setting during the tests.  There are 3 ways that we could get around this issue:

The first is to continue our investigation into the low level USB protocol for all these cameras and try to find an undocumented way of controlling the AF Microadjustment.  This has some significant drawbacks: there may be no way of doing this, and even if we could find a way it may not continue to work as the firmware changes.  There’s also a risk that incorrect use of undocumented features could possibly damage the camera.

The second is to load custom firmware onto the camera which gives us the functionality we need.  This is more likely a possibility with Canon cameras due to the existence of Magic Lantern, but there are risks associated with this method of altering the camera – it will almost certainly void your warranty.

Thirdly, the camera manufacturers could add the function to the camera.  This one is quite unlikely, but is nevertheless a possibility, especially if the manufacturers are made aware of how much this feature is wanted.


Hopefully, this post has explained the reasoning behind why some cameras require a little bit of manual intervention to run the Fully Automatic AF Microadjustment Calibration.  It’s not a bug or missing feature in FoCal – it’s that the camera manufacturers don’t allow you to make this change on all their cameras.

We would dearly love to be able to offer completely automatic calibration on all cameras and will continue to investigate the options.

6 comments on “Why can’t the 5Dmk3,1D X and Nikon cameras be completely automated?

  • Nice explanation, thank you.

    I ordered the Pro kit from Castle Camera earlier today, not a bad deal at all when shipping to Canada.

  • Great post Rich, I would love to have the automatic calibration on my 5d mkiii as I never trust i’ve done it right. neverless the software is brilliant with the manual option and have recommended it to other photographers. 🙂

  • Martin Mathieson says:

    I bought Focal Pro yesterday.
    Boy am I impressed!
    Unfortunately I have a Nikon D800 so fully automatic calibration is not possible.
    Perhaps if you were to put links on your site to Nikon and Canon it would make it easier for us Focal customers to complain to the manufacturers. I’m sure loads of us would.
    Enough pressure and perhaps they would do something.
    Thanks for some brilliant software.

  • “The second is to load custom firmware onto the camera which gives us the functionality we need. This is more likely a possibility with Canon cameras due to the existence of Magic Lantern, but there are risks associated with this method of altering the camera – it will almost certainly void your warranty”
    so what?!
    we want it!!!!!
    please make a cooperation with ML

  • I have a Canon 5D MK III, 7D MKII and 7D. Although I wish FoCal could be fully automatic but I do understand if the MFG does not release the functions they can only do so much. Comparing the alternative to taking a photo of a target and judging for yourself, making the AFMA and retesting. I think this software is awesome! Maybe they should rename the Manual Setting Change (MSC) mode in FoCal to MMSC (Minimal Manual Setting Change). This would not scare off prospective buyer.


Leave a Reply

Your email address will not be published. Required fields are marked *