DIGIC register investigation

1,035 views
Skip to first unread message

Alex

unread,
Feb 19, 2012, 4:11:46 PM2/19/12
to Magic Lantern firmware development
This is only for brave testers and developers who don't mind risking their cameras. If you are not one of them, stop reading right now.

------------

This task is HUGE. Hopefully so will be the rewards :)

Background and motivation: see https://groups.google.com/group/ml-devel/browse_thread/thread/dea4ce5e18f9140f/a35d128529b9e90e?show_docid=a35d128529b9e90e

A little howto here: http://magiclantern.wikia.com/wiki/Register_Map/Brute_Force

Source code: https://bitbucket.org/hudson/magic-lantern/changeset/cdd34f40eeb3

Also had a nice surprise from CHDK guys - the register used for saturation adjustment also works in DIGIC II and III compacts, so we can share these reverse engineering efforts with them.
http://chdk.setepontos.com/index.php?topic=7697

Take care!
autoexec.bin

Giovanni Di Cello

unread,
Feb 19, 2012, 4:21:08 PM2/19/12
to Magic Lantern firmware development
Testing it right now, fingers crossed.
:)

Giovanni Di Cello

unread,
Feb 19, 2012, 5:00:53 PM2/19/12
to Magic Lantern firmware development
I thought it would be an easier task but now i realize there's a lot
of stuff to be looked through.
What if we set some "groups" and each of them does something?

Danne

unread,
Feb 19, 2012, 5:10:20 PM2/19/12
to Magic Lantern firmware development
As soon as I get the time, I,m on it. Don,t mind risking one 500d to
science :). Still need the time to understand the howto.
//D

On 19 Feb, 22:11, Alex <broscutama...@gmail.com> wrote:
> This is only for brave testers and developers who don't mind risking their
> cameras. If you are not one of them, stop reading right now.
>
> ------------
>
> This task is HUGE. Hopefully so will be the rewards :)
>
> Background and motivation: seehttps://groups.google.com/group/ml-devel/browse_thread/thread/dea4ce5...
>
> A little howto here:http://magiclantern.wikia.com/wiki/Register_Map/Brute_Force
>
> Source code:https://bitbucket.org/hudson/magic-lantern/changeset/cdd34f40eeb3
>
> Also had a nice surprise from CHDK guys - the register used for saturation
> adjustment also works in DIGIC II and III compacts, so we can share these
> reverse engineering efforts with them.http://chdk.setepontos.com/index.php?topic=7697
>
> Take care!
>
>  autoexec.bin
> 1848KVisaHämta

Alex

unread,
Feb 19, 2012, 5:20:57 PM2/19/12
to ml-d...@googlegroups.com
Probably it's best to practice on a few registers which are already documented. The tool is not hard to use, you need to select the register address, then hold the shutter pressed halfway, and write down what happens. If you see the image flickering, then you'll have to find out what that flickering means - that's the hard part IMO.

Even if you can't figure out, you can simply mention that image flickers when you change the value in that register. This just means the register actually does something on the image and requires further attention.

The most time consuming part is to find out what registers are actually used. A lot of them are not used, and because of them, register analysis is effectively like looking for a needle in a haystack. Marking what is not used will greatly simplify this task.

About working groups... I'd say this can work well: pick some registers which were not documented, and document them. This means the next person will not pick the same registers, because he will see that somebody else already documented them.


--
http://magiclantern.wikia.com/

To post to this group, send email to ml-d...@googlegroups.com
To unsubscribe from this group, send email to ml-devel+u...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/ml-devel?hl=en

Giovanni Di Cello

unread,
Feb 19, 2012, 5:24:02 PM2/19/12
to Magic Lantern firmware development
That's what i meant, if everybody who's willing to contribute looks up
into the same registers it's a waste.
We should report everything.

TOM_M

unread,
Feb 19, 2012, 5:35:08 PM2/19/12
to Magic Lantern firmware development
Perhaps we could collect donations to purchase a second hand, whatever
is the cheapest model, Dslr purely as a test camera, so it can be used
without too much fear....

Giovanni Di Cello

unread,
Feb 19, 2012, 5:55:27 PM2/19/12
to Magic Lantern firmware development
I am trying to understand the wiki but i don't know if i am doing
right.
DIGIC poke:
Family:0xc0e1
Base:0x0
Offset:0x0
Let's say i set these 3 values, what should i do now to apply them?
Where and when do i have to press half-shutter?

xaos

unread,
Feb 19, 2012, 6:15:33 PM2/19/12
to ml-d...@googlegroups.com
Wiki updated with few registers, eg c0f0f104 looks interesting.

Giovanni Di Cello

unread,
Feb 19, 2012, 6:27:25 PM2/19/12
to Magic Lantern firmware development
Cool, can you answer to my question?
I'd love to contribute but i'm not sure if i am doing right since
pretty much almost every address doesn't do anything.

Alex

unread,
Feb 20, 2012, 3:05:15 AM2/20/12
to ml-d...@googlegroups.com
> Family:0xc0e1
> Base:0x0
> Offset:0x0
Let's say i set these 3 values, what should i do now to apply them?

These will select register c0e10000 (displayed under Value).

> Where and when do i have to press half-shutter?
In LiveView, outside menu. But c0e1 is H.264, so you won't notice any change on the screen. Probably there will be some subtle change in recorded footage, or probably there will be no change at all (I don't know if the timing is right for H.264 registers).

Try the LiveView registers first (start with the ones already documented).

And if you find some register that does nothing, mark it as not used. So we'll know to focus our attention on registers that actually do something.

Giovanni Di Cello

unread,
Feb 20, 2012, 3:09:34 AM2/20/12
to Magic Lantern firmware development
So i have to set 0xC0F0 and then try some combinations and see if they
do something.
Half shutter in LV is the trigger, right?
Let's roll.

Danne

unread,
Feb 20, 2012, 5:05:27 AM2/20/12
to Magic Lantern firmware development
haha, let,s roll :)!
I,m firing up my 500D tonight, looking for the holy graal,
uncompressed hdmi out ;).
//D

Giovanni Di Cello

unread,
Feb 20, 2012, 9:19:23 AM2/20/12
to Magic Lantern firmware development
I've spent a couple of hours finding used registers and the best thing
to do is to look for the ones with nonzero values as suggested in the
wiki.
For 50D and 500D users, the register changes only work while recording
so you have to be recording to see the effects of the changes (A1ex
will post a fix tonight, hopefully) .
It's a huge work but if everybody does a bit of the testing we can
speed things up a bit.
Except for some lockups i haven't experienced any problem with the
testing. If you have a wall adapter for your EOS it is better to use
it because LV eats battery very quickly.
Do your part and everybody will be rewarded, let the team work begin.
:)

Daniel

unread,
Feb 20, 2012, 1:48:34 AM2/20/12
to Magic Lantern firmware development
I'd like to help, but I only have a 5D so this is terrifying.

Giovanni Di Cello

unread,
Feb 20, 2012, 1:16:00 PM2/20/12
to Magic Lantern firmware development
You don't have to be afraid of anything, seriously.
Obviously, nobody can 100% guarantee no damage but it's pretty much
safer than putting your hand in boiling water.

Alex

unread,
Feb 20, 2012, 4:56:23 PM2/20/12
to ml-d...@googlegroups.com
Fixed some bugs on 50D and 500D - previous autoexec worked only while recording on these two cameras.

Also added the ability to quickly change current register with arrow keys:
- right/left: increment/decrement current register address
- up/down: increment/decrement current address until it finds a register with nonzero value (those are more likely to have some visible effect).

Hopefully this will make the huge task of documenting the DIGIC much easier.

autoexec.bin

Lionel Davey

unread,
Feb 20, 2012, 8:59:29 PM2/20/12
to ml-d...@googlegroups.com
Hope I'm on the right track.

http://magiclantern.wikia.com/wiki/Register_Map/Brute_Force/C0F0xxxx#C0F010xx

Had to take a break as it's a rather warm day here and after awhile I'm getting temperature warnings.
Reply all
Reply to author
Forward
0 new messages