Modern cameras, specially DSLRs, have so many different features that it actually takes a while to go through all of them after you buy them, and sometimes you even find yourself discovering new functionalities years after you started using yours. However, it is not uncommon to stand in a situation in which you wish your camera could do a bit more.
As a Canon user myself, a few years ago I found out that Canon does indeed provide a library for you to add new, or change existing, functionalities of the built-in software (so-called firmware). Of course, to do this, you need to know how to program and you also need the time to do it.
Luckily, a group of developers have been building a variety of new and extended functionalities for Canon cameras under the name of Magic Lantern (ML) and you can download this for free and upload it to your camera.
A word of warning is necessary here, though. Canon itself is not involved at all and does not endorse the use of ML, meaning that installing the package will void your warranty and you might find some issues while using it and, more importantly, in an extreme case, your camera might stop to work. For this reason, only install this (or any other third-party firmware) at your own risk!
Since different cameras have different processors and functionalities, ML is not available for all the cameras manufactured by Canon. According to their website, the models currently supported are: 5D2, 5D3, 6D, 7D, 50D, 60D, 500D/T1i, 550D/T2i, 600D/T3i, 650D/T4i, 700D/T5i, 1100D/T3, EOS M.
I used ML on a Canon 500D/T1i and, for this reason, all the different features I mention in this post will be related to that specific model. Notice that the available features might differ from one camera to the other.
To install the firmware follow the simple instructions given on the ML website. The installation procedure is quite simple and, in general, it is the same procedure that you would follow in order to update the firmware of your camera.
Once you install the firmware and restart your camera, you are pretty much ready to go. The first thing you will notice is that not much has changed. You still have access to the standard features of your camera, menus included. However, if you press the ‘delete’ button while on the main screen, the ML menu will appear.
The menu consists of 12 sections, each of them with different options regarding different aspects of the camera. Some of them are related to audio and video while others are related to photography. Here I will only mention the first two and will concentrate on those options that can help you improve the functionalities of your camera when taking photos.
The very first menu is called Audio and has three options, namely ‘Analog Gain’, ‘Speaker Volume’ and ‘Beep, test tones’. An important thing to notice here is that, among the three options, the two first can be changed by single pressing the ‘Set’ key while the last one has a set of sub-options that can be accessed by pressing the ‘Record’ button (the same one you use to start or stop recording videos).
The second menu is an important one for photography. It is called ‘Expo’ and, as the name implies, it has a set of options related to the exposure settings of your camera. As you will see, most of the options provided by ML are not new features, but extensions of the existing ones.
The first option inside the ‘Expo’ menu is called ‘White Balance’. By pressing the ‘Record’ button, ML will display a sub-menu with different options. The first one allows you to select the temperature of the light you are dealing with from a minimum value of 1500K to a maximum of 15000K with varying steps along the scale (100K in the lower end and 500K in the higher end). While it would make sense to enable the selection of automatic white balance inside ML, I wasn’t able to find it so I guess you will always have to go back to the normal Canon menu to do it.
While most of the people tend to use automatic white balance (and, the truth be said, if you shoot in RAW it makes total sense to do it since you can correct it later on), understanding the concept of light temperature and applying it when selecting the white balance can make your life easier. For instance, by selecting a temperature close to 5900K, you will tend to get well-balanced colors when shooting on broad sunlight.
The rest of the options under the ‘White Balance’ sub-menu are intended to shift the white balance towards cooler or warmer colors. Two options (‘WBShift G/M’ and ‘WBShift B/A’) are similar to the options provided by the original software but ML also provides three options (R, G and B ‘Multiplier’) that allows you to give more weight to either red, green or blue colors respectively. The last option on this section, called ‘Auto adjust Kelvin + G/M’, is intended to make an auto-adjustment of the white balance while on LiveView mode.
The next sub-menu is an important and a bit difficult-to-understand one. It is called ISO (again, a rather self-explanatory name). The complication arises from how ISO numbers are treated inside digital cameras. The sub-menu contains four different settings, namely ‘Equivalent ISO’, ‘Canon analog ISO’, ‘Canon digital ISO’ and ‘ML digital ISO’. Getting a proper understanding of ISO number is beyond the scope of this article, but in general, when you change the ISO number on a digital camera you are changing the gain of the digital sensor.
Finding reliable information on the topic can be challenging, but the way it seems to work is that the ‘Canon analog ISO’ is related to the gain of the electron multipliers inside the read-out circuitry of the camera, while the ‘Canon digital ISO’ is a digital gain applied once the RAW data is saved (somewhere downstream along the pipeline). In any case, even by suggestion from ML itself, it is advisable to leave the digital value at zero and play with the analogue one. The last function, ‘ML digital ISO’, allows you to improve the highlights while working with movies. An advantage of the ISO management by ML is that it lets you select intermediate values like 160 instead of jumping from 100 to 200, making it possible to make finer adjustments in sensitivity and thus giving you more control over the noise.
‘Picture Style’ is very similar to the original option available in the Canon menu, so nothing interesting to mention here. The ‘Expo. Lock’ options allow you to lock the exposure setting while in manual mode, even if you change the exposure time, aperture or ISO value. While I haven’t used it much myself, I think this might be a good option if you are taking photos of different subjects under static light conditions. For instance, it could help you capture a landscape and right after a fast moving animal by changing the shutter speed (exposure time) without having to adjust for the exposure. In a way, this is like the Tv and Av modes combined.
The following option, ‘Expo. Presets’, allows you to set two different presets and quickly toggle between them by using either the ‘SET’ or the ‘DISP.’ buttons on your camera. Once you set either option, simply go to your main screen, set the settings you want for your first preset (shutter speed, aperture, ISO and white balance). Next, press the corresponding key (‘SET’ or ‘DISP.’), set the settings for your second preset and you’re done. Each time you press the toggling key your camera will automatically load the other preset. This is, again, particularly useful when you are shooting different types of subjects during a photographic session.
The ‘Expo. Override’ option is supposed to bypass Canon limits in terms of exposure to give you more control but, at least for the camera I use (a Canon Rebel T1i), not much can be done. This might differ for different models, though, so it makes sense to give it a try. The final option on the ‘Expo’ menu is the so-called ‘ExpSim’. This is actually an interesting feature (although with some glitches) that only works in LiveView mode.
When you activate the ‘ExpSim’ option, once in LiveView mode you will get live information about the exposure of your image. On the bottom left a corner of the screen you can see a histogram showing you the color and intensity balance (R, G and B channels as well as the sum of all). On the center, you get a plot showing you the overall balance of your image that can help you realize whether the whole scene will be adequately exposed once you take the photo. The cursor itself will give you information of the intensity level (in percentage) of the exact area where you are pointing. Finally, if parts of your image are overexposed (intensity level higher than 100%), those areas will be shaded on the screen. That way you can know whether you should make adjustments to your settings even before capturing the photo.
There is a downside to the ‘ExpSim’ feature (and, in fact, to many features of ML) and that is that the LiveView screen becomes a bit cluttered, with some of the information provided by ML actually being shown on top of that provided by Canon. Also, if you override the FPS value (a feature available on the ‘Movie’ menu), the whole LiveView screen becomes pretty much useless, with superimposed and flickering images all over.
I hope you started to have a good feeling about the neat features of ML. While many of the functions can be too specific for most users (and some are simply experimental with hardly any practical use), some others, such as ‘ExpSim’, are incredibly useful functions that let you wondering why Canon did not implement them in the first place.
Many of the ML features are related to enhancements in the information that is made available on the screen while in LiveView mode. The third menu is called ‘Overlay’ and it contains all the different layers of information that can be added to your LiveView screen.
The very first option (‘Global Draw’) lets you turn the selected overlays on and off (all of them at once). The following options are for specific functionalities. ‘Zebras’ overlays a pattern over areas that are over- or underexposed. Under the sub-menu you can select the type of pattern you want to use, if you want to use the overlay for underexposure, overexposure, both or none and also what level of intensity you want to set as a threshold. For the thresholds, it is useful to set one close to 100% (something between 95% and 99%) for the overexposure but not so close to zero for the underexposure (at least above 15% should work in many situations). The ultimate choice will depend on your application, so there might be a bit of trial and error involved here.
ML also gives you the possibility to get information about the exposure, not only taking into account the selected picture style, but also the RAW information, something that Canon‘s inbuilt firmware cannot do. This is especially useful if you are an avid user of the RAW format.
One of the brilliant features of ML is the next option on the list, namely the ‘Focus Peak’. If you activate this function, while in LiveView, the software will provide you with information on what parts of your scene are in focus. The function can use two different methods (or a combination of both) to determine what parts are in focus. The two methods are edge detection (which is the best option under low-light conditions) and by looking at fine details, which can be more accurate but needs much more ambient light. Unfortunately, no matter how good the algorithms are, it cannot do much under very low-light conditions, which is something you have to expect, given that any focusing algorithm works with light.
The next option, ‘Magic Zoom’, is supposed to allow you to check the focusing with an amplification of a given part of the scene (something similar to the functionality provided by Canon) even during recording of a video. However, at least for me, the option does not work properly on the small screen flickers continuously making it impossible to get any useful information out of it. As I said in the previous posts, though, ML can perform differently in different models, so you might want to try this anyway (I use a Canon 500D/Rebel T1i).
The ‘Cropmarks’ function allows you to overlay custom grids that will help you frame your subjects. Among the most useful ones are the ‘CRSSMTR2.BMP’ which is basically a cross aligned with the screen that can allow you to make sure your subject is straight, and the ‘PASSPORT.BMP’ that places the silhouette of a head to make it easier when framing a subject for a standard portrait.
The ‘Ghost image’ function overlays an image while in LiveView. While this might be useless for many people in many situations, it can be very helpful if you want, for instance, to capture a scene under different conditions. Suppose you want to take a photo of a landscape during the changing seasons, by overlaying the image you took before you can easily stand in the exact same position for the new one.
The ‘Spotmeter’ is another particularly useful image when dealing with harsh light conditions like a very large contrast (high dynamic range). This overlay creates a region marked by a small square and provides you with information about the brightness of the pixels within that square. By using this function you can easily correct your exposures to get information on all regions of the scene and avoid getting back home and realizing that parts of your image where completely over- or underexposed.
The following option, ‘False color’, colorizes the scene with a defined colormap that matches the brightness levels (from 0 to 255). I personally find this a bit cumbersome since it fills the whole screen and, at least for what I’ve seen, having information only of the over- and underexposed areas (with the ‘Zebras’ feature) is much more useful.
Similar to the histogram plots provided by Canon, ML has its own histogram feature which is more customizable. In addition, it provides another type of plot, called ‘Waveform’, which I already described in the first post of this series and that gives you a hint of the overall brightness.
The last option within the ‘Overlay’ menu is called ‘Vectorscope’. In simple terms, this is a different way to present a color histogram that can be useful to define a custom white balance. If you turn this option on when in LiveView mode you will see a circle divided into eight sectors with the basic colors of a white balance chart distributed among them (yellow, red, magenta, blue, cyan and green). ML will then calculate the overall color of the scene and indicate the amount of each color in a graphical way. In an ideal case, you want a balanced image, so you can adjust your white balance to counteract any strong deviation towards any of the colors.
The shoot menu consists of nine features, the first one being called ‘Advanced Bracket’. As you might suspect already, this function extends the in-built bracketing function of the Canon software. The original bracketing capabilities of Canon cameras has always been rather limited, and this has become more obvious to many users when HDR gained incredibly popularity in the last few years.
By default, when performing exposure bracketing, Canon usually allows the user to take only three separate shots with steps of up to 2 EV. ML allows you to choose between three different types of bracketing, namely ‘Exposure (Tv,Ae)’, similar to the traditional bracketing that changes the exposure time in manual mode, ‘Exposure (Flash)’, that changes the flash exposure compensation and ‘DOF (Aperture)’, that keeps the exposure constant while it changes the aperture to exposure time ratio.
In terms of number of shots, ML can either make the choice automatically (based on the brightness balance of the scene) or let you choose between 2 and 12 shots. In terms of step, you can choose between 0.5 EV and 8 EV. Finally, you can also use the ISO number as a bracketing variable. In general, that is a huge increase in the native capabilities of Canon cameras and it will certainly make your life much easier when dealing with scenes with high dynamic range.
The next feature, called ‘Intervalometer’, is definitely another one of the great additions by ML. The intervalometer allows you to take pictures at fixed intervals of time. This is a great feature for taking time lapses and also very long exposures such as star trails. You can choose an interval between 0 seconds (basically burst mode) all the way to 8 hours. This gives you enough range to set your camera to take photos of moving objects or animals using the smallest intervals or time lapses to even capture the pass of days using the largest intervals (ideal, for instance, to capture the change of seasons!). You can also set a trigger, when to start and also when to stop (after how many shots).
The ‘Bulb Timer’ option allows you to set a specific exposure time for the BULB mode of your camera. This is useful for when you want to set exposure times longer than 30 s but do not want to use a remote shutter or you simply want to set a specific exposure time while not having to worry about manually stopping the exposure. The time can range from 1 seconds to 8 hours. If you’ve ever faced the situation of capturing a minutes-long exposure during a cold night, you will certainly appreciate this feature!
Another nice feature especially useful when working with large focal lengths is the ‘LCDsensor Remote’. Sometimes, after carefully focusing and with your camera set on the tripod, it is quite difficult to avoid the shake of the camera after pressing the shutter button. This feature transforms the small sensor located next to the LCD screen (the one intended to turn off the screen when you are looking through the viewfinder) into a sort of remote control. By simply passing your hand in front of this sensor, the shutter will be released. This way you can avoid pressing the shutter button and eliminate the main shaking source without having to resort to long shutter delays.
Similar to the ‘LCDsensor Remote’, the next feature is also intended to take photos while you are away from your camera. The ‘Audio RemoteShot’ allows you to release the shutter by making a loud noise. You can in fact set how loud you want to go by setting the trigger in terms of decibels (dB). This feature is very useful when taking group photos or also when you want to capture for instance an animal that makes some sort of noise.
Probably an even better feature for wildlife photography is the next feature, simply called ‘Motion Detect’. As the name implies, the trigger will be a change in the scene, although it also allows you to define it as no change at all (to make the camera take the photo once the camera has become steady after a shake). As a change, it can take a large change (called ‘Expo. change’) or a small one (called ‘Frame diff.’). In all the cases, you can also define a trigger level (how much of a motion it will detect before being triggered) and the size of the area where the camera will measure the change.
The next feature, ‘Mirror Lockup’, is another useful tool for wildlife photographers. When you get close to your subject, it is quite common for them to get scared and run off when they hear the sound of the mirror of your camera being lifted. For this, you can actually lock the mirror in the upright position and only expose the sensor when pressing the shutter button. If you are a keen wildlife photographer it might still make sense to get a camera with a relatively quiet shutter (the Canon EOS 500D that I use is quite loud) since even with this feature you will eventually have to release the mirror anyway. Also, remember that keeping the mirror up uses a significant amount of battery!
The ‘Flash Tweaks’ feature is related to, you guessed, flashes. It contains a wide-range flash exposure compensation (from -10 EV to +3 EV), the option of taking one photo with flash and one without flash without changing any setting in-between and also a tweak to allow you to use 3rd party flashes while in LiveView mode.
The final option, ‘Shoot Preferences’, is a sub-menu containing a set of general features. The first one allows you to define how many photos you want to take at once for each trigger event. This is intended to work with some of the other ML features I’ve described above such as the intervalometer, motion detect and audio remote. You can set the camera to take up to 9 photos. Once again, quite a useful feature for wildlife photographers. The second option is related to the use of autofocus while in intervalometer, audio remote and motion detect. This can be particularly useful if the subject triggering the action (especially in the cases of audio remote and motion detect) can be located at different distances from your camera. As the warning on ML says, though, keep in mind that, if the camera is not able to focus, no picture will be taken at all.
The next feature, ‘Post scripts’, allows you to apply post-processing scripts for bracketing and focus stacking. I haven’t tried this feature, though, so I am not sure how good it might perform. However, given how powerful post-processing tools like Photoshop are, I am not sure how useful it might be to get some low-level in-camera post-processing. It might be fun, though, to play around with some programming and writing your own script, which you can then load into your camera.
If you are into script programming, you can use the next option, ‘Intervalometer Script’, to write a script to program the intervalometer sequences. ML allows you to use Bash and MS-DOS scripting but, once again, I haven’t tried writing any script myself so I cannot comment a lot on this one.
The very final option, ‘Snap Simulation’, is intended to try the post-processing scripts by taking virtual pictures. As with the two scripting functions, I haven’t used this one, so no comments!
So that’s it for ML! I hope you got at least a bit curious about it and you give it a try. As mentioned in the first post of this series, installing ML could cause your camera to fail, although I have never heard of any specific case (it might just be a liability issue) but you must keep this in mind. There are some other interesting features I didn’t go through (like some related to focusing or video) so go ahead and explore by yourself. It of course depends on your needs, but I really believe that some of the features offered by ML are incredibly useful and, in fact, I find it quite weird that Canon has not expanded its firmware to include them.
If you finally decide to give it a try and run into trouble or have any question regarding its use, please let me know by writing a comment and I will be happy to help you!