Magic Lantern Forum

Magic Lantern Releases => Camera-specific discussion => Topic started by: dfort on February 15, 2017, 02:04:51 PM

Title: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: dfort on February 15, 2017, 02:04:51 PM
Posted a pull request for 5D3.134 (https://bitbucket.org/hudson/magic-lantern/pull-requests/816/update-to-5d3134/diff) firmware support.

Why?
Ok, that last point was just to make a point--you don't need to be an experienced developer to contribute to Magic Lantern. In fact doing a minor firmware update is a good project for someone who is able to compile the ML code and is willing to put in some time searching through a ROM disassembly looking for changes. It is also a good project to learn some very basic reverse engineering.

What this version is not:
With the recently added option to support more than one firmware revision per platform in the ML source code this might be a good opportunity to add experimental releases closer to the Canon firmware revision release dates. Provided of course that it passes the ML stress tests and that enough people test and approve the pull request.

To make testing easier for users to try it out, I'll be posting builds to my bitbucket repository download area (https://bitbucket.org/daniel_fort/magic-lantern/downloads) until it gets into the Experiments download page (https://builds.magiclantern.fm/experiments.html). Note that this first very early build doesn't have the ML-SETUP.FIR file yet so make sure your camera bootflag is set before doing the firmware update. To go back to 113 or 123, follow the instructions on the Firmware Update/Downdate? (http://www.magiclantern.fm/forum/index.php?topic=18941.0) tutorial.

Big thanks to:


Just as a footnote: Firmware revision 1.3.4 was released November, 2016 and the 5D300134.FIR file is timestamped September 1, 2016 while the 5D300123.FIR has a timestamp of August 30, 2013 and the 5D300113.FIR has a timestamp of May 28, 2012.

Title: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: DeafEyeJedi on February 15, 2017, 05:07:09 PM
Thanks Dan for taking this leap of faith and I decided to join along...

(https://c1.staticflickr.com/1/677/32876982016_4102762189.jpg) (https://flic.kr/p/S6e8kw)

Some things I noticed that may seem out of the ordinary...

After each camera restart upon pressing 'Trash Can' button for to get into ML menu (suddenly Canon menu pop's up intermittently for a second or two) and this is reproducible.

Also noticed dual_iso.mo gives an Error when enabled under Modules section within ML menu.

Seems that crop_rec.mo doesn't get along with this build because if I enable this on then all Modules gives errors (meaning I have to leave this one off in order to make use of ML) which seemed odd.

Will continue to play around with it some more...
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: dfort on February 15, 2017, 07:39:57 PM
crop_rec shouldn't be in there. I must have had a Makefile.modules.user file active when I did the build, correcting that now. I'll also check into the dual_iso. The flashing menu thing was also affecting chris_overseas 5D3.133 builds so I could use some hints on where to look for a solution for that.
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: chris_overseas on February 15, 2017, 07:49:23 PM
I'll also check into the dual_iso.

This might be a good place to start looking: https://bitbucket.org/chris_miller/magic-lantern/commits/33bd0eb41eee1bf51c0e51c14082f330e3db1679?at=unified
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: dfort on February 15, 2017, 08:22:12 PM
Thanks Chris -- I could use some help on figuring out how to find those register values. In the meantime it looks like your 1.3.3 code might just work for 1.3.4.

Frankly I completely skipped most of the modules and just followed some of the current firmware update pull requests so those might need fixing too.

Put up a new test build with the dual_iso fix and no crop_rec module--also no raw_rec module because that was recently replaced by mlv_lite.

https://bitbucket.org/daniel_fort/magic-lantern/downloads
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: chris_overseas on February 15, 2017, 09:50:13 PM
Thanks Chris -- I could use some help on figuring out how to find those register values. In the meantime it looks like your 1.3.3 code might just work for 1.3.4.

Those dual ISO addresses were obtained by looking at cmos[0] from the adtg_gui module (enabled via CONFIG_GDB=y, http://www.magiclantern.fm/forum/index.php?topic=6751.msg71720#msg71720). So eg for FRAME_CMOS_ISO_START, make sure you're in movie mode ISO 100 and check the cmos[0] value. Similarly for PHOTO_CMOS_ISO_START but make sure you're in photo mode liveview instead.

Are there any other specific addresses you're stuck on? I'm not sure I can help much as my knowledge is limited, but will do my best. I'm also not sure when I'll get a chance to switch to 1.3.4 to try your build, though by the sounds of it you're about at the point where I got stuck with 1.3.3 (flickering menus - I don't know how to solve that one unfortunately).
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: dfort on February 16, 2017, 06:48:05 AM
@chris_overseas

I got adtg_gui working in the unified branch but considering how close 123 is to 134 I'm getting a large difference in the addresses. For example, your 133 numbers look like this:

Code: [Select]
        FRAME_CMOS_ISO_START = 0x40452C72; // CMOS register 0000 - for LiveView, ISO 100 (check in movie mode, not photo!)
        PHOTO_CMOS_ISO_START = 0x40451120; // CMOS register 0000 - for photo mode, ISO 100

I'm getting this on 134:

Code: [Select]
        FRAME_CMOS_ISO_START =   0x146C80; // CMOS register 0000 - for LiveView, ISO 100 (check in movie mode, not photo!)
        PHOTO_CMOS_ISO_START =   0x146C80; // CMOS register 0000 - for photo mode, ISO 100

Then I remembered using adtg_gui from the iso_research branch. There were a few more addresses to look up for that version of adtg_gui but even though everything seemed to check out properly it kept crashing. Fun times!

In any case, those funky addresses are giving me an "ISOless PH err(2)" with the dual_iso module so I'll stick with your 133 values for now.
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: dfort on February 19, 2017, 06:05:31 PM
Borrowed a couple of EF lenses in order to check out the focus tests. Big thanks to @DeafEyeJedi !

Did some more digging in consts.c and was able to come up with a change in the FOCUS_CONFIRMATION.

Passes the lua API test from the unified branch:

Code: [Select]
===============================================================================
ML/SCRIPTS/api_test.lua - 2017-2-19 08:38:37
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
camera = table:
  shutter = table:
    raw = 104
    apex = 6.
    ms = 16
    value = 0.015624
  aperture = table:
    raw = 48
    apex = 5
    value = 5.599999
    min = table:
      raw = 13
      apex = 0.624999
      value = 1.2
    max = table:
      raw = 72
      apex = 8
      value = 16
  iso = table:
    raw = 80
    apex = 6.
    value = 200
  ec = table:
    raw = 0
    value = 0
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 6500
  mode = 3
  metering_mode = 3
  drive_mode = 0
  model = "Canon EOS 5D Mark III"
  model_short = "5D3"
  firmware = "1.3.4"
  temperature = 147
  state = 0
  shoot = function: p
  reboot = function: p
  bulb = function: p
event = table:
  pre_shoot = nil
  post_shoot = nil
  shoot_task = nil
  seconds_clock = nil
  keypress = nil
  custom_picture_taking = nil
  intervalometer = nil
  config_save = nil
console = table:
  hide = function: p
  show = function: p
  write = function: p
  clear = function: p
lv = table:
  enabled = true
  paused = false
  running = true
  zoom = 1
  info = function: p
  start = function: p
  pause = function: p
  resume = function: p
  stop = function: p
  wait = function: p
lens = table:
  name = "EF50mm f/1.2L USM"
  focal_length = 101
  focus_distance = 261120
  hyperfocal = 62915
  dof_near = 50655
  dof_far = 1000000
  af = true
  af_mode = 0
  focus = function: p
display = table:
  idle = true
  height = 480
  width = 720
  pixel = function: p
  draw = function: p
  clear = function: p
  print = function: p
  circle = function: p
  rect = function: p
  off = function: p
  load = function: p
  notify_box = function: p
  screenshot = function: p
  on = function: p
  line = function: p
key = table:
  last = 0
  press = function: p
  wait = function: p
menu = table:
  visible = false
  new = function: p
  set = function: p
  block = function: p
  get = function: p
  close = function: p
  open = function: p
testmenu = userdata:
  value = 0
  name = "Script API tests"
  help = "Various tests for the Lua scripting API."
  help2 = "When adding new Lua APIs, tests for them should go here."
  advanced = 0
  depends_on = 0
  edit_mode = 0
  hidden = false
  icon_type = 5
  jhidden = false
  max = 0
  min = 0
  selected = true
  shidden = false
  starred = false
  submenu_height = 0
  submenu_width = 0
  unit = 0
  works_best_in = 0
  run_in_separate_task = 0
  select = function: p
  update = nil
  info = nil
  rinfo = nil
  warning = nil
movie = table:
  recording = false
  stop = function: p
  start = function: p
dryos = table:
  clock = 25
  ms_clock = 25085
  prefix = "1Y7A"
  dcim_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "B:/DCIM/"
    path = "B:/DCIM/100EOS5D/"
  config_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "ML/"
    path = "ML/SETTINGS/"
  ml_card = table:
    cluster_size = 131072
    drive_letter = "B"
    file_number = 2489
    folder_number = 100
    free_space = 62705024
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  shooting_card = table:
    cluster_size = 131072
    drive_letter = "B"
    file_number = 2489
    folder_number = 100
    free_space = 62705024
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  date = table:
    min = 38
    day = 19
    wday = 1
    month = 2
    hour = 8
    year = 2017
    isdst = false
    yday = 50
    sec = 40
  directory = function: p
  remove = function: p
  call = function: p
interval = table:
  time = 10
  count = 0
  running = 0
  stop = function: p
battery = table:
  level = 53
  id = 0
  performance = 3
  time = 5724
  drain_rate = 33
task = table:
  yield = function: p
  create = function: p
property = table:
Generic tests completed.

Module tests...
Copy test: autoexec.bin -> tmp.bin
Copy test OK
Append test: tmp.txt
Append test OK
Testing exposure settings, module 'camera'...
Camera    : Canon EOS 5D Mark III (5D3) 1.3.4
Lens      : EF50mm f/1.2L USM
Shoot mode: 3
Shutter   : Ç60 (raw 104, 0.015624s, 16ms, apex 6.)
Aperture  : Å5.6 (raw 48, f/5.599999, apex 5)
Av range  : Å1.2..Å16 (raw 13..72, f/1.2..f/16, apex 0.624999..8)
ISO       : 200 (raw 80, 200, apex 6.)
EC        : 0.0 (raw 0, 0 EV)
Flash EC  : 0.0 (raw 0, 0 EV)
Setting shutter to random values...
Setting ISO to random values...
Setting aperture to random values...
Please switch to Av mode.
Setting EC to random values...
Setting Flash EC to random values...
Exposure tests completed.

Testing module 'lv'...
LiveView is running; stopping...
Starting LiveView...
Setting zoom to x1...
Setting zoom to x5...
Setting zoom to x10...
Setting zoom to x5...
Setting zoom to x1...
Setting zoom to x10...
Setting zoom to x1...
Pausing LiveView...
Resuming LiveView...
Stopping LiveView...
LiveView tests completed.

Focus distance: 261120
Focusing backward...
Focus distance: 261120
Focusing forward with step size 3, wait=true...
.......................
Focus distance: 261120
Focusing backward with step size 3, wait=true...
.......................
Focus distance: 261120
Focus range: 23 steps forward, 23 steps backward.
Focusing forward with step size 3, wait=false...
.......................
Focus distance: 261120
Focusing backward with step size 3, wait=false...
.......................
Focus distance: 261120
Focus range: 23 steps forward, 23 steps backward.
Focusing forward with step size 2, wait=true...
...
Focus distance: 261120
Focusing backward with step size 2, wait=true...
...
Focus distance: 261120
Focus range: 161 steps forward, 162 steps backward.
Focusing forward with step size 2, wait=false...
...
Focus distance: 261120
Focusing backward with step size 2, wait=false...
...
Focus distance: 261120
Focus range: 161 steps forward, 162 steps backward.
Focusing forward with step size 1, wait=true...
...
Focus distance: 261120
Focusing backward with step size 1, wait=true...
...
Focus distance: 261120
Focus range: 1237 steps forward, 1232 steps backward.
Focusing forward with step size 1, wait=false...
...
Focus distance: 261120
Focusing backward with step size 1, wait=false...
...
Focus distance: 261120
Focus range: 1237 steps forward, 1237 steps backward.
Focus test completed.

Done!

However, the "lua_fix" branch has some extended tests and it stops here.

(https://c1.staticflickr.com/3/2318/32868755851_c95c07f522_o.jpg)

Any hints on what might be causing this?
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: a1ex on February 19, 2017, 06:34:42 PM
one valuable lesson I learned from dmilligan is to look at the code

The error happens here:
Code: [Select]
        printf("Autofocus outside LiveView...\n")
        assert(lens.autofocus())

In lua_lens.c, luaCB_lens_autofocus, it simulates a half-shutter press (which probably works OK, being covered in the stubs test), then it waits for... FOCUS_CONFIRMATION!

If your lens cannot autofocus, it should not reach this code at all.
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: dfort on February 20, 2017, 02:33:37 AM
Ah, but I did look at the code and am checking against three different firmware versions. Note that the first thing I wrote was about FOCUS_CONFIRMATION. Looking at consts.h it says:

Code: [Select]
// see "focusinfo" and Wiki:Struct_Guessing
So I went to that wiki page (http://magiclantern.wikia.com/wiki/Struct_Guessing) and worked my way through it until I came up with the value for the 134 firmware. Interesting that when using the 123 values the line number reported was api_test.lua:734 and when using the newly found FOCUS_CONFIRMATION constant it changed to api_test.lua:724. It seems that on one run the camera was in LiveView and in the other it wasn't but I ran the tests multiple times, always starting in LiveView mode and these results were repeatable.

consts.h
Code: [Select]
722    if not lv.running then
723        printf("Autofocus outside LiveView...\n")
724 ->     assert(lens.autofocus())
725
726        lv.start()
727        assert(lv.running)
728    end
729
730    if lens.af then
731        printf("Focus distance: %s\n",  lens.focus_distance)
732
733        printf("Autofocus in LiveView...\n")
734 ->     assert(lens.autofocus())

In both cases it seems to trip up in pretty much the same spot, waiting for FOCUS_CONFIRMATION. So maybe I didn't figure it out properly?

Code: [Select]
#define FOCUS_CONFIRMATION (*(int*)0x27650)
Something I did regularly back when I was having to make bug reports was to do regression tests so I installed 5D3.123 and ran the lua_fix test.

(https://c1.staticflickr.com/3/2109/32620516270_85aeb3b5f7_o.jpg)

That's not good, I got further with the 5D3.134 build. Ok, how about the gold standard -- 5D3.113:

(https://c1.staticflickr.com/3/2785/32187218463_7ee89818ff_o.jpg)

Oops, did I compile it improperly? Downloaded lua_fix from the Experiments download page (https://builds.magiclantern.fm/experiments.html) and got the same results.

So maybe when this is fixed on 5D3.113 it will also work with 5D3.134?
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: a1ex on February 20, 2017, 02:40:34 AM
It works fine here. Of course, the camera must have something to focus on.
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: dfort on February 20, 2017, 06:10:03 AM
Ok--sanity check. What would Walter do? Remove battery, remove card, reset custom settings, ah! Got through that sticking point but then the camera would just shut down after about a minute. Doh! Disable Auto Power off.

Here we go:

Code: [Select]
===============================================================================
ML/SCRIPTS/api_test.lua - 2017-2-19 20:23:08
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
arg = table:
  [0] = "api_test.lua"
camera = table:
  shutter = table:
    raw = 101
    apex = 5.625
    ms = 20
    value = 0.020263
  aperture = table:
    raw = 48
    apex = 5
    value = 5.599999
    min = table:
      raw = 13
      apex = 0.624999
      value = 1.2
    max = table:
      raw = 72
      apex = 8
      value = 16
  iso = table:
    raw = 92
    apex = 7.5
    value = 560
  ec = table:
    raw = 0
    value = 0
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 5200
  mode = 3
  metering_mode = 3
  drive_mode = 0
  model = "Canon EOS 5D Mark III"
  model_short = "5D3"
  firmware = "1.3.4"
  temperature = 160
  state = 0
  burst = function: p
  reboot = function: p
  bulb = function: p
  shoot = function: p
event = table:
  pre_shoot = nil
  post_shoot = nil
  shoot_task = nil
  seconds_clock = nil
  keypress = nil
  custom_picture_taking = nil
  intervalometer = nil
  config_save = nil
console = table:
  clear = function: p
  write = function: p
  show = function: p
  hide = function: p
lv = table:
  enabled = true
  paused = false
  running = true
  zoom = 1
  resume = function: p
  wait = function: p
  info = function: p
  pause = function: p
  start = function: p
  stop = function: p
lens = table:
  name = "EF50mm f/1.2L USM"
  focal_length = 101
  focus_distance = 261120
  hyperfocal = 62915
  dof_near = 50655
  dof_far = 1000000
  af = true
  af_mode = 0
  autofocus = function: p
  focus = function: p
display = table:
  idle = true
  height = 480
  width = 720
  on = function: p
  screenshot = function: p
  line = function: p
  load = function: p
  off = function: p
  clear = function: p
  notify_box = function: p
  pixel = function: p
  draw = function: p
  circle = function: p
  rect = function: p
  print = function: p
key = table:
  last = 20
  wait = function: p
  press = function: p
menu = table:
  visible = false
  close = function: p
  set = function: p
  new = function: p
  block = function: p
  get = function: p
  open = function: p
movie = table:
  recording = false
  start = function: p
  stop = function: p
dryos = table:
  clock = 14
  ms_clock = 14657
  prefix = "1Y7A"
  dcim_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "B:/DCIM/"
    path = "B:/DCIM/100EOS5D/"
  config_dir = table:
    exists = true
    create = function: p
    children = function: p
    files = function: p
    parent = table:
      exists = true
      create = function: p
      children = function: p
      files = function: p
      parent = table:
        exists = true
        create = function: p
        children = function: p
        files = function: p
        parent = nil
        path = "B:/"
      path = "ML/"
    path = "ML/SETTINGS/"
  ml_card = table:
    cluster_size = 131072
    drive_letter = "B"
    file_number = 2502
    folder_number = 100
    free_space = 62705152
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  shooting_card = table:
    cluster_size = 131072
    drive_letter = "B"
    file_number = 2502
    folder_number = 100
    free_space = 62705152
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  date = table:
    wday = 1
    day = 19
    month = 2
    sec = 10
    isdst = false
    year = 2017
    hour = 20
    min = 23
    yday = 50
  call = function: p
  directory = function: p
  remove = function: p
  rename = function: p
interval = table:
  time = 10
  count = 0
  running = false
  stop = function: p
battery = table:
  level = 49
  id = 0
  performance = 3
  time = nil
  drain_rate = 33
task = table:
  create = function: p
  yield = function: p
property = table:
Generic tests completed.

Module tests...
Testing file I/O...
Copy test: autoexec.bin -> tmp.bin
Copy test OK
Append test: tmp.txt
Append test OK
Rename test: apple.txt -> banana.txt
Rename test OK
Rename test: apple.txt -> ML/banana.txt
Rename test OK
File I/O tests completed.

Testing half-shutter...
Half-shutter test OK.

Testing module 'lv'...
LiveView is running; stopping...
Starting LiveView...
Setting zoom to x1...
Setting zoom to x5...
Setting zoom to x10...
Setting zoom to x5...
Setting zoom to x1...
Setting zoom to x10...
Setting zoom to x1...
Pausing LiveView...
Resuming LiveView...
Stopping LiveView...
LiveView tests completed.


Testing lens focus functionality...
Autofocus outside LiveView...
Focus distance: 261120
Autofocus in LiveView...
Focus distance: 261120
Focusing backward...
Focus distance: 261120
Focusing forward with step size 3, wait=true...
.......................
Focus distance: 261120
Focusing backward with step size 3, wait=true...
.......................
Focus distance: 261120
Focus range: 23 steps forward, 23 steps backward.
Focusing forward with step size 3, wait=false...
...
Focus distance: 261120
Focusing backward with step size 3, wait=false...
...
Focus distance: 261120
Focus range: 106 steps forward, 108 steps backward.
Focusing forward with step size 2, wait=true...
...
Focus distance: 261120
Focusing backward with step size 2, wait=true...
...
Focus distance: 261120
Focus range: 161 steps forward, 162 steps backward.
Focusing forward with step size 2, wait=false...
...
Focus distance: 261120
Focusing backward with step size 2, wait=false...
...
Focus distance: 261120
Focus range: 482 steps forward, 485 steps backward.
Focusing forward with step size 1, wait=true...
...
Focus distance: 261120
Focusing backward with step size 1, wait=true...
...
Focus distance: 261120
Focus range: 1237 steps forward, 1235 steps backward.
Focusing forward with step size 1, wait=false...
...
Focus distance: 261120
Focusing backward with step size 1, wait=false...
...
Focus distance: 261120
Focus range: 1679 steps forward, 1681 steps backward.
Focus test completed.

Testing picture taking functions...
Snap simulation test...
Single picture...
Two burst pictures...
Ideally, the camera should be in some continuous shooting mode (not checked).
Bulb picture...
Elapsed time: 13658
Picture taking tests completed.

Testing exposure settings...
Camera    : Canon EOS 5D Mark III (5D3) 1.3.4
Lens      : EF50mm f/1.2L USM
Shoot mode: 3
Shutter   : Ç50 (raw 101, 0.020263s, 20ms, apex 5.625)
Aperture  : Å5.6 (raw 48, f/5.599999, apex 5)
Av range  : Å1.2..Å16 (raw 13..72, f/1.2..f/16, apex 0.624999..8)
ISO       : 560 (raw 92, 560, apex 7.5)
EC        : 0.0 (raw 0, 0 EV)
Flash EC  : 0.0 (raw 0, 0 EV)
Setting shutter to random values...
Setting ISO to random values...
Setting aperture to random values...
Please switch to Av mode.
Setting EC to random values...
Setting Flash EC to random values...
Exposure tests completed.


Testing movie recording...
Please switch to Movie mode.
Movie recording tests completed.

Done!

A few interesting observations. The 113 firmware gave one error while the 134 firmware seemed to pass all tests:

Code: [Select]
Setting aperture to random values...
Error: aperture delta 0.25 EV (expected < 0.1875, Å11, method=3)

I have a couple of borrowed lenses for these tests, a gorgeous 50mm f1.2 L USM and a curious looking Canon 40mm f/2.8 STM. The STM lens focused much quicker and quieter than the USM lens. Here is just the focus section for the lua API test run with the 40mm "pancake" lens:

Code: [Select]
===============================================================================
ML/SCRIPTS/api_test.lua - 2017-2-19 20:49:13
===============================================================================
...

Testing lens focus functionality...
Autofocus outside LiveView...
Focus distance: 473600
Autofocus in LiveView...
Focus distance: 473600
Focusing backward...
Focus distance: 483840
Focusing forward with step size 3, wait=true...
.........
Focus distance: 432640
Focusing backward with step size 3, wait=true...
..........
Focus distance: 483840
Focus range: 9 steps forward, 10 steps backward.
Focusing forward with step size 3, wait=false...
...
Focus distance: 432640
Focusing backward with step size 3, wait=false...
...
Focus distance: 483840
Focus range: 151 steps forward, 146 steps backward.
Focusing forward with step size 2, wait=true...
................................................................
Focus distance: 432640
Focusing backward with step size 2, wait=true...
................................................................
Focus distance: 483840
Focus range: 64 steps forward, 64 steps backward.
Focusing forward with step size 2, wait=false...
...
Focus distance: 432640
Focusing backward with step size 2, wait=false...
...
Focus distance: 483840
Focus range: 224 steps forward, 220 steps backward.
Focusing forward with step size 1, wait=true...

Focus distance: 483840
Focusing backward with step size 1, wait=true...

Focus distance: 483840
Focus range: 0 steps forward, 0 steps backward.
Focusing forward with step size 1, wait=false...
.
Focus distance: 483840
Focusing backward with step size 1, wait=false...

Focus distance: 483840
Focus range: 1 steps forward, 0 steps backward.
Focus test completed.

Testing picture taking functions...
Snap simulation test...
Single picture...
Two burst pictures...
Ideally, the camera should be in some continuous shooting mode (not checked).
Bulb picture...
Elapsed time: 13680
Picture taking tests completed.

Testing exposure settings...
Camera    : Canon EOS 5D Mark III (5D3) 1.3.4
Lens      : EF40mm f/2.8 STM

So the good new is that it looks like this 1.3.4 build is passing all the tests. The bad new is that there are still some wrinkles to iron out.

adtg_gui from the unified branch is reporting the wrong CMOS[0] values that are needed for dual_iso and the adtg_gui from the iso-research branch is crashing. I'm pretty sure that I got the right values for 134 to work:

Code: [Select]
    else if (is_camera("5D3", "1.3.4"))
    {
        ADTG_WRITE_FUNC = 0xE440;     // 0xFFA02514 - RAM_OFFSET
        CMOS_WRITE_FUNC = 0xE7CC;     // 0xFFA028A0 - RAM_OFFSET
        CMOS2_WRITE_FUNC = 0xE584;    // 0xFFA02658 - RAM_OFFSET
        CMOS16_WRITE_FUNC = 0xE8B8;   // 0xFFA0298C - RAM_OFFSET
        ENGIO_WRITE_FUNC = 0xFF2910FC+8;
        ENG_DRV_OUT_FUNC = 0xFF290DE4;
    }

Yeah, ENGIO_WRITE_FUNC is funky but I took that from the 123 code.

There is also some Canon menu flashing when first opening the ML menu with LiveView off.
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: a1ex on February 20, 2017, 08:29:00 AM
So it was a custom setting? Would be nice to find which one.

These settings are saved in ROM, so just keep a backup safe if the troublesome setting(s) can't be identified easily. If I'll manage to get Canon menu navigation working on 5D3 in QEMU (it now works on 500D), it should be easy to reproduce.
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: dfort on February 20, 2017, 09:32:41 PM
...keep a backup safe if the troublesome setting(s) can't be identified easily....

Will do. I'm also going to disassemble the new ROM1.BIN to double check some of the addresses. This camera had 1.3.3 installed when I got it and I have gone from 1.1.3 to 1.3.4 to 1.2.3, etc. without ever clearing the Canon settings so I can imagine that they might have gotten corrupted. Maybe corrupt custom setting is why Canon doesn't want users to downgrade from the 1.3.x firmware series?
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: grosten on April 11, 2017, 04:40:25 PM
How's the process going? How stable is it compared to the 1.2.3/1.1.3 and where can I get it?
(Newbie)
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: dfort on April 12, 2017, 09:07:04 AM
The only hiccup so far is a flashing menu when you first turn it on. This is something that the 1.3.3 port also had. The pull request is here:

https://bitbucket.org/hudson/magic-lantern/pull-requests/816/update-to-5d3134/diff

I also posted a test build on my bitbucket download area (201 downloads):

https://bitbucket.org/daniel_fort/magic-lantern/downloads/

If you want to regress to an earlier firmware from 1.3.4 (or 1.3.3) make sure you follow these instructions:

http://www.magiclantern.fm/forum/index.php?topic=18941.msg179783#msg179783
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: ruc on April 15, 2017, 09:25:43 PM
Hallo friends,
I read first after that the ML-SETUP.FIR is not there. Where can i get it? So i can upload it to the card??
I have now just the 1.3.4 and no magic lantern.
Please Help.
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: nexiabass on May 08, 2017, 08:36:00 PM
Also problem here.
Downloaded "magiclantern-Nightly.2017Apr22.5D3134.zip"
Camera Firmware 1.3.4.
But installation failed.
ML installer is expecting firmware 1.2.3.
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: Walter Schulz on May 08, 2017, 08:46:43 PM
Format card in cardreader.
Downgrade to firmware 1.2.3.
Install ML for firmware 1.2.3.
Use a second card (clean one, format in cardreader, then in cam) and install firmware 1.3.4.
Backup and delete "ML" card's Autoexec.bin, ML-SETUP.FIR and ML directory.
Copy extracted 1.3.4 build contents to "ML" card.
Does it work now?

Report back.
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: dfort on May 09, 2017, 07:40:18 AM
ML installer is expecting firmware 1.2.3.

Oops, my fault. I uploaded a package with the 1.2.3 ML-SETUP.FIR, fixed it. Strange, 319 downloads of that build and this is the first report of the problem.

Sorry, we don't have a 1.3.4 ML-SETUP.FIR yet so you'll have to follow Walter's advice. Make sure your camera boot flag is set before updating the Canon firmware. In other words don't uninstall 1.2.3 before you update.
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: nexiabass on May 31, 2017, 04:07:25 PM
The advice worked.

Now i can use ML with the newest Firmware  8) Thanks!

I found only one issue for me - in the "normal" canon menus the Q button no longer works.

Is there any workaround?
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: dfort on June 01, 2017, 04:39:53 AM
I found only one issue for me - in the "normal" canon menus the Q button no longer works.

Well that is an issue. I've been busy on other projects and could use some help tracking that down. So if you don't load ML the Q button works as expected on the Canon menus?
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: nexiabass on June 01, 2017, 08:54:11 AM
The Q button works perfect if i start the camera without the card.
Otherwise ML seems to run perfectly.
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: gianni_1967 on June 09, 2017, 01:03:29 PM
Hiya all. I am buying a second hand Mkiii with 1.3.4 firmware installed. I will want to use ML on it, reason why I am reading this post. I am getting that I will need to downgrade it to 1.2.3. Where do I get the downgrade from? And I am not getting the procedure. Can anyone please explain it step by step? Get second card, so that will be after downgrading the camera to 1.2.3?? And how do I then install 1.3.4 if I downgraded the camera? Sorry for being probably a bit slow... :-(

Format card in cardreader.
Downgrade to firmware 1.2.3.
Install ML for firmware 1.2.3.
Use a second card (clean one, format in cardreader, then in cam) and install firmware 1.3.4.
Backup and delete "ML" card's Autoexec.bin, ML-SETUP.FIR and ML directory.
Copy extracted 1.3.4 build contents to "ML" card.
Does it work now?

Report back.
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: dfort on June 10, 2017, 11:17:57 PM
@gianni_1967

Pelican keeps an archive of Canon firmware updates on his website:

http://pel.hu/eoscard/

Here are instructions how to do a Canon firmware downgrade:

http://www.magiclantern.fm/forum/index.php?topic=18941.msg179783#msg179783

Just a tip--for the best Magic Lantern experience on 5D3 use 1.1.3, if you need HDMI output and some other updated features use 1.2.3 if you want to live on the bleeding edge and help with development then maybe 1.3.4 is for you.
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: thedada on June 15, 2017, 04:12:23 PM
Hi there,

I might be kinda stupid  :o , but where is the Download link  :-X?

thank you in advance,

Regards,
Title: Need Advice - Want to Update My Canon Firmware
Post by: zfairley on June 25, 2017, 08:19:46 PM
Hi guys, I could use some help.

I currently have Canon's 1.1.3 firmware on my Mark iii with ML V2.3. I recently got a SmallHD monitor but I don't have the mirroring option available with my current Canon firmware. I want to upgrade it but I am unsure if that will cause any issues with ML being installed and also not sure how high I can upgrade the firmware. Some advice or things I should consider with completing an update would be great. Thanks!

-ZF
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: dfort on June 29, 2017, 04:27:19 AM
...where is the Download link  :-X?

magiclantern-Nightly.2017Feb19.5D3134.zip (https://bitbucket.org/daniel_fort/magic-lantern/downloads/magiclantern-Nightly.2017Feb19.5D3134.zip)

Note that this is a work in progress so it might change or disappear. Best if you can start on the first post and read through this topic first.
Title: Re: Need Advice - Want to Update My Canon Firmware
Post by: dfort on June 29, 2017, 04:55:53 AM
Hi guys, I could use some help.

...Canon's 1.1.3 firmware on my Mark iii with ML V2.3...

Wrong topic for that discussion. However, you should at least update from V2.3 because that is way out of date. The latest versions are on the downloads sections of this website (https://builds.magiclantern.fm/). I made it really easy for testers to grab the Canon firmware for the 5D3 (http://5D3 Canon Firmware for Testers.zip) and posted tutorials on how to update and downgrade your firmware (http://www.magiclantern.fm/forum/index.php?topic=18941.0). Once you are on 1.2.3, which is where you probably should be, continue the discussion on the appropriate topic (http://www.magiclantern.fm/forum/index.php?topic=11017.0).
Title: Re: Canon 5D Mark III / 5D3 / Firmware 1.3.4
Post by: dfort on July 02, 2017, 09:29:48 PM
I found only one issue for me - in the "normal" canon menus the Q button no longer works.

Is there any workaround?

Finally got around to checking up on this and can verify the issue. I'll have to do some digging around to figure out what is going on.