[SOLVED] Any `Canon EOS 40D` users around? A bit of testing wanted...


… i’ve finally squashed a very long-missing feature of
reading the proper Black and White levels from CR2 raws.

While this works well, that requires guessing where
in an Canon-specific MakerNotes binary blob it is,
and of course that happens to be different places
for different camera generations, and sometimes
different cameras within that generation.

What’s missing is handling of 1DmkIII / 1DmkIIN/5D/30D/400D / and older.

But in this particular case, i’d like to ask for the help of 40D owner[s].
exiftool does not know what the right offset is,
and while i think i got it right, Phil (are you here? :)) is not so sure:

Indeed, it could totally be wrong. i’d like to be sure,
but that’s impossible to do without wider testing.

So what would help, is if you can build darktable yourself,
manually set the rawspeed submodule to the develop branch:
cd src/external/rawspeed && git fetch --all && git checkout develop
then build dt as usual, !!! make backups of the .xmp sidecars !!!,
and look through some of your images from 40D.

NOTE: You most likely would need to reset their history stack,
to be sure that the rawprepare module actually uses
the new Black and White levels, and not the previous ones.

What you want to look for specifically, is if the images look
very obviously wrong, either just too dark and with magenta highlights,
or too bright, with too much clipping.



will do it in the afternoon with some old images and provide a macOS build with development branch so further can check …

for those that want to test with macOS/arm64:
beware: don’t forget to backup your xmps …


first quick check with well exposed 100iso file: for some it seems to be ok, for some there’s clipping that needs a higher raw whitepoint (about 9750 instead of 7334)

some max rawdigger values for eos 40D white levels:
ISO 100: 12801
ISO 200: 15202
ISO 400: 15202
ISO 800: 15203
ISO 1600: 14926
ISO 3200: 15375

@MStraeten thank you!
Looking at those few more samples, the “read” white level looks wrong indeed,
and for some of those none of the values found in MakerNotes seem fitting either.
Maybe it was added in some version of firmware, but i digress at the moment.


Would it help with some more raw files from 40D?

To really put a nail into this coffin, i’d need to have a full ISO set
(landscape-ish imagery, really overexposed with clipped highlights,
that become magenta if you manually set the white level in rawprepare module to 16383)
from basically each firmware version ever released for that camera.

I have a suspicion that it was added in 1.1.x or so,
so at the very least i’d need a set from 1.1.0 or at least 1.1.1,
and the version before that, i.e. 1.0.9 or 1.0.8
Or maybe it was added later on in 1.1.x series of firmware updates…

I’m not quite sure that’s very realistic to ask for, i’m afraid.
But sure, if someone can produce those sets, i will take another look.


Sadly I don’t have complete sets. Some samples only (5 downloads) Send large files | Transfer big files free online | Sprend
On the other side I do have some 40D firmware updates including the original published file size from Canon if someone still has a 40D and wants to downgrad/upgrade to take the sets.

It seems Canon had some problem with the raw files before 1.0.5, see:
7. Corrects a phenomenon that RAW images cannot open by competitors’ applications.

I’ve just picked up an EOS 1100D, and been testing it before passing on to a friend.
In not-quite-current master (actually weekly windows build 4.5.0+1401) it has a definite case of wonky white levels.
Would any files be useful to you, @LebedevRI ?

And I have a 350D. In my limited use so far I haven’t noticed anything off, but who knows…

I don’t know from which commit that was built,
but i suspect that is older than the commit with the fixes,
so not really.

1 Like

Please include the entire version string containing the commit hash so it can be identified.

1 Like

Like this? 4.5.0+1401~gc2455d4619
Sorry I left that out. :face_with_hand_over_mouth:

Yes. That commit was (at least a week?) before Roman’s Canon changes got dropped onto master, so no wonder.

Thanks. :slight_smile: Sorry for the noise. When I have time to play around I’ll get the latest version and see how that goes with the 1100D.