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

kitor

  • Developer
  • Senior
  • *****
  • Posts: 460
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #400 on: April 30, 2022, 10:03:19 AM »
Unfortunately your beliefs have no backup in any measurable data. We are not even close to any raw capabilities on Digic6+ models, do not expect anything in literally years from now unless a miracle happens.
Too many Canon cameras.
If you have a dead R/RP mainboard (e.g. after camera repair) and want to donate for experiments, I'll cover shipping costs.

zvonkok

  • Just arrived
  • *
  • Posts: 1
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #401 on: June 17, 2022, 11:55:53 AM »
What is the status of 6D2? I have a background in embedded development and would like to help. I am mostly interested in having a clean HDMI on my 6d2. Thanks.
Asking to not duplicate work.

names_are_hard

  • Developer
  • Hero Member
  • *****
  • Posts: 819
  • Dev: 200D, 750D, 850D, 7D2
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #402 on: June 26, 2022, 06:18:47 AM »
Using MMU patches, I hooked mpu_send() and mpu_recv().  This allowed me to obtain a nice clean log of early MPU messages from 200D.  The same technique will be easy to adapt to all other D7, D8, DX cams.

This should greatly help in improving emulation.  So far I've only logged the very early messages, but in theory this can also log MPU traffic while the camera is exercised, to see how different camera functions work.  Note that the messages as seen by these functions are missing a container layer, so e.g. these two lines (one from my code, one from Qemu logging) are the equivalent message:
Code: [Select]
mpu_send: 06 01 27 00 64 00
[MPU] Received: 08 06 01 24 00 01 00 00  (PROP_CARD2_STATUS - spell #7)
Adding this extra layer for Qemu use looks easy.

The build is from this commit: https://github.com/reticulatedpines/magiclantern_simplified/commit/4d037140ad1c3ea72c16d508de65ddcc13f98a8d

Log (after slight manual cleanup, UART log lines get interlaced sometimes): https://pastebin.com/VmRdvQ9E

names_are_hard

  • Developer
  • Hero Member
  • *****
  • Posts: 819
  • Dev: 200D, 750D, 850D, 7D2
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #403 on: August 15, 2022, 05:33:00 AM »
Dual ISO now works on 200D.  So that's nice.  Process is similar to other cams, but the data format for ADTG / CMOS registers appears different, here are some examples:

Code: [Select]
0b400000 // ISO 100
0b444440 // 1600
0b440400 // Dual ISO, 100/1600
0b455550 // 3200
0b466660 // 6400
0b466660 // 12800, so presumably this is boosted further elsewhere and is non-native ISO

I'm currently assuming this means the data is now 16 bit, and b4 is the register index.  The lower and upper 4 bits are used by some commands.

Danne

  • Developer
  • Hero Member
  • *****
  • Posts: 7740
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #404 on: August 15, 2022, 08:13:03 AM »
 :o
Nice work!

names_are_hard

  • Developer
  • Hero Member
  • *****
  • Posts: 819
  • Dev: 200D, 750D, 850D, 7D2
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #405 on: November 24, 2022, 05:52:13 PM »
Some more understanding of the task scheduler.  I'm now confident that on 200d, e021cc4c is irq_handler(), it runs whenever an irq is triggered, due to VBAR setup in early code, see the table of handlers at e021cb60, associated with VBAR setup at e0040002:
Code: [Select]
coprocessor_moveto(0xf,0,0,&LAB_e021cb60,in_cr12,in_cr0);

See ARM manual, B4.1.156 for that mcr usage.  Also see FUN_e01caa88(&LAB_e021cb60,"Exception vector") for finding VBAR address.

As part of irq_handler(), we have:
Code: [Select]
  if (bVar5) {
    handle_interrupt();
    DAT_0000100c = DAT_0000100c + -1;
    return *puVar6;
  }
  handle_interrupt();
  thunk_FUN_df003028();
  change_running_task_maybe(&PTR_0000101c,&PTR_00001020);

This means that in most cases, handling an IRQ triggers assessing whether the task should change.  Which means the irq_handler is in essence the scheduler.  I assume there's a timer that triggers a periodic irq so it can't stall if the rest of the system is idle

GabrielJLozano

  • New to the forum
  • *
  • Posts: 2
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #406 on: December 08, 2022, 05:11:20 PM »
Still following this. Every year I hope that it will be here by Christmas but greatness takes time I guess.

Atarugolan

  • New to the forum
  • *
  • Posts: 2
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #407 on: January 06, 2023, 01:55:31 PM »
Hi All, sorry if I ask, I used the Magic Lantern in my old 1100D, fantastic ovbiusly, but I see nobody do anything for the 6D2, anybody ha doing something?

Thanks

Walter Schulz

  • Contributor
  • Hero Member
  • *****
  • Posts: 8854
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #408 on: January 06, 2023, 04:29:30 PM »
Nobody working on it.
Last talk with dev-to-be on Discord was November, 2021.

Atarugolan

  • New to the forum
  • *
  • Posts: 2
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #409 on: January 07, 2023, 07:19:52 PM »
Any chance to ask developer to do something? :D

Walter Schulz

  • Contributor
  • Hero Member
  • *****
  • Posts: 8854
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #410 on: January 07, 2023, 07:40:02 PM »
Any chance to ask developer to do something? :D

Sure. Please repeat:

"Are we there yet, developers?"

names_are_hard

  • Developer
  • Hero Member
  • *****
  • Posts: 819
  • Dev: 200D, 750D, 850D, 7D2
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #411 on: January 07, 2023, 08:36:33 PM »
I'm the most active (only?) dev for Digic 7 cams, and I don't have a 6D2.  I did a blind port, but don't have a way to test it.  It has no features.

There won't be any progress on 6D2 until we get a dev that wants to work on it, or I get a 6D2 and a lot more spare time.

Bruno Italiano

  • New to the forum
  • *
  • Posts: 35
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #412 on: January 07, 2023, 11:02:25 PM »
Don't worry and You don't have to get in any stress. I love my 5d3 the most anyway.

names_are_hard

  • Developer
  • Hero Member
  • *****
  • Posts: 819
  • Dev: 200D, 750D, 850D, 7D2
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #413 on: April 04, 2023, 05:17:28 AM »
As seen elsewhere, I now have good control over Wifi on 200D.  The code should be easily portable to other Digic 7 (and very likely 8, X): https://www.magiclantern.fm/forum/index.php?topic=26850.msg242999#msg242999

Further to that, I've confirmed that the 200D forces the Wifi into a low-power mode.  But this can be overriden using an MMU patch.  Also confirmed, 200D supports 802.11n, 2.4GHz only.  No sign of 802.11ac but n is okay!

Combining both of those, I have boosted bandwidth to about 3.8MB/s.  That's around 3s to upload a full res JPG - pretty useful!  It's very range dependent to the AP so I suspect the cam has a crappy antenna / transmit power.  I'm in a pretty noisy wifi environment so higher may be achievable.

e071f174 on 200D 1.0.1 is something like get_wifi_power_settings(int *chip_index, int *is_low_power).  This always sets chip_index to 1 and is_low_power to 1.  Setting is_low_power to 0 gives MOAR POWER, and presumably less battery life.  I would expect this tweak to make all Canon wifi functions faster, not just ML stuff.

kitor

  • Developer
  • Senior
  • *****
  • Posts: 460
Re: DIGIC 7 development (200D/SL2, 800D/T7i, 77D, 6D2)
« Reply #414 on: May 21, 2023, 03:45:18 PM »


77D.
Too many Canon cameras.
If you have a dead R/RP mainboard (e.g. after camera repair) and want to donate for experiments, I'll cover shipping costs.