Canon 550D / T2i

Started by ItsMeLenny, August 27, 2014, 10:34:21 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ItsMeLenny

I'm thinking of just changing the first post to make it look as if 1.1.0 is the official version (not that I've tried it yet) but just as a force upgrade for everybody.
I don't see a point in there being two branches, and I don't see a point in using old firmware.
Thoughts?

dfort

Maybe it would be better to try it before forcing an update?

I'll put in a pull request when testers confirm that it is working with no new bugs.

ItsMeLenny

Quote from: dfort on February 12, 2018, 03:13:02 PM
Maybe it would be better to try it before forcing an update?

Fair call :P

But yeah basically what I meant, that I would test it first.

Do I have to disable the bootflag first in camera to do the canon firmware update?


dfort

Quote from: ItsMeLenny on February 13, 2018, 07:53:24 AM
Do I have to disable the bootflag first in camera to do the canon firmware update?

You don't have to but it would be good to do that in order to test it as if this was a new ML install. The test build I posted includes the ML-SETUP.FIR which is needed to set the camera and card bootflags.

volex

Hello,

Just some quick comments about the 1.1.0 build.

I installed the firmware from scratch and mwy lens is the Canon 18-135mmm.


So far, I took some pictures in *.jpg and RAW.
I ran the intervallometer on ML, took some pics with dualSIO and with the bracketing module.
I did not shoot any videos.

So far, everything seems to work perfectly.


Alex



dfort

Well that is good news. Looks like it is time to submit a pull request for 1.1.0.

dfort

Pull request for 550D.110 is up. Test build available on my downloads page. Look for 550D.109_to_110_fw_update. There is also a "550D Canon Firmware for Testers.zip" so you don't have to go searching for the files to update and downgrade your firmware.

Need users to run the tests on camera. Load the selftest module and run the "Stubs API test" and load the lua module to run the "Script API tests" then there's the bench module to run the benchmark tests. Note that if any test fails it would be great if it can also be run on the 1.0.9 firmware to see if it is something that was introduced with the firmware update.

volex

Good evening,

I ran a few of te tests on my camera (firmware 1.10 installed fron scratch) :
* "Stubs API test" finished with no problems
* Quick test (around 15 mins) within the lua module : semmed to hang a couple of times but the tests did continue when I rotated the wheel => maybe I have not been patient enough or ...
Finally tests seemed to finish
* I ran the card and the Memory "benchmarks" without any issues

But I couldn't figure out how to run the "Script API tests" !!!    I couldn't find it, Sorry....


Kind regards,


Alex

dfort

Quote from: volex on February 20, 2018, 10:52:45 PM
But I couldn't figure out how to run the "Script API tests" !!!    I couldn't find it, Sorry....

Activate the lua module, restart the camera and look in the new scripts menu. You'll find it there.

BTW--some of these tests save logs on the card so it would be nice if you could post these logs.

volex

Hi,

I got it, module activated and I ran the "Script API tests" 2 or 3 times.
But it failed (or I have not been patient enough).
It get stuck when "Setting shutter to random values..." appears on the LCD.

I copy here below the 3 *.log files I found on the SD cqrd : STUBTEST.LOG, LUATEST.LOG & CRASH00.LOG
LUATEST.LOG and CRASH00.LOG seem to be linked since they have the exact same time of creation.


STUBTEST.LOG
chunk = GetFirstChunkFromSuite(suite) => 0xcb090
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1800000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x423fc094
[Pass] UNCACHEABLE(p) => 0x423fc094
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite_contig(0) => 0xcb068
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1e30000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xcb090
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1e30000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(64*1024*1024) => 0xcb068
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x3
[Pass] suite->size => 0x4000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xcb090
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1c00000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x423fc094
[Pass] UNCACHEABLE(p) => 0x423fc094
       chunk = GetNextMemoryChunk(suite, chunk) => 0xcb0f0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x283c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x413c27e4
[Pass] UNCACHEABLE(p) => 0x413c27e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xcb128
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4000000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(0) => 0xcb068
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x3
[Pass] suite->size => 0x4700000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xcb090
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1c00000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x423fc094
[Pass] UNCACHEABLE(p) => 0x423fc094
       chunk = GetNextMemoryChunk(suite, chunk) => 0xcb0f0
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x283c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x413c27e4
[Pass] UNCACHEABLE(p) => 0x413c27e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xcb128
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4700000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4700000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] strlen("abc") => 0x3
[Pass] strlen("qwertyuiop") => 0xa
[Pass] strlen("") => 0x0
[Pass] strcpy(msg, "hi there") => 0x15d594
[Pass] msg => 'hi there'
[Pass] snprintf(a, sizeof(a), "foo") => 0x3
[Pass] snprintf(b, sizeof(b), "foo") => 0x3
[Pass] strcmp(a, b) => 0x0
[Pass] snprintf(a, sizeof(a), "bar") => 0x3
[Pass] snprintf(b, sizeof(b), "baz") => 0x3
[Pass] strcmp(a, b) => 0xfffffff8
[Pass] snprintf(a, sizeof(a), "Display") => 0x7
[Pass] snprintf(b, sizeof(b), "Defishing") => 0x9
[Pass] strcmp(a, b) => 0x4
[Pass] snprintf(buf, 3, "%d", 1234) => 0x2
[Pass] buf => '12'
[Pass] memcpy(foo, bar, 6) => 0x15d560
[Pass] foo => 'asdfghuiop'
[Pass] memset(bar, '*', 5) => 0x15d540
[Pass] bar => '*****hjkl;'
       bzero32(bar + 5, 5)
[Pass] bar => '****'
       EngDrvOut(LCD_Palette[0], 0x1234)
[Pass] shamem_read(LCD_Palette[0]) => 0x1234
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       call("TurnOffDisplay")
[Pass] DISPLAY_IS_ON => 0x0
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       task_create("test", 0x1c, 0x1000, test_task, 0) => 0x66e00b2
[Pass] test_task_created => 0x1
[Pass] get_current_task_name() => 'run_test'
[Pass] task_max => 0x68
[Pass] task_max => 0x68
[Pass] mq = mq ? mq : (void*)msg_queue_create("test", 5) => 0x6700086
[Pass] msg_queue_post(mq, 0x1234567) => 0x0
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x0
[Pass] m => 0x1234567
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x9
[Pass] sem = sem ? sem : create_named_semaphore("test", 1) => 0x672027a
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] take_semaphore(sem, 500) => 0x9
[Pass] give_semaphore(sem) => 0x0
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] give_semaphore(sem) => 0x0
[Pass] rlock = rlock ? rlock : CreateRecursiveLock(0) => 0x6740088
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0xf
       SetGUIRequestMode(1); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x1
       SetGUIRequestMode(2); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x2
       SetGUIRequestMode(0); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x0
[Pass] display_idle() => 0x1
       GUI_Control(BGMT_PLAY, 0, 0, 0); msleep(1000);
[Pass] PLAY_MODE => 0x1
[Pass] MENU_MODE => 0x0
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(1000);
[Pass] MENU_MODE => 0x1
[Pass] PLAY_MODE => 0x0
[Pass] dialog->type => 'DIALOG'
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(500);
[Pass] MENU_MODE => 0x0
[Pass] PLAY_MODE => 0x0
       SW1(1,100)
[Pass] HALFSHUTTER_PRESSED => 0x1
       SW1(0,100)
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x1
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x1
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0


LUATEST.LOG

===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-2-21 10:02:02
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
camera = table:
  shutter = table:
    raw = 0
    apex = -7.
    ms = 0
    value = 0
  aperture = table:
    raw = 40
    apex = 4
    value = 4
    min = table:
      raw = 37
      apex = 3.625
      value = 3.5
    max = table:
      raw = 80
      apex = 9
      value = 22.6
  iso = table:
    raw = 0
    apex = -4
    value = 0
  ec = table:
    raw = 0
    value = 0
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 5200
  mode = 2
  metering_mode = 3
  drive_mode = 0
  model = "Canon EOS 550D"
  model_short = "550D"
  firmware = "1.1.0"
  temperature = 146
  state = 0
  bulb = function: p
  shoot = function: p
  reboot = 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
  hide = function: p
  show = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  stop = function: p
  resume = function: p
  pause = function: p
  start = function: p
  info = function: p
  wait = function: p
lens = table:
  name = "EF-S18-135mm f/3.5-5.6 IS STM"
  focal_length = 0
  focus_distance = 14080
  hyperfocal = 0
  dof_near = 0
  dof_far = 0
  af = true
  af_mode = 0
  focus = function: p
display = table:
  idle = true
  height = 480
  width = 720
  load = function: p
  pixel = function: p
  line = function: p
  off = function: p
  circle = function: p
  draw = function: p
  screenshot = function: p
  on = function: p
  rect = function: p
  print = function: p
  notify_box = function: p
  clear = function: p
key = table:
  last = 0
  wait = function: p
  press = function: p
menu = table:
  visible = false
  block = function: p
  get = function: p
  close = function: p
  set = function: p
  open = function: p
  new = 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 = 43
  ms_clock = 43424
  prefix = "IMG_"
  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/100CANON/"
  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 = 32768
    drive_letter = "B"
    file_number = 9813
    folder_number = 100
    free_space = 29301824
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  shooting_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 9813
    folder_number = 100
    free_space = 29301824
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  date = table:
    hour = 10
    month = 2
    yday = 1
    day = 21
    sec = 3
    min = 2
    wday = 2
    isdst = false
    year = 2018
  remove = function: p
  directory = function: p
  call = function: p
interval = table:
  time = 3
  count = 0
  running = 0
  stop = function: p
battery = table:
function not available on this camera
stack traceback:
   [C]: in ?
   [C]: in for iterator 'for iterator'
   ML/SCRIPTS/LIB/logger.lua:125: in function 'logger.serialize'
   ML/SCRIPTS/API_TEST.LUA:30: in function <ML/SCRIPTS/API_TEST.LUA:29>
   [C]: in function 'globals.xpcall'
   ML/SCRIPTS/API_TEST.LUA:29: in function 'globals.print_table'
   ML/SCRIPTS/API_TEST.LUA:75: in function 'globals.generic_tests'
   ML/SCRIPTS/API_TEST.LUA:634: in function 'globals.api_tests'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 550D (550D) 1.1.0
Lens      : EF-S18-135mm f/3.5-5.6 IS STM
Shoot mode: 2
Shutter   : RAW:0 (raw 0, 0s, 0ms, apex -7.)
Aperture  : 4.0 (raw 40, f/4, apex 4)
Av range  : 3.5..22 (raw 37..80, f/3.5..f/22.6, apex 3.625..9)
ISO       : AutoISO (raw 0, 0, apex -4)
EC        : 0.0 (raw 0, 0 EV)
Flash EC  : 0.0 (raw 0, 0 EV)
Please switch to M mode.

===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-2-21 10:23:02
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
camera = table:
  shutter = table:
    raw = 0
    apex = -7.
    ms = 0
    value = 0
  aperture = table:
    raw = 40
    apex = 4
    value = 4
    min = table:
      raw = 37
      apex = 3.625
      value = 3.5
    max = table:
      raw = 80
      apex = 9
      value = 22.6
  iso = table:
    raw = 0
    apex = -4
    value = 0
  ec = table:
    raw = 0
    value = 0
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 5200
  mode = 2
  metering_mode = 3
  drive_mode = 0
  model = "Canon EOS 550D"
  model_short = "550D"
  firmware = "1.1.0"
  temperature = 146
  state = 0
  bulb = function: p
  shoot = function: p
  reboot = 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
  clear = function: p
  write = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  pause = function: p
  info = function: p
  wait = function: p
  resume = function: p
  stop = function: p
  start = function: p
lens = table:
  name = "EF-S18-135mm f/3.5-5.6 IS STM"
  focal_length = 0
  focus_distance = 14080
  hyperfocal = 0
  dof_near = 0
  dof_far = 0
  af = true
  af_mode = 0
  focus = function: p
display = table:
  idle = true
  height = 480
  width = 720
  on = function: p
  clear = function: p
  screenshot = function: p
  rect = function: p
  notify_box = function: p
  draw = function: p
  circle = function: p
  pixel = function: p
  load = function: p
  off = function: p
  line = function: p
  print = function: p
key = table:
  last = 0
  press = function: p
  wait = function: p
menu = table:
  visible = false
  get = function: p
  open = function: p
  block = function: p
  set = function: p
  close = function: p
  new = 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 = 21
  ms_clock = 21492
  prefix = "IMG_"
  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/100CANON/"
  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 = 32768
    drive_letter = "B"
    file_number = 9813
    folder_number = 100
    free_space = 29301792
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  shooting_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 9813
    folder_number = 100
    free_space = 29301792
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  date = table:
    min = 23
    year = 2018
    yday = 1
    sec = 3
    wday = 2
    isdst = false
    day = 21
    hour = 10
    month = 2
  remove = function: p
  directory = function: p
  call = function: p
interval = table:
  time = 3
  count = 0
  running = 0
  stop = function: p
battery = table:
function not available on this camera
stack traceback:
   [C]: in ?
   [C]: in for iterator 'for iterator'
   ML/SCRIPTS/LIB/logger.lua:125: in function 'logger.serialize'
   ML/SCRIPTS/API_TEST.LUA:30: in function <ML/SCRIPTS/API_TEST.LUA:29>
   [C]: in function 'xpcall'
   ML/SCRIPTS/API_TEST.LUA:29: in function 'print_table'
   ML/SCRIPTS/API_TEST.LUA:75: in function 'generic_tests'
   ML/SCRIPTS/API_TEST.LUA:634: in function 'api_tests'task = table:
  create = function: p
  yield = function: p
property = table:
Generic tests completed.

Module tests...
Copy test: autoexec.bin -> tmp.bin
Copy test OK
Append test: tmp.txt

===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-2-21 10:32:36
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
camera = table:
  shutter = table:
    raw = 24
    apex = -4
    ms = 16000
    value = 16
  aperture = table:
    raw = 53
    apex = 5.625
    value = 7
    min = table:
      raw = 37
      apex = 3.625
      value = 3.5
    max = table:
      raw = 80
      apex = 9
      value = 22.6
  iso = table:
    raw = 0
    apex = -4
    value = 0
  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 550D"
  model_short = "550D"
  firmware = "1.1.0"
  temperature = 149
  state = 0
  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:
  hide = function: p
  clear = function: p
  write = function: p
  show = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  start = function: p
  pause = function: p
  resume = function: p
  wait = function: p
  info = function: p
  stop = function: p
lens = table:
  name = "EF-S18-135mm f/3.5-5.6 IS STM"
  focal_length = 0
  focus_distance = 14080
  hyperfocal = 0
  dof_near = 0
  dof_far = 0
  af = true
  af_mode = 0
  focus = function: p
display = table:
  idle = true
  height = 480
  width = 720
  rect = function: p
  line = function: p
  pixel = function: p
  off = function: p
  on = function: p
  print = function: p
  notify_box = function: p
  clear = function: p
  screenshot = function: p
  load = function: p
  circle = function: p
  draw = function: p
key = table:
  last = 0
  press = function: p
  wait = function: p
menu = table:
  visible = false
  open = function: p
  get = function: p
  block = function: p
  set = function: p
  new = function: p
  close = 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 = 50
  ms_clock = 50085
  prefix = "IMG_"
  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/100CANON/"
  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 = 32768
    drive_letter = "B"
    file_number = 9813
    folder_number = 100
    free_space = 29301792
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  shooting_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 9813
    folder_number = 100
    free_space = 29301792
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  date = table:
    day = 21
    yday = 1
    hour = 10
    year = 2018
    month = 2
    wday = 2
    isdst = false
    min = 32
    sec = 37
  directory = function: p
  remove = function: p
  call = function: p
interval = table:
  time = 3
  count = 0
  running = 0
  stop = function: p
battery = table:
function not available on this camera
stack traceback:
   [C]: in ?
   [C]: in for iterator 'for iterator'
   ML/SCRIPTS/LIB/logger.lua:125: in function 'logger.serialize'
   ML/SCRIPTS/API_TEST.LUA:30: in function <ML/SCRIPTS/API_TEST.LUA:29>
   [C]: in function 'globals.xpcall'
   ML/SCRIPTS/API_TEST.LUA:29: in function 'globals.print_table'
   ML/SCRIPTS/API_TEST.LUA:75: in function 'globals.generic_tests'
   ML/SCRIPTS/API_TEST.LUA:634: in function 'globals.api_tests'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 550D (550D) 1.1.0
Lens      : EF-S18-135mm f/3.5-5.6 IS STM
Shoot mode: 3
Shutter   : 16" (raw 24, 16s, 16000ms, apex -4)
Aperture  : 7.0 (raw 53, f/7, apex 5.625)
Av range  : 3.5..22 (raw 37..80, f/3.5..f/22.6, apex 3.625..9)
ISO       : AutoISO (raw 0, 0, apex -4)
EC        : 0.0 (raw 0, 0 EV)
Flash EC  : 0.0 (raw 0, 0 EV)
Setting shutter to random values...

=> it seemed to get stuck right here !!!!



CRASH00.LOG
ASSERT: FALSE
at Memory\Memory.c:186, task CtrlSrv
lv:0 mode:3

CtrlSrv stack: 1513b0 [1516a0-14d6a0]
0xUNKNOWN  @ ff0771d4:151698
0xFF2B4FE0 @ ff1bb68c:151670
0xFF2B4AB8 @ ff2b5038:151658
0xUNKNOWN  @ ff2b4b18:151640
0xUNKNOWN  @ ff2b5aac:151620
0xFF318A34 @ ff319ac4:1515f0
0xFF3CFAA4 @ ff318a68:1515e0
0xFF31AA08 @ ff3cfc54:151570
0xFF1BD178 @ ff31ad5c:151530
0xFF1BC588 @ ff1bd158:151518
0xFF06E3E8 @ ff1bc5ac:1514b8
0xFF06B268 @ ff06e400:151408
0xFF013814 @ ff06b354:1513e0
0x00C60478 @ c604ec:1513b0

Magic Lantern version : Nightly.2018Feb08.550D110
Mercurial changeset   : 0383589b661c+36acb0f9c3e2+ (update-to-550D.110-wip)
Built on 2018-02-09 00:13:20 UTC by rosiefort@RosieFoComputer.
Free Memory  : 64K + 645K




Thank you for your work on this FW,



Alex

dfort

@volex - Wow, thanks for the test. I've had some tests get stuck on other cameras, it made a difference if the test was started in movie or photo mode, LiveView or not and even Manual or AV mode so if you could try running the test again but starting with a different mode and see if it completes properly.

Of course there's also the possibility that we missed updating a stub and that's why the test failed. To find out if that's the case:

Quote from: dfort on February 19, 2018, 05:18:45 PM
Note that if any test fails it would be great if it can also be run on the 1.0.9 firmware to see if it is something that was introduced with the firmware update.

No pressure, appreciate any test results and comments about how well (or not so well) the firmware update is working.

BTW -- You have an EF-S 18-135mm f/3.5-5.6 IS STM lens which isn't affected by the fixes in the Canon firmware update but the newer version of that lens is affected:

Quote from: CanonFirmware Version 1.1.0 incorporates the following fixes:

Corrects a phenomenon in which when using the camera with the EF-S 18-135mm f/3.5-5.6 IS USM or EF 70-300mm f/4-5.6 IS II USM lens, even if lens aberration correction is set to "Enable", correction will not be applied.

[EDIT] Noticed that there weren't any downloads of my latest build and that the assert log is showing that you are using a 2018-02-09 build. That error seems to be pointing to a QEMU file which shouldn't be possible. I just re-compiled and uploaded a new build. Please try that one before trying a regression to 1.0.9 test.

volex

Hi,

I upgraded to the latest 1.10 ML FWby copy/pasting the new unzipped files onto my SD card (I read that's the way to do it).

For information, I took about 700 pictures by using the motion detection trigger option => worked fine
I shot some photos last night using different settings => worked fine as well


About the tests,  I ran them again but I have the impression the "Stubs API test" crashd this time (it got stuck), I ran it 3 times with the same result.
Same thing happened with the LUA test.


I copy hee below the *.log files.


LUATEST.LOG


===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-2-24 09:42:24
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
camera = table:
  shutter = table:
    raw = 19
    apex = -4.624999
    ms = 24675
    value = 24.675373
  aperture = table:
    raw = 53
    apex = 5.625
    value = 7
    min = table:
      raw = 37
      apex = 3.625
      value = 3.5
    max = table:
      raw = 80
      apex = 9
      value = 22.6
  iso = table:
    raw = 72
    apex = 5
    value = 100
  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 550D"
  model_short = "550D"
  firmware = "1.1.0"
  temperature = 148
  state = 0
  shoot = function: p
  bulb = function: p
  reboot = 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:
  write = function: p
  clear = function: p
  show = function: p
  hide = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  resume = function: p
  start = function: p
  stop = function: p
  info = function: p
  wait = function: p
  pause = function: p
lens = table:
  name = "EF-S18-135mm f/3.5-5.6 IS STM"
  focal_length = 0
  focus_distance = 14080
  hyperfocal = 0
  dof_near = 0
  dof_far = 0
  af = true
  af_mode = 0
  focus = function: p
display = table:
  idle = true
  height = 480
  width = 720
  rect = function: p
  on = function: p
  draw = function: p
  screenshot = function: p
  pixel = function: p
  notify_box = function: p
  load = function: p
  line = function: p
  circle = function: p
  clear = function: p
  print = function: p
  off = function: p
key = table:
  last = 0
  press = function: p
  wait = function: p
menu = table:
  visible = false
  get = function: p
  block = function: p
  close = function: p
  open = function: p
  set = function: p
  new = 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
  start = function: p
  stop = function: p
dryos = table:
  clock = 30
  ms_clock = 30551
  prefix = "IMG_"
  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/100CANON/"
  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 = 32768
    drive_letter = "B"
    file_number = 9980
    folder_number = 100
    free_space = 27978240
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  shooting_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 9980
    folder_number = 100
    free_space = 27978240
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  date = table:
    min = 42
    isdst = false
    hour = 9
    year = 2018
    day = 24
    yday = 1
    wday = 5
    sec = 29
    month = 2
  call = function: p
  remove = function: p
  directory = function: p
interval = table:
  time = 3
  count = 0
  running = 0
  stop = function: p
battery = table:
function not available on this camera
stack traceback:
   [C]: in ?
   [C]: in for iterator 'for iterator'
   ML/SCRIPTS/LIB/logger.lua:125: in function 'logger.serialize'
   ML/SCRIPTS/API_TEST.LUA:30: in function <ML/SCRIPTS/API_TEST.LUA:29>
   [C]: in function 'globals.xpcall'
   ML/SCRIPTS/API_TEST.LUA:29: in function 'globals.print_table'
   ML/SCRIPTS/API_TEST.LUA:75: in function 'globals.generic_tests'
   ML/SCRIPTS/API_TEST.LUA:634: in function 'globals.api_tests'task = table:
  create = function: p
  yield = function: p
property = table:
Generic tests completed.

Module tests...
Copy test: autoexec.bin -> tmp.bin
Copy test OK
Append test: tmp.txt



STUBTEST.LOG

[Pass] is_play_mode() => 0x1
[Pass] src = fio_malloc(size) => 0x4242c0b8
[Pass] dst = fio_malloc(size) => 0x42c300c4
[Pass] memcmp(dst, src, 4097) => 0xffffffa9
[Pass] edmac_memcpy(dst, src, 4097) => 0x42c300c4
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x42c300c4
[Pass] memcmp(dst, src, size) => 0xffffffa7
[Pass] edmac_memcpy(dst, src, size) => 0x42c300c4
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0xffffff6c
[Pass] edmac_memcpy_start(dst, src, size) => 0x42c300c4
       dt => 0x3116
[Pass] copied => 0x4016dc
[Pass] copied => 0x4016dc
[Pass] copied => 0x4016dc
[Pass] memcmp(dst, src, copied) => 0x0
[Pass] memcmp(dst, src, copied + 16) => 0x3c
       edmac_memcpy_finish()
       free(src)
       free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0x912f04
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x13ae
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0xf5
[Pass] tries[1] => 0x109
[Pass] tries[2] => 0xf6
[Pass] tries[3] => 0xf4
[Pass] failr[0] => 0x9a
[Pass] failw[0] => 0xb6
[Pass] failr[1] => 0x8f
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[Pass] failw[2] => 0xc2
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
       times[0] / tries[0] => 0x3d
       times[1] / tries[1] => 0x3f
       times[2] / tries[2] => 0x41
       times[3] / tries[3] => 0x3e
Cache tests finished.




Alex


Walter Schulz

Thanks for the effort.
Please think about using # (code) bbcode to keep posts short and structured.
Example:
===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-2-24 09:42:24
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
camera = table:
  shutter = table:
    raw = 19
    apex = -4.624999
    ms = 24675
    value = 24.675373
  aperture = table:
    raw = 53
    apex = 5.625
    value = 7
    min = table:
      raw = 37
      apex = 3.625
      value = 3.5
    max = table:
      raw = 80
      apex = 9
      value = 22.6
  iso = table:
    raw = 72
    apex = 5
    value = 100
  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 550D"
  model_short = "550D"
  firmware = "1.1.0"
  temperature = 148
  state = 0
  shoot = function: p
  bulb = function: p
  reboot = 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:
  write = function: p
  clear = function: p
  show = function: p
  hide = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  resume = function: p
  start = function: p
  stop = function: p
  info = function: p
  wait = function: p
  pause = function: p
lens = table:
  name = "EF-S18-135mm f/3.5-5.6 IS STM"
  focal_length = 0
  focus_distance = 14080
  hyperfocal = 0
  dof_near = 0
  dof_far = 0
  af = true
  af_mode = 0
  focus = function: p
display = table:
  idle = true
  height = 480
  width = 720
  rect = function: p
  on = function: p
  draw = function: p
  screenshot = function: p
  pixel = function: p
  notify_box = function: p
  load = function: p
  line = function: p
  circle = function: p
  clear = function: p
  print = function: p
  off = function: p
key = table:
  last = 0
  press = function: p
  wait = function: p
menu = table:
  visible = false
  get = function: p
  block = function: p
  close = function: p
  open = function: p
  set = function: p
  new = 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
  start = function: p
  stop = function: p
dryos = table:
  clock = 30
  ms_clock = 30551
  prefix = "IMG_"
  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/100CANON/"
  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 = 32768
    drive_letter = "B"
    file_number = 9980
    folder_number = 100
    free_space = 27978240
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  shooting_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 9980
    folder_number = 100
    free_space = 27978240
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  date = table:
    min = 42
    isdst = false
    hour = 9
    year = 2018
    day = 24
    yday = 1
    wday = 5
    sec = 29
    month = 2
  call = function: p
  remove = function: p
  directory = function: p
interval = table:
  time = 3
  count = 0
  running = 0
  stop = function: p
battery = table:
function not available on this camera
stack traceback:
   [C]: in ?
   [C]: in for iterator 'for iterator'
   ML/SCRIPTS/LIB/logger.lua:125: in function 'logger.serialize'
   ML/SCRIPTS/API_TEST.LUA:30: in function <ML/SCRIPTS/API_TEST.LUA:29>
   [C]: in function 'globals.xpcall'
   ML/SCRIPTS/API_TEST.LUA:29: in function 'globals.print_table'
   ML/SCRIPTS/API_TEST.LUA:75: in function 'globals.generic_tests'
   ML/SCRIPTS/API_TEST.LUA:634: in function 'globals.api_tests'task = table:
  create = function: p
  yield = function: p
property = table:
Generic tests completed.

Module tests...
Copy test: autoexec.bin -> tmp.bin
Copy test OK
Append test: tmp.txt



STUBTEST.LOG

[Pass] is_play_mode() => 0x1
[Pass] src = fio_malloc(size) => 0x4242c0b8
[Pass] dst = fio_malloc(size) => 0x42c300c4
[Pass] memcmp(dst, src, 4097) => 0xffffffa9
[Pass] edmac_memcpy(dst, src, 4097) => 0x42c300c4
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x42c300c4
[Pass] memcmp(dst, src, size) => 0xffffffa7
[Pass] edmac_memcpy(dst, src, size) => 0x42c300c4
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0xffffff6c
[Pass] edmac_memcpy_start(dst, src, size) => 0x42c300c4
       dt => 0x3116
[Pass] copied => 0x4016dc
[Pass] copied => 0x4016dc
[Pass] copied => 0x4016dc
[Pass] memcmp(dst, src, copied) => 0x0
[Pass] memcmp(dst, src, copied + 16) => 0x3c
       edmac_memcpy_finish()
       free(src)
       free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0x912f04
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x13ae
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0xf5
[Pass] tries[1] => 0x109
[Pass] tries[2] => 0xf6
[Pass] tries[3] => 0xf4
[Pass] failr[0] => 0x9a
[Pass] failw[0] => 0xb6
[Pass] failr[1] => 0x8f
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[Pass] failw[2] => 0xc2
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
       times[0] / tries[0] => 0x3d
       times[1] / tries[1] => 0x3f
       times[2] / tries[2] => 0x41
       times[3] / tries[3] => 0x3e
Cache tests finished.

dfort

@volex -- So 1.1.0 is working fine on but the tests won't complete?

Have you tried running those same tests with 1.0.9? If they complete on 1.0.9 then there is probably a wrong stub or something that we need to track down. However, if the tests fail in the same spot in 1.0.9 then whatever the problem is it was already there and it should be tracked down and fixed in 1.0.9.

What Walter is telling you to do is that when you post a long block of code if you click the "#" icon on the formatting tools you will get a pair of "code" tags. Paste your log in between the code tags:



This is a long log message
blah
blah
blah

volex

Hello,

Yes, that's right.
The camera works just fine but the tests won't complete.

I downgraded the Canon FW to 1.09 and I installed the latest ML FW (same SD card as before).

Again; the tests won't complete.
I even have the impression that it stoppped earlier i the process.
Maybe my camera is slightly defective ?

It would be nice if somebody would run the tests onto another 550D (with the 1.09 FW or the 1.10FW) to ompare the outcome.

I attach the results here below.

LUATEST.LOG


===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-2-26 20:49:05
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
camera = table:
  shutter = table:
    raw = 0
    apex = -7.
    ms = 0
    value = 0
  aperture = table:
    raw = 0
    apex = 0
    value = 0
    min = table:
      raw = 39
      apex = 3.875
      value = 3.799999
    max = table:
      raw = 82
      apex = 9.25
      value = 24.6
  iso = table:
    raw = 96
    apex = 8
    value = 800
  ec = table:
    raw = 0
    value = 0
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 5200
  mode = 0
  metering_mode = 3
  drive_mode = 17
  model = "Canon EOS 550D"
  model_short = "550D"
  firmware = "1.0.9"
  temperature = 149
  state = 0
  shoot = function: p
  bulb = function: p
  reboot = 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:
  write = function: p
  clear = function: p
  hide = function: p
  show = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  info = function: p
  pause = function: p
  stop = function: p
  wait = function: p
  resume = function: p
  start = function: p
lens = table:
  name = "EF-S18-135mm f/3.5-5.6 IS STM"
  focal_length = 0
  focus_distance = 14080
  hyperfocal = 0
  dof_near = 0
  dof_far = 0
  af = false
  af_mode = 3
  focus = function: p
display = table:
  idle = true
  height = 480
  width = 720
  pixel = function: p
  print = function: p
  on = function: p
  screenshot = function: p
  line = function: p
  clear = function: p
  notify_box = function: p
  load = function: p
  draw = function: p
  rect = function: p
  off = function: p
  circle = function: p
key = table:
  last = 0
  press = function: p
  wait = function: p
menu = table:
  visible = false
  get = function: p
  new = function: p
  block = function: p
  set = function: p
  open = function: p
  close = 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 = 17
  ms_clock = 17580
  prefix = "IMG_"
  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/100CANON/"
  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 = 32768
    drive_letter = "B"
    file_number = 808
    folder_number = 100
    free_space = 31324736
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  shooting_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 808
    folder_number = 100
    free_space = 31324736
    type = "SD"
    path = "B:/"
    _card_ptr = userdata
  date = table:
    isdst = false
    month = 2
    hour = 20
    day = 26
    sec = 6
    min = 49
    yday = 1
    wday = 7
    year = 2018
  remove = function: p
  call = function: p
  directory = function: p
interval = table:
  time = 10
  count = 0
  running = 0
  stop = function: p
battery = table:
function not available on this camera
stack traceback:
[C]: in ?
[C]: in for iterator 'for iterator'
ML/SCRIPTS/LIB/logger.lua:125: in function 'logger.serialize'
ML/SCRIPTS/API_TEST.LUA:30: in function <ML/SCRIPTS/API_TEST.LUA:29>
[C]: in function 'globals.xpcall'
ML/SCRIPTS/API_TEST.LUA:29: in function 'globals.print_table'
ML/SCRIPTS/API_TEST.LUA:75: in function 'globals.generic_tests'
ML/SCRIPTS/API_TEST.LUA:634: in function 'globals.api_tests'task = table:
  create = function: p
  yield = function: p
property = table:
Generic tests completed.

Module tests...
Copy test: autoexec.bin -> tmp.bin
Copy test OK
Append test: tmp.txt

===============================================================================
ML/SCRIPTS/API_TEST.LUA - 2018-2-26 21:04:56
===============================================================================

Strict mode tests...
Strict mode tests passed.

Generic tests...
camera = table:
  shutter = table:
    raw = 0
    apex = -7.
    ms = 0
    value = 0
  aperture = table:
    raw = 0
    apex = 0
    value = 0
    min = table:
      raw = 37
      apex = 3.625
      value = 3.5
    max = table:
      raw = 80
      apex = 9
      value = 22.6
  iso = table:
    raw = 0
    apex = -4
    value = 0
  ec = table:
    raw = 0
    value = 0
  flash_ec = table:
    raw = 0
    value = 0
  kelvin = 5200
  mode = 11
  metering_mode = 3
  drive_mode = 1
  model = "Canon EOS 550D"
  model_short = "550D"
  firmware = "1.0.9"
  temperature = 150
  state = 0
  bulb = function: p
  shoot = function: p
  reboot = 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:
  write = function: p
  show = function: p
  hide = function: p
  clear = function: p
lv = table:
  enabled = false
  paused = false
  running = false
  zoom = 1
  resume = function: p
  wait = function: p
  info = function: p
  stop = function: p
  start = function: p
  pause = function: p
lens = table:
  name = "EF-S18-135mm f/3.5-5.6 IS STM"
  focal_length = 0
  focus_distance = 14080
  hyperfocal = 0
  dof_near = 0
  dof_far = 0
  af = true
  af_mode = 1
  focus = function: p
display = table:
  idle = true
  height = 480
  width = 720
  pixel = function: p
  rect = function: p
  on = function: p
  screenshot = function: p
  notify_box = function: p
  off = function: p
  draw = function: p
  circle = function: p
  print = function: p
  load = function: p
  line = function: p
  clear = function: p
key = table:
  last = 0
  wait = function: p
  press = function: p
menu = table:
  visible = false
  get = function: p
  new = function: p
  open = function: p
  set = function: p
  close = function: p
  block = 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
  start = function: p
  stop = function: p
dryos = table:
  clock = 624
  ms_clock = 624184
  prefix = "IMG_"
  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/100CANON/"
  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 = 32768
    drive_letter = "B"
    file_number = 824
    folder_number = 100
    free_space = 30908128
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  shooting_card = table:
    cluster_size = 32768
    drive_letter = "B"
    file_number = 824
    folder_number = 100
    free_space = 30908128
    type = "SD"
    _card_ptr = userdata
    path = "B:/"
  date = table:
    sec = 57
    year = 2018
    day = 26
    wday = 7
    min = 4
    hour = 21
    isdst = false
    yday = 1
    month = 2
  call = function: p
  remove = function: p
  directory = function: p
interval = table:
  time = 10
  count = 0
  running = 0
  stop = function: p
battery = table:
function not available on this camera
stack traceback:
[C]: in ?
[C]: in for iterator 'for iterator'
ML/SCRIPTS/LIB/logger.lua:125: in function 'logger.serialize'
ML/SCRIPTS/API_TEST.LUA:30: in function <ML/SCRIPTS/API_TEST.LUA:29>
[C]: in function 'xpcall'
ML/SCRIPTS/API_TEST.LUA:29: in function 'print_table'
ML/SCRIPTS/API_TEST.LUA:75: in function 'generic_tests'
ML/SCRIPTS/API_TEST.LUA:634: in function 'api_tests'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




STUBTEST.LOG

[Pass] is_play_mode() => 0x1
[Pass] src = fio_malloc(size) => 0x424880b8
[Pass] dst = fio_malloc(size) => 0x42c8c0c4
[Pass] memcmp(dst, src, 4097) => 0xffffff70
[Pass] edmac_memcpy(dst, src, 4097) => 0x42c8c0c4
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x42c8c0c4
[Pass] memcmp(dst, src, size) => 0xffffffd8
[Pass] edmac_memcpy(dst, src, size) => 0x42c8c0c4
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0x6c
[Pass] edmac_memcpy_start(dst, src, size) => 0x42c8c0c4
       dt => 0x311d
[Pass] copied => 0x4014fc
[Pass] copied => 0x4014fc
[Pass] copied => 0x4014fc
[Pass] memcmp(dst, src, copied) => 0x0
[Pass] memcmp(dst, src, copied + 16) => 0xffffff63
       edmac_memcpy_finish()
       free(src)
       free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0x908b74
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x900
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0xf7
[Pass] tries[1] => 0xfd
[Pass] tries[2] => 0xe9
[Pass] tries[3] => 0x10b
[Pass] failr[0] => 0xb4
[Pass] failw[0] => 0xc6
[Pass] failr[1] => 0x95
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[Pass] failw[2] => 0xbc
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
       times[0] / tries[0] => 0x3c
       times[1] / tries[1] => 0x3e
       times[2] / tries[2] => 0x3e
       times[3] / tries[3] => 0x41
Cache tests finished.





Kind regards,


Alex

dfort

@volex - Thanks for the test, this really helps.

So whatever the problem is, it wasn't because of my 1.1.0 pull request. Note that some test failures on the 550D were expected and your camera is probably fine.

volex

Hi Daniel,

Glad to hear that some errors were expected and that the tests were useful.

Let me know if you need me to run additional tests (don't hesitate to send me a PM), I will be happy to help.


Best regards,



Alex


volex

Hi,

I switched back to FW 1.10.
I will continue to use it and report any bugs.

So far the following features have been working fine : raw and *.jpg pictures, intervallometer, Dual Iso, bracketing, Liveview shots, ...


Alex

Protozoid

Hi!

First-time poster, here.

I updated my firmware for my T2i to version 1.10 and was unable to install ML.  I received a message requesting that I install 1.09.

From what I've gathered from this thread, some people have been able to use ML with this version.  Am I doing something wrong?  Has something changed?

Thanks!

Walter Schulz

ML builds have to match camera type and firmware version. You won't get ML for 1.0.9 starting up in a cam running Canon firmware 1.1.0.

dfort

@Protozoid - In order to use ML on a T2i running Canon's current 1.1.0 firmware try using the build posted on my downloads page:

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

I don't link directly to the file because I update it periodically. So far it has had about 50 downloads and reports are that it works the same as the 1.0.9 version. If you want to learn more about ML firmware updates read: Porting a Canon firmware update.

BTW--also on my downloads page is a package called "550D Canon Firmware for Testers.zip" that includes both the Canon 1.1.0 and 1.0.9 firmware updaters. This will allow you to go back and forth between these firmware version.

dfort

Getting more reports on the 550D.110 firmware update. @mk11174 ran a successful stubs API test in camera:

[Pass] is_play_mode() => 0x1
[Pass] src = fio_malloc(size) => 0x42204094
[Pass] dst = fio_malloc(size) => 0x42a080a0
[Pass] memcmp(dst, src, 4097) => 0x7d
[Pass] edmac_memcpy(dst, src, 4097) => 0x42a080a0
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x42a080a0
[Pass] memcmp(dst, src, size) => 0xb7
[Pass] edmac_memcpy(dst, src, size) => 0x42a080a0
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0x2c
[Pass] edmac_memcpy_start(dst, src, size) => 0x42a080a0
       dt => 0x3089
[Pass] copied => 0x401700
[Pass] copied => 0x401700
[Pass] copied => 0x401700
[Pass] memcmp(dst, src, copied) => 0x0
[Pass] memcmp(dst, src, copied + 16) => 0xa1
       edmac_memcpy_finish()
       free(src)
       free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0xce8e0
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x100f
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0xdf
[Pass] tries[1] => 0x104
[Pass] tries[2] => 0x108
[Pass] tries[3] => 0xfd
[Pass] failr[0] => 0x8a
[Pass] failw[0] => 0xb2
[Pass] failr[1] => 0x92
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[Pass] failw[2] => 0xc6
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
       times[0] / tries[0] => 0x44
       times[1] / tries[1] => 0x48
       times[2] / tries[2] => 0x4a
       times[3] / tries[3] => 0x48
Cache tests finished.

[Pass] f = FIO_CreateFile("test.dat") => 0x3
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
       FIO_CloseFile(f)
[Pass] FIO_GetFileSize("test.dat", &size) => 0x0
[Pass] size => 0x20000
[Pass] p = (void*)_alloc_dma_memory(0x20000) => 0x40ae7434
[Pass] f = FIO_OpenFile("test.dat", O_RDONLY | O_SYNC) => 0x3
[Pass] FIO_ReadFile(f, p, 0x20000) => 0x20000
       FIO_CloseFile(f)
       _free_dma_memory(p)
[Pass] count => 0x3a98
[Pass] buf = fio_malloc(0x1000000) => 0x42204094
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000000
[Pass] f = FIO_OpenFile("test.dat", O_RDWR | O_SYNC) => 0x3
[Pass] FIO_SeekSkipFile(f, 0, SEEK_END) => 0x82000000
[Pass] FIO_WriteFile(f, buf, 0x10) => 0x10
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_END) => 0x81fffff0
[Pass] FIO_WriteFile(f, buf, 0x30) => 0x30
[Pass] FIO_SeekSkipFile(f, 0x20, SEEK_SET) => 0x20
[Pass] FIO_SeekSkipFile(f, 0x30, SEEK_CUR) => 0x50
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_CUR) => 0x30
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000020
[Pass] is_file("test.dat") => 0x1
[Pass] FIO_RemoveFile("test.dat") => 0x0
[Pass] is_file("test.dat") => 0x0
[Pass] SetTimerAfter(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x804e
       msleep(900)
[Pass] timer_func => 0x0
       msleep(200)
[Pass] timer_func => 0x1
[Pass] ABS((timer_time/1000 - t0) - 1000) => 0x3
[Pass] ABS((timer_arg - ta0) - 1000) => 0xa
[Pass] timer = SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x8050
       msleep(400)
       CancelTimer(timer)
[Pass] timer_func => 0x0
       msleep(1500)
[Pass] timer_func => 0x0
[Pass] SetHPTimerAfterNow(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetHPTimerAfterNow(100000, timer_cbr, overrun_cbr, 0) => 0x56c
       msleep(90)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 100000) => 0x12b
[Pass] ABS(DeltaT(timer_arg, ta0) - 100000) => 0xf9
[Pass] ABS((get_us_clock_value() - t0) - 110000) => 0xffffffdc
[Pass] SetHPTimerAfterNow(90000, next_tick_cbr, overrun_cbr, 0) => 0x56e
       msleep(80)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x3
       msleep(80)
[Pass] timer_func => 0x3
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 300000) => 0x8a
[Pass] ABS(DeltaT(timer_arg, ta0) - 300000) => 0x55
[Pass] ABS((get_us_clock_value() - t0) - 310000) => 0xffffffee
       t0 = *(uint32_t*)0xC0242014 => 0x3915b
       msleep(250)
       t1 = *(uint32_t*)0xC0242014 => 0x755a3
[Pass] ABS(MOD(t1-t0, 1048576)/1000 - 250) => 0x4
       LoadCalendarFromRTC( &now )
       s0 = now.tm_sec => 0x3a
       Date/time: 2018/04/08 13:08:58
       msleep(1500)
       LoadCalendarFromRTC( &now )
       s1 = now.tm_sec => 0x0
[Pass] MOD(s1-s0, 60) => 0x2
[Pass] MOD(s1-s0, 60) => 0x2
       m0 = MALLOC_FREE_MEMORY => 0x34c50
[Pass] p = (void*)_malloc(50*1024) => 0xd0630
[Pass] CACHEABLE(p) => 0xd0630
       m1 = MALLOC_FREE_MEMORY => 0x28440
       _free(p)
       m2 = MALLOC_FREE_MEMORY => 0x34c50
[Pass] ABS((m0-m1) - 50*1024) => 0x10
[Pass] ABS(m0-m2) => 0x0
       m0 = GetFreeMemForAllocateMemory() => 0x1e0630
[Pass] p = (void*)_AllocateMemory(256*1024) => 0xae73f4
[Pass] CACHEABLE(p) => 0xae73f4
       m1 = GetFreeMemForAllocateMemory() => 0x1a0624
       _FreeMemory(p)
       m2 = GetFreeMemForAllocateMemory() => 0x1e0630
[Pass] ABS((m0-m1) - 256*1024) => 0xc
[Pass] ABS(m0-m2) => 0x0
       m01 = MALLOC_FREE_MEMORY => 0x34c50
       m02 = GetFreeMemForAllocateMemory() => 0x1e0630
[Pass] p = (void*)_alloc_dma_memory(256*1024) => 0x40ae7434
[Pass] UNCACHEABLE(p) => 0x40ae7434
[Pass] CACHEABLE(p) => 0xae7434
[Pass] UNCACHEABLE(CACHEABLE(p)) => 0x40ae7434
       _free_dma_memory(p)
[Pass] p = (void*)_shoot_malloc(24*1024*1024) => 0x42204074
[Pass] UNCACHEABLE(p) => 0x42204074
       _shoot_free(p)
       m11 = MALLOC_FREE_MEMORY => 0x34c50
       m12 = GetFreeMemForAllocateMemory() => 0x1e0630
[Pass] ABS(m01-m11) => 0x0
[Pass] ABS(m02-m12) => 0x0
[Pass] suite = shoot_malloc_suite_contig(24*1024*1024) => 0xb7450
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1800000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xb7478
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1800000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42204070
[Pass] UNCACHEABLE(p) => 0x42204070
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite_contig(0) => 0xb7450
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1df8000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xb7478
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1df8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42204070
[Pass] UNCACHEABLE(p) => 0x42204070
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(64*1024*1024) => 0xb7450
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x4
[Pass] suite->size => 0x4000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xb7478
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1df8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42204070
[Pass] UNCACHEABLE(p) => 0x42204070
       chunk = GetNextMemoryChunk(suite, chunk) => 0xcb228
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2a34000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x413c27e4
[Pass] UNCACHEABLE(p) => 0x413c27e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xcb260
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2ac8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4bf680e4
[Pass] UNCACHEABLE(p) => 0x4bf680e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xcb298
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4000000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(0) => 0xb7450
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x4
[Pass] suite->size => 0x4700000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xb7478
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x1df8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42204070
[Pass] UNCACHEABLE(p) => 0x42204070
       chunk = GetNextMemoryChunk(suite, chunk) => 0xcb228
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2a34000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x413c27e4
[Pass] UNCACHEABLE(p) => 0x413c27e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xcb260
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2ac8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4bf680e4
[Pass] UNCACHEABLE(p) => 0x4bf680e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xcb298
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4700000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4700000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] strlen("abc") => 0x3
[Pass] strlen("qwertyuiop") => 0xa
[Pass] strlen("") => 0x0
[Pass] strcpy(msg, "hi there") => 0x18d634
[Pass] msg => 'hi there'
[Pass] snprintf(a, sizeof(a), "foo") => 0x3
[Pass] snprintf(b, sizeof(b), "foo") => 0x3
[Pass] strcmp(a, b) => 0x0
[Pass] snprintf(a, sizeof(a), "bar") => 0x3
[Pass] snprintf(b, sizeof(b), "baz") => 0x3
[Pass] strcmp(a, b) => 0xfffffff8
[Pass] snprintf(a, sizeof(a), "Display") => 0x7
[Pass] snprintf(b, sizeof(b), "Defishing") => 0x9
[Pass] strcmp(a, b) => 0x4
[Pass] snprintf(buf, 3, "%d", 1234) => 0x2
[Pass] buf => '12'
[Pass] memcpy(foo, bar, 6) => 0x18d600
[Pass] foo => 'asdfghuiop'
[Pass] memset(bar, '*', 5) => 0x18d5e0
[Pass] bar => '*****hjkl;'
       bzero32(bar + 5, 5)
[Pass] bar => '****'
       EngDrvOut(LCD_Palette[0], 0x1234)
[Pass] shamem_read(LCD_Palette[0]) => 0x1234
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       call("TurnOffDisplay")
[Pass] DISPLAY_IS_ON => 0x0
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       task_create("test", 0x1c, 0x1000, test_task, 0) => 0xe8000b0
[Pass] test_task_created => 0x1
[Pass] get_current_task_name() => 'run_test'
[Pass] task_max => 0x68
[Pass] task_max => 0x68
[Pass] mq = mq ? mq : (void*)msg_queue_create("test", 5) => 0xe820086
[Pass] msg_queue_post(mq, 0x1234567) => 0x0
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x0
[Pass] m => 0x1234567
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x9
[Pass] sem = sem ? sem : create_named_semaphore("test", 1) => 0xe84025a
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] take_semaphore(sem, 500) => 0x9
[Pass] give_semaphore(sem) => 0x0
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] give_semaphore(sem) => 0x0
[Pass] rlock = rlock ? rlock : CreateRecursiveLock(0) => 0xe860034
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0xf
       SetGUIRequestMode(1); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x1
       SetGUIRequestMode(2); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x2
       SetGUIRequestMode(0); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x0
[Pass] display_idle() => 0x1
       GUI_Control(BGMT_PLAY, 0, 0, 0); msleep(1000);
[Pass] PLAY_MODE => 0x1
[Pass] MENU_MODE => 0x0
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(1000);
[Pass] MENU_MODE => 0x1
[Pass] PLAY_MODE => 0x0
[Pass] dialog->type => 'DIALOG'
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(500);
[Pass] MENU_MODE => 0x0
[Pass] PLAY_MODE => 0x0
       SW1(1,100)
[Pass] HALFSHUTTER_PRESSED => 0x1
       SW1(0,100)
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x1
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x1
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0


He also found a mistake I made when updating mlv_lite and fixed it. Feel free to download the test build from my downloads page and report your findings.

mk11174

OK, so, as I was testing dforts 550d110 port, I noticed one strange issue which neither of us have any idea whats going on.

When you start camera in a photo mode, and mode that does not start in live view, the Canon GUI is off, you have to manually press the Disp button everytime you restart camera to show Display, it is like it sets it to off each time you restart.

This is not the case though, because by accident, after camera was off for a bit, I turned it on, and there was the Canon GUI this time.

So I then ran some timed tests to see how long you actually need to wait while camera is off, to successfully start camera with Canon GUI on.

Turns out 2 minutes 45 seconds is how long, and less, it starts with Display off.

One interesting thing is, the battery also has to be in for this 2 minutes and 45 seconds, if its not, you can wait forever and when you go to restart camera, display will start in Off mode.

So, it seems like something is getting stuck running maybe, and it needs 2 minutes 45 seconds to reset and it needs power to do this.

Any ideas to help dfort with his port update????

Oh, FYI, I did compile a version that used the 1 instead of 0 in boot-hack.c to see if starting a limited ML would help, but still same results.

I also tried clearing camera settings in canon menu and deleted magic.cfg to start fresh, no change either.
500D/T1i  550D/T2i  600D/T3i  700D/T5i

loknar

I've updated firmware to 1.1.0 and wanted to try 10 12 bit depth build, but it seems that there is none. Several week ago someone tried it though, i think @dfort had one?

dfort

Quote from: loknar on April 15, 2018, 08:50:20 AM
I've updated firmware to 1.1.0 and wanted to try 10 12 bit depth build...

The 1.1.0 firmware update seems to have some issues. It would be great if you could verify what mk11174 reported.

I just tried the 10/12 bit depth experiment on the 500D and found that it is exhibiting the same behavior as the 7D. Basically, you need to delete/reset the ML settings after every camera shutdown or you'll get the "earthquake" effect. Anyway, I'm getting off topic.

Posted a raw_video_10bit_12bit_LVState-wip.2018Apr15.550D110 build for you to try out.