Adding support for the EOS 100D / SL1

#757 Open

Bitbucket cannot automatically merge this request.

The commits that make up this pull request have been removed.

Bitbucket cannot automatically merge this request due to conflicts.

Review the conflicts on the Overview tab. You can then either decline the request or merge it manually on your local system using the following commands:

hg update 7a3b5fa3f4c6
hg pull -r 45a78daebbcb
# Note: This will create a new head!
hg merge 45a78daebbcb
hg commit -m 'Merged in nikfreak/magic-lantern/100D_merge_fw101 (pull request #757)'
  1. nikfreak

Finally Canon released the first firmware update for the 100D. This PR:

  • is adding ML support for FW 1.0.1
  • is getting rid of the three firmware revisions 1.0.0 (handling pain, see forum thread)
  • is deleting unmaintained references

Tested myself for the last few days:

  • Installer works w/o problems
  • All enabled features seem to work w/o problems
  • Formatting card and keeping ML works etc.
  • Stubtest from passes with zero fails
  • Kept the amount of commits as small as possible for this PR

Let me know what I can further do to get this merged. The 100D / SL1 port felt like a "no-brainer" from the beginning. Much more fluid and straight forward compared to 70D as it is indeed a physically smaller copy of the 700D with some portions of the EOSM (fps override).

Comments (23)

  1. Alex

    Looks good at first sight - you managed to sort out the Q/SET button issue as well, right?

    Can you also PM me a 100D serial flash dump? Since @niklastisk had some success bringing the GUI in QEMU, I'm tempted to try again (it might be easier to fix than 70D).

    BTW, you have commit rights to the main repo as well, so you'll be able to maintain it right there (on a branch).

    1. nikfreak author

      Yes, no problem. As far as I recall I already sent you one. You now need the same for 1.0.1. I'll drop you a PM on the forums also with my 1.0.1 ROM dump in the evening.

  2. DeafEyeJedi

    Not only it looks good and feels more robust w this build on fw 101. The shutter sounds unique in its own ways, right @nikfreak? Such more in depth tests to be condone this week and will approve once I feel it.

    1. nikfreak author

      Yes, the shutter sound is indeed "unique" (sounds deeper than usual). I must admit I like it. Already discovered that I brought back Q-menu by a long press on q/set button ;P ?

            1. nikfreak author

              Ooops you are referring to my answer stating "deeper than usual". I should have been more precise: "...sounds deeper than usually used to hear compared to all other dslrs (nikon, too) I own(ed)".

              The sound hasn't changed after the fw update.Nothing to worry about. It's just the small body and probably smaller parts inside which make a unique sound.

  3. DeafEyeJedi

    Correct. I can also confirm this good old Q-menu is back after a long press on the q/set button. Nice gem!

        1. nikfreak author

          I seem to miss to understand what causes the delay of a merge.cause depending upon LUA doesn't seem logical to me. Meanwhile (after qemu committs) I even can't use this branch to merge into others (crop_rec) etc. For the sake of whatever just merge my PRs at least into unified@ platform/unmaintained and then back to all other important / open PRs. It's just no joy in its actual state to work with. I would rather consider creating additional PRs for other branches instead of having to resolve conflicts myself.

          1. Alex

            Will look into it - sorry, I've been with only one camera during the last few months, and with very slow internet; I'll still be that way for a few weeks. That means, I couldn't test things on different model generations like I used to do. That's why I tried to use QEMU for this kind of tests, but just making it pass the tests I've used to run manually takes a lot of time.

            The quickest thing I can do is to merge 100D and 70D into crop_rec_4k, as that's a bleeding edge branch anyway, where I don't really care if some older model breaks, and merge it later into unified when I'll manage to test things on more models. Would that help, at least for the short term?

            Sorry for the current state :( I'd really like to have a test suite that would cover most camera-specific bits, as I no longer have the patience to do manual testing either...

            1. nikfreak author

              Yes, please crop_rec_4k sounds good to me and i would be happy with it as I try to get lossless compression working anyways (if you check my repo). I am realizing that you are busy with all sorts of topics and I have to sorry rubbing your time.

                  1. Alex

                    My QEMU ROM for 70D is still on 1.1.1; can you PM me an updated one for 1.1.2, alongside with a serial flash dump? A startup log from dm-spy-experiments, with mpu_send/mpu_recv would also be nice. The last two are just to have them in sync, as they depend on camera mode and maybe other settings that might have changed meanwhile; if you can get all of them from M mode, would be great.

                    edit: I think I have 1.1.1A, and most of the stubs are identical to 1.1.2, so I should be able to test the task hooks with what I already have.

                    1. nikfreak author

                      Sure just want to end my tests and polish 100D. For the moment:

                      • 3x3 crop works, vertical resolution extended in 720p
                      • recording in 10-14bit w/o flaws
                      • recording lossless mlv_lite works (update: use mlv_dump not MLV_App!)
                      • somehow lossless DNGs are saved but always as simple dngs with reduced resolution 1736 x 6xx (even when Fullres Lv is set)
                        1. nikfreak author

                          Fullress Lossless-DNG unfortunately gives me DNG save error (card full?) message. I had to switch to another channel as 0x20 from 700D is already used. Triple checked the stubs and all seems to be fine. Went through the code and my changes seem all ok. Stuck here at the moment. Interestingly once I had above message and I switch to video mode then I will also get:

                          ML ASSERT:
                          at mlv_lite.c:753 (measure_compression_ratio), task shoot_task
                          lv:1 mode:3
                          shoot_task stack: 206d00 [206e28-204e28]
                          0x0049A018 @ 479fb8:206dc8
                          0xUNKNOWN  @ 49a070:206db0
                          0x00A781A0 @ a7ba5c:206d40
                          0x0044C92C @ a78398:206d30
                          0x0044C468 @ 44c98c:206d00
                          Magic Lantern version : Nightly.2017Sep07.100D101
                          Mercurial changeset   : fce0d99f05bf+ (crop_rec_4k) tip
                          Built on 2017-09-07 20:09:32 UTC by ml@ml-VirtualBox.
                          Free Memory  : 554K + 2059K

                          as well as:

                          ML ASSERT:
                          at mlv_lite.c:753 (measure_compression_ratio), task menu_redraw_task
                          lv:1 mode:3
                          menu_redraw_task stack: 1fcc58 [1fcde8-1f4de8]
                          0x00456544 @ 457aa8:1fcdc8
                          0x00455DB0 @ 457618:1fcd40
                          0xUNKNOWN  @ 4560c0:1fccc0
                          0x00A7CE70 @ a7d83c:1fcc98
                          0x0044C92C @ a7d068:1fcc88
                          0x0044C468 @ 44c98c:1fcc58
                          Magic Lantern version : Nightly.2017Sep07.100D101
                          Mercurial changeset   : fce0d99f05bf+ (crop_rec_4k) tip
                          Built on 2017-09-07 19:58:34 UTC by ml@ml-VirtualBox.
                          Free Memory  : 553K + 2032K
  4. Alex

    For channels, you should be able to use the same values as in edmac-memcpy (they won't be used at the same time). I should make that generic.

    It's tricky to debug, indeed.

    BTW, got the 70D dryos stuff working (tested on 111A in QEMU). Can you try it on the camera?