Experiments

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 (2018-01-20 21:26)

magiclantern-lua_fix.2018Jan20.100D101.zip

magiclantern-lua_fix.2018Jan20.1100D105.zip

magiclantern-lua_fix.2018Jan20.500D111.zip

magiclantern-lua_fix.2018Jan20.50D109.zip

magiclantern-lua_fix.2018Jan20.550D109.zip

magiclantern-lua_fix.2018Jan20.5D2212.zip

magiclantern-lua_fix.2018Jan20.5D3113.zip

magiclantern-lua_fix.2018Jan20.5D3123.zip

magiclantern-lua_fix.2018Jan20.600D102.zip

magiclantern-lua_fix.2018Jan20.60D111.zip

magiclantern-lua_fix.2018Jan20.650D104.zip

magiclantern-lua_fix.2018Jan20.6D116.zip

magiclantern-lua_fix.2018Jan20.700D115.zip

magiclantern-lua_fix.2018Jan20.70D112.zip

magiclantern-lua_fix.2018Jan20.7D203.zip

magiclantern-lua_fix.2018Jan20.EOSM202.zip

ec86da5: Changed the DoF equations to better handle integer math and used a different source for the equations.

2d19027: Menu: added different rounding mode flags: ISO R10", R20", 1-2-5 series, powers of 2

4284d17: Menu: cleaned up edit_mode constants
(removed unused EM_MANY_VALUES and renamed EM_MANY_VALUES_LV to EM_SHOW_LIVEVIEW)

846c31f: Menu: added UNIT_TIME_MS and UNIT_TIME_US with caret editing support; minor refactoring

4f7a1d0: silent pictures: options for delayed trigger, to help with IS
http://www.magiclantern.fm/forum/index.php?topic=12523.msg196174#msg196174

a39b95f: silent pictures: after image review, prefer to return to LiveView, with some exceptions
- if intervalometer is enabled, prefer to turn off the display to save power
- if "Turn off LCD" is enabled under "Powersave in LiveView", also prefer to turn off the display (manual override, e.g. for externally triggered timelapse)
- otherwise, prefer to return to LiveView (credits dfort)
http://www.magiclantern.fm/forum/index.php?topic=19005.msg181385#msg181385
http://www.magiclantern.fm/forum/index.php?topic=19300.msg190341#msg190341

1541d37: silent pictures: wait for IS if the switch is enabled on the lens
http://www.magiclantern.fm/forum/index.php?topic=12523.msg196174#msg196174

296f16a: 650D, 700D: enabled Sticky half-shutter (unlikely to cause issues) and Sticky DOF preview (to be tested)

1dbb29d: Auto bracketing: fine-tuned highlight and shadow thresholds
overexposed: if more than 0.02% of all pixels are above 235 in the YUV buffer (preview JPG, picture-style dependent)
underexposed: if more than 10% of all pixels are below 50
previous thresholds: 0.15% above 235 for highlights, 2.5% below 20 for shadows
http://www.magiclantern.fm/forum/index.php?topic=21428
todo: use raw-based metering? (some models still have problems with raw buffers in photo mode: 70D, 500D in LiveView, maybe others)

87c5cc7: Auto bracketing: do not analyze image borders
(should prevent unnecessary bright exposures if the image has black corners - happens with certain lenses)

88d8f92: Bracketing: print debug messages to console; use higher precision for highlight/shadow percentages
for troubleshooting http://www.magiclantern.fm/forum/index.php?topic=21428

5112610: lens.h: mark lens_format_* as not thread-safe; fix return type
lua: workarounds to ensure thread safety for the above calls

9f51c19: lens: added lens_format_iso and refactored other code to use it

aa9c7f1: Lua: fixed issue #2824 - decimal number precision when printing
thanks dmilligan for the hint and aprofiti for the test code
tested with:
val = {1.2,1.4,2.8,4.3,4.5,5.6}
for i = 1, 6 do
console.write(val[i])
console.write(" ")
console.write(val[i] - 0.000001)
console.write(" ")
console.write(val[i] + 0.000001)
console.write("\n")
end
output:
1.2 1.199999 1.200001
1.4 1.399999 1.400001
2.8 2.799999 2.800001
4.3 4.299999 4.300001
4.5 4.499999 4.500001
5.6 5.599999 5.600001
before:
1.2 1.199999 1.2
1.399999 1.399999 1.4
2.799999 2.799999 2.8
4.3 4.299999 4.300001
4.5 4.499999 4.5
5.599999 5.599998 5.6

All changes on BitBucket

Build Log


4K raw video recording; lossless compression

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

5D3:

  • 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).
  • Continuous: 3072x1308 @ 24p, 1920x1080 @ 45p, 1920x960 @ 50p, 1920x800 @ 60p, 4096x2560 @ 8p, 5796x3870 @ 5p.

EOSM, 700D, 100D:

  • 1736x688 @ 50/60p with 3x3 pixel binning (actually column binning / line skipping)
  • Lossless compression: 1736x976 @ 24p continuous (this is the maximum 16:9 resolution with 3x3 sampling)

Notes:

  • It's quite bleeding edge (expect bugs)
  • Includes lossless compression for MLV (mlv_lite/mlv_play) and DNG (silent/pic_view)
  • Includes lua_fix and dynamic-my-menu
  • 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 have real-time preview only for the top of the frame.
  • Modes with higher horizontal resolution will have the preview completely broken.
  • Centered x5 zoom will show either a cropped real-time preview, or a slow preview with correct framing (half-shutter to toggle).
  • mlv_lite has lossless compression and H.264 proxy, mlv_rec has uncompressed 14/12/10-bit video and native sound recording

This is also the "de facto" bleeding edge branch, with other experimental stuff being tested here.

Forum discussion

Branch: crop_rec_4k

Latest Build (2017-12-19 19:28)

mlv_dump.exe

mlv_dump.linux

mlv_dump.osx

magiclantern-crop_rec_4k.2017Dec19.100D101.zip

magiclantern-crop_rec_4k.2017Dec19.5D3113.zip

magiclantern-crop_rec_4k.2017Dec19.5D3123.zip

magiclantern-crop_rec_4k.2017Dec19.700D115.zip

magiclantern-crop_rec_4k.2017Dec19.EOSM202.zip

49a22df: mlv_dump: remove metadata modes. they were not really useful and dont make too much sense.

301f3bd: chdk-dng: fix some found 64 bit issues

f778781: mlv_dump: print human readable serial numbers for both camera and lens

d81a99a: mlv_rec: properly fill lensSerial with a hex representation of the serial number in lens_info struct

a164cbc: Merged lua_fix into crop_rec_4k

bf8aa36: Merged new-dryos-task-hooks into lua_fix

be1f5a3: Task hooks: disabled task switch debug messages by default
(too verbose)

a0aedff: 550D, 600D: fix memory allocation (amend 5b4fe18)

0fe3220: 6D: ADTG shutter addresses did not work, trying another set

224843f: 6D: fix ADTG shutter addresses after memory layout change
http://www.magiclantern.fm/forum/index.php?topic=5601.msg194754#msg194754
http://www.magiclantern.fm/forum/index.php?topic=5601.msg191914#msg191914
http://www.magiclantern.fm/forum/index.php?topic=15088.msg190890#msg190890
not tested, just confirmed the new addresses in QEMU
fixme: are these deterministic? under what conditions?

e4ab5b7: lua_camera: minor help tweaks

0290529: lua_camera: getter for gui.mode (missed in 706b131) + API tests

485997b: gui-common: fix exit_(play|qr|menu)_mode on 60D (camera.gui tests from api_test.lua are working now)

d7cdf70: gui-common: refactored exit_play_qr_mode/exit_menu_mode to avoid duplicate code
added exit_play_qr_menu_mode (generic)

2642fbe: Backout bc10355 (undo screenshot palette fix, not portable, issue #2821)

cd5a40a: lua_menu: fix hidden, advanced and edit_mode not working from menu declaration
http://www.magiclantern.fm/forum/index.php?topic=21258
todo: test all these settings and refactor to avoid duplicate code

0ec6843: Merged unified into lua_fix

f9eed6b: Merged unified into crop_rec_4k

ce89663: mlv_dump: fix 0.5 LSB roundoff error when averaging

97b73e7: Makefile: drop unused SUPPORTED_MODELS / SUPPORTED_UNIFIED_MODELS

82126d8: Merged in makefile-updates (pull request #873)
Makefile updates to use any valid ARM toolchain

6cef1ea: Makefile: fix 7D build_fir

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-12-18 07:05)

magiclantern-raw_video_10bit_12bit.2017Dec18.100D101.zip

magiclantern-raw_video_10bit_12bit.2017Dec18.1100D105.zip

magiclantern-raw_video_10bit_12bit.2017Dec18.5D3113.zip

magiclantern-raw_video_10bit_12bit.2017Dec18.5D3123.zip

magiclantern-raw_video_10bit_12bit.2017Dec18.600D102.zip

magiclantern-raw_video_10bit_12bit.2017Dec18.60D111.zip

magiclantern-raw_video_10bit_12bit.2017Dec18.650D104.zip

magiclantern-raw_video_10bit_12bit.2017Dec18.6D116.zip

magiclantern-raw_video_10bit_12bit.2017Aug21.700D114.zip

magiclantern-raw_video_10bit_12bit.2017Dec18.700D115.zip

magiclantern-raw_video_10bit_12bit.2017Dec18.EOSM202.zip

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)

mlv_lite.mo

7441ed4: mlv_lite: fix compilation

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

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 (2018-01-21 00:06)

magiclantern-manual_lens_info.2018Jan21.1100D105.zip

magiclantern-manual_lens_info.2018Jan21.500D111.zip

magiclantern-manual_lens_info.2018Jan21.50D109.zip

magiclantern-manual_lens_info.2018Jan21.550D109.zip

magiclantern-manual_lens_info.2018Jan21.5D2212.zip

magiclantern-manual_lens_info.2018Jan21.5D3113.zip

magiclantern-manual_lens_info.2018Jan21.5D3123.zip

magiclantern-manual_lens_info.2018Jan21.600D102.zip

magiclantern-manual_lens_info.2018Jan21.60D111.zip

magiclantern-manual_lens_info.2018Jan21.650D104.zip

magiclantern-manual_lens_info.2018Jan21.6D116.zip

magiclantern-manual_lens_info.2017Apr04.700D114.zip

magiclantern-manual_lens_info.2018Jan21.700D115.zip

magiclantern-manual_lens_info.2018Jan21.7D203.zip

magiclantern-manual_lens_info.2018Jan21.7D_MASTER203.zip

magiclantern-manual_lens_info.2018Jan21.EOSM202.zip

c84f19d: Merged lua_fix into manual_lens_info

ec86da5: Changed the DoF equations to better handle integer math and used a different source for the equations.

2d19027: Menu: added different rounding mode flags: ISO R10", R20", 1-2-5 series, powers of 2

4284d17: Menu: cleaned up edit_mode constants
(removed unused EM_MANY_VALUES and renamed EM_MANY_VALUES_LV to EM_SHOW_LIVEVIEW)

846c31f: Menu: added UNIT_TIME_MS and UNIT_TIME_US with caret editing support; minor refactoring

4f7a1d0: silent pictures: options for delayed trigger, to help with IS
http://www.magiclantern.fm/forum/index.php?topic=12523.msg196174#msg196174

a39b95f: silent pictures: after image review, prefer to return to LiveView, with some exceptions
- if intervalometer is enabled, prefer to turn off the display to save power
- if "Turn off LCD" is enabled under "Powersave in LiveView", also prefer to turn off the display (manual override, e.g. for externally triggered timelapse)
- otherwise, prefer to return to LiveView (credits dfort)
http://www.magiclantern.fm/forum/index.php?topic=19005.msg181385#msg181385
http://www.magiclantern.fm/forum/index.php?topic=19300.msg190341#msg190341

1541d37: silent pictures: wait for IS if the switch is enabled on the lens
http://www.magiclantern.fm/forum/index.php?topic=12523.msg196174#msg196174

296f16a: 650D, 700D: enabled Sticky half-shutter (unlikely to cause issues) and Sticky DOF preview (to be tested)

1dbb29d: Auto bracketing: fine-tuned highlight and shadow thresholds
overexposed: if more than 0.02% of all pixels are above 235 in the YUV buffer (preview JPG, picture-style dependent)
underexposed: if more than 10% of all pixels are below 50
previous thresholds: 0.15% above 235 for highlights, 2.5% below 20 for shadows
http://www.magiclantern.fm/forum/index.php?topic=21428
todo: use raw-based metering? (some models still have problems with raw buffers in photo mode: 70D, 500D in LiveView, maybe others)

87c5cc7: Auto bracketing: do not analyze image borders
(should prevent unnecessary bright exposures if the image has black corners - happens with certain lenses)

88d8f92: Bracketing: print debug messages to console; use higher precision for highlight/shadow percentages
for troubleshooting http://www.magiclantern.fm/forum/index.php?topic=21428

5112610: lens.h: mark lens_format_* as not thread-safe; fix return type
lua: workarounds to ensure thread safety for the above calls

9f51c19: lens: added lens_format_iso and refactored other code to use it

f561a17: Merged in daniel_fort/magic-lantern/manual_lens_info_new_lenses_part1 (pull request #859)
Added and organized lenses.

f2874dd: Added and organized lenses.

aa9c7f1: Lua: fixed issue #2824 - decimal number precision when printing
thanks dmilligan for the hint and aprofiti for the test code
tested with:
val = {1.2,1.4,2.8,4.3,4.5,5.6}
for i = 1, 6 do
console.write(val[i])
console.write(" ")
console.write(val[i] - 0.000001)
console.write(" ")
console.write(val[i] + 0.000001)
console.write("\n")
end
output:
1.2 1.199999 1.200001
1.4 1.399999 1.400001
2.8 2.799999 2.800001
4.3 4.299999 4.300001
4.5 4.499999 4.500001
5.6 5.599999 5.600001
before:
1.2 1.199999 1.2
1.399999 1.399999 1.4
2.799999 2.799999 2.8
4.3 4.299999 4.300001
4.5 4.499999 4.5
5.599999 5.599998 5.6

f37efb4: Ghost image: fix crash (issues #2796, #2783)

4c32c3f: gui-common: sync gui_uilock with crop_rec_4k

bf8aa36: Merged new-dryos-task-hooks into lua_fix

be1f5a3: Task hooks: disabled task switch debug messages by default
(too verbose)

a0aedff: 550D, 600D: fix memory allocation (amend 5b4fe18)

All changes on BitBucket

Build Log


Warning!
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.