This page is work in progress - your feedback is welcome.


The following builds are works in progress, known to have rough edges.
Please test thoroughly before considering them for serious work.
The functionality from this page will be integrated in the main builds as soon as all major issues will be ironed out.
However, we need your help. If you use any of these builds, please report your experience.
Still confused? Each experimental build has a link to the relevant forum thread, where you can discuss the new features.
You may also check this page for ideas on how to help, and this page for how to suggest changes with a pull request, from your web browser.

Latest Lua updates + fixes (please review)

Latest Lua updates (details).

Includes many other backend changes, e.g. focus, menu, Q button handling, fonts etc.

Therefore, it's important to give it a good try on all functions, not just Lua, so we can include it in the nightly builds.

Also includes lens.focus_pos and dynamic-my-menu.

Forum discussion

Branch: lua_fix

Latest Build (2017-07-06 17:23)

All changes on BitBucket

Build Log

4K raw video recording

crop_rec module with higher resolutions (4K, 1080p48 etc):

  • 1920x960 @ 50p (both 1:1 crop and full-frame - 3x3 pixel binning)
  • 1920x800 @ 60p (same as above)
  • 1920x1080 @ 45p and 48p (3x3 binning)
  • 1920x1920 @ 24p (1:1 square crop)
  • 3072x1920 @ 24p (1:1 crop)
  • 3840x1600 @ 24p (1:1 crop)
  • 4096x2560 @ 12.5p (1:1 crop)
  • 4096x1440 @ 25p (1:1 crop)
  • Full-resolution LiveView: 5796x3870 at 7.4 fps (128ms rolling shutter).


  • It's quite bleeding edge (expect bugs)
  • Includes compressed_raw (see below)
  • You will generally need to use the (non-realtime) preview from the raw recording module.
  • Setting the preview to Frozen LV will give sligthly better recording times.
  • Modes with higher vertical resolution will preview only the top of the frame.
  • Modes with higher horizontal resolution will have the preview completely broken.
  • mlv_lite only for now
  • alternative mlv_dump for Mac

Forum discussion

Branch: crop_rec_4k

Latest Build (2017-06-19 20:27)




d38bc54: mlv_dump: added bug fix for invalid NULL block sizes

883e7b8: 5D3 1.2.3: fix CARD_A_MAKER (off by one)

8369b3b: mlv_lite: fix speed regression introduced in e67faca

cb31e4d: crop_rec: fix pink highlight issue in 3x3 modes

3f90c43: mlv_play: finally fix the black screen issue happening after playing back a few files

14c3606: mlv_play: show bit depth and compression in top bar

72345e3: mlv_play: fix playback of normal mlv_lite 14 bit files

c162b5b: mlv_play: add lossless playback support

1b775ac: mlv_play: display message when video format is not supported

All changes on BitBucket

Build Log

10/12-bit RAW video

Experimental raw video recording at lower bit depths. Only models with CONFIG_EDMAC_RAW_SLURP are compiled.

Forum discussion

Branch: raw_video_10bit_12bit

Latest Build (2017-07-02 22:47)

c38f583: mlv_rec: reduce chunk count to keep room for other files to create (and circumvent mlv_play failing playback)

bbde56f: mlv_rec: insert alignment NULL block before writers start to write aligned sizes

7cb9c6b: mlv_rec: ensure 32 bit alignment for VERS block sizes. just because.

All changes on BitBucket

Build Log

Compressed raw recording

Experimental raw video recording with lossless compression.

  • Includes 10/12-bit recording and pre-recording.
  • mlv_lite only for now (mlv_rec works as before)
  • Custom mlv_dump required for decoding.
  • Playback not working.
  • mlv_dump for Mac

Forum discussion

Branch: compressed_raw

Latest Build (2017-04-03 14:32)


All changes on BitBucket

Build Log

Pre-recording with half-shutter triggers

Pre-recording with half-shutter triggers (details).

Should work on top of latest nightly build.

Forum discussion

Branch: rec-trigger

Latest Build (2017-08-17 22:29)

7441ed4: mlv_lite: fix compilation

9e60bc5: mlv_lite: prevent recording in x10 zoom
(to be used for focusing)

All changes on BitBucket

Build Log

Crop mode recording (crop_rec)

5D3 and EOSM build with crop_rec module.

Includes 10/12-bit raw recording and pre-recording.

Forum discussion

Branch: crop_rec

Latest Build (2017-03-21 00:22)

af185a0: Merged rec-trigger into crop_rec

edf3455: mlv_lite: fix some issues related to changing resolution
(crash on submenu open while recording; message about max resolution not displayed)

df416b0: mlv_rec, mlv_lite: save RAWC (raw_capture_info)

7c04f88: mlv_dump: print RAWC (raw_capture_info)

1a842f9: mlv.h: RAWC block (struct raw_capture_info)

16ee26e: crop_rec: hook to update raw_capture_info with modified pixel binning / line skipping factors

2ff9f53: Raw backend: new CBR for modules (CBR_RAW_INFO_UPDATE)

043d0b7: Raw backend: new structure about image capture parameters (resolution, pixel binning modes)
(also updated mlv_lite and mlv_rec)
(can you suggest a better name?)

59f8086: Merged raw_video_10bit_12bit into crop_rec

a89e1b9: raw.c: fix bad merge
(duplicate DEFAULT_RAW_BUFFER entries)

f008d3c: mlv_lite: show pre-recording buffer size in menu
(requires recording a test clip first)

6b06a99: mlv_lite: allow pre-record duration in 1-second increments

0510ed3: mlv_lite: allow frame skipping during pre-recording, between half-shutter triggers
This will avoid recording stopping between (half-shutter) triggers, as these skipped frames would probably be dropped anyway.
The pre-recording buffer is now maxed out in the 1-frame trigger mode.

45bc411: mlv_lite: dynamic buffer allocation for pre-recording
(reserve at least 50% of RAM for pre-recording, or more -- as long as it can record 500+ frames with 90% of measured write speed)

0e88cb3: mlv_lite: fix pre-recording buffer size rounding (minor)

d092796: mlv-lite: experimental half-shutter trigger (compatible with pre-recording)

ca58382: mlv_lite: prepare to allow multiple triggers with pre-recording

0bda496: mlv_lite: refactor with INC_MOD (minor optimization in vsync hook)

89fdf0a: imath.h: macro for incrementing a variable modulo N

86ec8e3: mlv_lite: fix chunk frame count (to be tested)

88b2139: Merged raw-h264-proxy into raw_video_10bit_12bit

af30150: Merged unified into raw_video_10bit_12bit

All changes on BitBucket

Build Log

Non-CPU lens info

Set lens name, focal length and aperture for manual lenses. Lua script.

Forum discussion

Branch: manual_lens_info

Latest Build (2017-04-04 21:38)

0b173c1: ui.lua: ported 9f71744 (not tested)

8651458: Merged lua_fix into manual_lens_info
(not tested; todo: port editor fixes into ui.lua)

34c6cbd: Merged unified into lua_fix

8cd7485: lens.h: fix bad merge

546bbc7: Merged unified into manual_lens_info

d5915d6: Backout 722c851 (fix FIR not included in the zip)

fc3ec35: Merged in raw_fixes (pull request #820)
Raw fixes part 4
Approved-by: Alex

c95ec19: Silent pictures: minor error handling fix

e26684f: Silent pics: only show the slit-scan mode option when you actually select slit-scan

a881f05: Silent pictures: fix allocating memory for a single picture
(frame size not known in advance and might be larger than max shoot block size)

eff649f: Silent pictures: fix overflow when allocating memory for burst mode

97cc437: Merged in task_name (pull request #796)
New method for getting current task names (refactor)
Approved-by: Alex

3664a5a: Close branch task_name

d014368: Raw backend: fix black border on raw previews (completes 23d1f0e)

ad8ae4c: Lua: fix error checking in menu.get (also API test)

b63c905: Lua: unify menu.get and menu.gets (using an optional argument for menu.get)

7d5284a: Merged unified into lua_fix

ce4b49b: Merged cleanup into unified

016a0e5: Removed april fools prank

8a6e123: debug.c: removed unused code

82d9b13: Zip comment: removed old links

732bdb3: fio-ml: fix possible buffer overflow with PROP_CARD_SELECT
(might happen on unusual settings or new models)

All changes on BitBucket

Build Log

Magic Lantern is not approved nor endorsed by Canon in any way, and using it will probably void your warranty.
We are not responsible for any damages to your camera.

Copyright (C) 2009-2017 Magic Lantern Development Team

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.