Author Topic: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)  (Read 202319 times)

names_are_hard

  • Developer
  • Senior
  • *****
  • Posts: 347
  • 200D idiot
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #375 on: March 07, 2021, 06:29:26 PM »
What background do you have in reverse engineering / embedded development / C / ARM asm?  If you're strong in any one of those, your chances of eventually completing a port are high, if you are persistent.  But I would expect it to take months / years.

If you want to use ML, get a cam that's supported.  If you want to port ML, that's great!  We will help you learn what you need to get started.  Expect it to take a long time.  Most people that start, give up.

Porting becomes significantly easier if there is a supported cam for the same generation of Digic.

fgervais

  • New to the forum
  • *
  • Posts: 3
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #376 on: March 07, 2021, 10:38:12 PM »
Yes on the technical side of things I'm fine. I can definitely do the port if my life would depend on it ;) but I'd like to start looking at the firmware and see if this would fit in one of my free time slice.

If you want to know more about me out of curiosity, this page pretty much sums it up:

https://fgervais.github.io/

names_are_hard

  • Developer
  • Senior
  • *****
  • Posts: 347
  • 200D idiot
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #377 on: March 08, 2021, 05:05:56 AM »
Cool, you'd probably enjoy it.  We have a few active devs at the moment, we're okay on the reversing side and general HW understanding, but not skilled at ARM internals.  A1ex has good ARM knowledge but, currently not enough time.

Let me give you a quick summary of some random points:
 - Can run arbitrary code, from C, on real cams (this should include 800D).  This can be triggered interactively when Canon code (DryOS) is running.
 - Can emulate cams to varying degrees in a custom version of Qemu.  Old cams have full GUI menus and can even simulate taking pictures, etc.  New cams (including 800D) don't emulate that far but can do early init before getting stuck.  Not crashed: they go to an idle state, waiting for tasks from a queue that is empty.  Somewhat earlier I see Canon code checking a struct in mem that is not initialised.  On real hardware it is, so whatever inits that is a missing piece, though perhaps not the direct cause.
 - With a little work for the physical connection, you should be able to get UART access to the cam, includes an interactive shell.  There are different shells for different processors.
 - ROMs are quite friendly to work with, no obfuscation and they contain many debug strings, including an assert function
 - Overall structure of Canon OS, DryOS, is fairly well understood.  RTOS, task based via a queue, interrupts.  Some of the messaging protocols between peripherals are understood.
 - ML abstracts camera internals to some degree.  There is good support for a range of Digic 4 and 5 cameras.  800D is Digic 7, getting ML working on Digic 7 is mostly working out how 7 has diverged from 4&5 and updating ML to support this.  Structures used by Canon APIs may have new fields, HW abstraction in ML may need updating for new co-processors, etc.

fgervais

  • New to the forum
  • *
  • Posts: 3
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #378 on: March 08, 2021, 01:53:19 PM »
Nice I'll have a look, thank you

names_are_hard

  • Developer
  • Senior
  • *****
  • Posts: 347
  • 200D idiot
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #379 on: March 15, 2021, 09:07:41 AM »
Good progess over the weekend.  The horrible task bugs were defeated.  Stable ML code up to GUI.  Button handling works.  Menus don't, but drawing does.  Getting there.


names_are_hard

  • Developer
  • Senior
  • *****
  • Posts: 347
  • 200D idiot
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #380 on: March 29, 2021, 02:13:37 AM »
Don't get excited, it's just the menus, nothing works...  but:



Teamwork with Kitor, thanks!

Raging Ocelot

  • Just arrived
  • *
  • Posts: 1
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #381 on: April 01, 2021, 01:08:32 PM »
This makes me happy. I have a T7i upgraded from a T3i and I can't wait for a magic lantern upload for my T7i.. Thank you so much for your work.

Ondre

  • Just arrived
  • *
  • Posts: 1
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #382 on: April 02, 2021, 08:47:43 PM »
Maybe I can make a donation to support the developer?

Walter Schulz

  • Contributor
  • Hero Member
  • *****
  • Posts: 7879
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #383 on: April 06, 2021, 12:38:32 PM »
Bitcoin only, ATM. And you can only donate to the project but not to a particular port or dev.