General EOS 40D development discussion

  • 169 Replies

Offline DataGhost

  • ****
  • 314
  • EOS 40D, S5IS
General EOS 40D development discussion
« on: 08 / September / 2008, 12:19:50 »
Ok, this is popping up on more and more sites, so maybe it's a good idea to say this to all impatient people out there: this is a tech demo. It is not easy to use. It still requires postprocessing. There is no download. I don't need anyone to 'test' unless I specifically ask for it. It is done when it is done, I have a lot of other things which are more important so it could be a while.

Hi :)

First of all, watch this thing.

Now I'd like this thread to be a place to discuss possible features the 40D still needs. Also, some general ideas about actually developing something would be useful. I have the strong feeling that it will not be easily possible to include EOS support in CHDK, due to the huge mechanical/hardware differences and different addon needs. There is also a lot of stuff in common for all powershots which might not be applicable to DSLRs at all. I can already see the CHDK source littered with #ifdef EOS lines. The general idea I have now is to create a separate, new program, somewhat based on CHDK but not really the same thing, built again from the ground up, possibly borrowing some useful parts from CHDK (menu system? scripting).

Anyway, some of the things on my to-do-someday list:
  • Movie mode
    - Live view stops after a period of inactivity or without movement. I'm not entirely sure how they are doing it but if you keep the camera in motion, it won't stop. Maybe some (LV-related?) powersave functions can save the day.
    - Compression/buffering. The data stream will likely be big and need to be compressed somehow. Buffering might also be an issue, since the camera won't write much faster than 8MB/s to CF, regardless of the card.
    - AF. Only option is to lower the mirror again and focus. This might not really be an issue, though. Because there is no sound, users won't hear the mirror slam down and up again, and the sound won't be out-of-sync if we decide to skip the blank frames. Sooo... we can skip the blank frames, resulting in 'instant' AF. This won't really work with moving subjects as they'll change instantly. It seems that the firmware does have some strings, in the middle of code (!), to suggest LV contrast AF. My bet is that they couldn't get it finished or that they couldn't get the movie mode finished and decided to 'scrap' it all together. The code seems to be there and possibly complete but I don't know how to use it yet.

  • AF Microadjustment
    - Some language strings seem to be present but this may be common to all EOS cameras. I hope I can get the necessary code from the 1D3 but I don't know how to decrypt the main payload of .fir files yet.
    - Own implementation might be possible by just adjusting focus after focus lock.

  • Mode dial 'lock'
    Someone told me the mode dial annoyed him and he was happy his 1D3 has buttons instead, so it won't accidentally go into another mode when putting it into or removing it from the camera bag. Valid issue, although I haven't encountered something like that myself yet. I have two possible solutions:
    Save the wheel state into NVRAM somehow so that after powering down and powering up the camera, the wheel state is still known to the software. Then either of these (possibly user-selectable):
    - Override the wheel state to the previous setting if it changed while the camera was turned off. Display a warning on the LCD. Override by turning the mode dial to something else (and back again, probably).
    - Just display a warning on the LCD and don't override the mode dial.

  • Integration into the Canon menu system
    Shouldn't really be hard, just requires some more RE. Would be awesome if it worked :)

  • Override basic modes to act as C4, C5, ..., C9
  • Find a use for the DP button
    Make it programmable if it's not required for something like ALT mode (see 'Integration into the Canon menu system').

I'd be happy to elaborate on the movie mode thing a bit after some responses.
Edit: oh yeah, it would also be interesting to know who else has a 40D and is planning/willing to help. Feedback from non-owners is also appreciated (GrAnd, ewavr, ...?) regarding the chdk-vs-new-project thing.
« Last Edit: 24 / September / 2008, 06:19:25 by DataGhost »


Offline PhyrePhoX

  • *****
  • 2253
  • make RAW not WAR
    • PhyreWorX
Re: General EOS 40D development discussion
« Reply #1 on: 08 / September / 2008, 12:34:53 »
couldnt really believe it when you first talked about it in irc, but i guess your video now proves it. also we finally got to see you, though i wonder how you can be seen when you are a ghost, especially when viewed in a mirror. ;)
good luck with your project, and i hope you dont forget the s5is ;)


Offline fudgey

  • *****
  • 1705
  • a570is
Re: General EOS 40D development discussion
« Reply #2 on: 08 / September / 2008, 14:21:28 »
I don't have a DSRL nor planning on getting one but I still think this is great progress!  :D

You're probably right about keeping it separate from the point&shoot code if it seems remarkably different from what we're used to. I wouldn't be surprised if the Canon p&s and dslr developers sat in different cities and never talked to each other :haha

BTW I once looked at all the menu functions visible in the a570is firmware and thought that learning how to use them would be a marvelous way to totally waste a week or two to sheer vanity :P.


Offline reyalp

  • ******
  • 10016
Re: General EOS 40D development discussion
« Reply #3 on: 08 / September / 2008, 15:52:36 »
As far as code goes, a reasonable approach might be a separate EOS subtree, but still use whatever files are generic (the ui handling stuff, ubasic and/or lua core etc).

This will probably require a bit of re-factoring in the main tree, but in the long run would be beneficial to both projects.

Don't have a DSLR or plan to get one ATM, but if one falls in my lap I'd definitely be interested in contributing ;)
Don't forget what the H stands for.

Re: General EOS 40D development discussion
« Reply #4 on: 09 / September / 2008, 03:41:50 »
The link to the movie's not working right now...

Instinctively, I feel that it's going to be quite difficult porting CHDK to a dSLR such as the 40D, and it may be easier to start afresh, borrowing useful code like reyalp suggested. I own a 40D and I'm absolutely happy to help out when I can (when exams aren't in the way :P)

As for movie mode, I'm guessing the buffer's something like 128MB in size (17-burst RAW at ~6fps), which may be enough room to work with?

I'm interested to see what's going to happen next ;)

Re: General EOS 40D development discussion
« Reply #5 on: 09 / September / 2008, 03:58:44 »
I have a 40D and I'd be willing to help given risks are properly defined :)
AFAIK, CHDK on digicams was pretty much harmless but I think I've read it would be slightly more complicated with dslrs (firmware hack instead of bootstrapping?).


Offline DataGhost

  • ****
  • 314
  • EOS 40D, S5IS
Re: General EOS 40D development discussion
« Reply #6 on: 09 / September / 2008, 04:14:37 »
256MB, RAW+JPEG is about 16MB and my camera slows down after 13 or so. 13*16=208 plus some room for the OS, display, etc. Also, a string in the firmware suggests 256MB and eh... I have a 256MB memory dump... so I guess it has 256MB :)

Movie seems to be down indeed, strange. I can't access the server either. [ Edit: it's up again. ]

Sylvain G.: It's possible to execute code using a modified .FIR file, the camera will load and decrypt it (takes about 14 seconds) and then execute it. Very annoying when testing stuff but ah well. Booting by means of AUTOEXEC.BIN file is just slightly harder, a value in the NV memory needs to be changed so the camera will consider it. It should be harmless but I don't know what side-effects it might have until someone tests it. Anyway, enabling this boot method requires a modified .FIR file to set that value properly.
« Last Edit: 09 / September / 2008, 04:17:02 by DataGhost »

Re: General EOS 40D development discussion
« Reply #7 on: 09 / September / 2008, 04:29:20 »
What resolution did you take the video at? 360x214 seems a bit weird...:P

Re: General EOS 40D development discussion
« Reply #8 on: 09 / September / 2008, 06:04:02 »
How about the chances for more pictures (my be 9) with wider EV span (may be +-4EV) in auto exposure bracketing... for HDRI generating?

Re: General EOS 40D development discussion
« Reply #9 on: 09 / September / 2008, 07:50:15 »
Nice work!!!

What I would like to see on my 40D:

  • ISO 50 and 6400
  • Auto ISO which uses full ISO range (50 to 6400)
  • Micro AF adjustment
  • Scripting support
  • Full flexible auto exposure bracketing (free choice of EV and pictures taken between min/max value)

And maybe, if it does not make to much trouble, a phaser to eliminate disturbing objects/people  8)

By the way, does anyone know if AF adjustment on the 50D/1DMIII is possible with lenses other than Canon.

Kind regards


Related Topics