350d boot from cf card - page 45 - DSLR Hack development - CHDK Forum  

350d boot from cf card

  • 510 Replies
  • 283413 Views
Re: 350d boot from cf card
« Reply #440 on: 28 / October / 2012, 07:22:03 »
Advertisements
My findings on the 400d (and I very much doubt the 350D is different about this):

* Only "official" ISOs (100, 200, 400, 800, 1600) are "real" (hardware-based); all other intermediate / extended ISOs are software-based. This can be noticed easily in high-resolution histogram.

* ISOs increment in 1/8 EV values, but the camera displays only 1/3 increments (the same goes for the value recoded in the EXIF tags inside the image). If you make a sequence of images, going from ISO 100 to ISO 200 for example, you'll see how the light increases constantly [this makes a lot of sense, by the way, because multiplying by 1/8 can be done quite easily, using only fast integer arithmetic (and the hardware does not support floating point)].

* Working values go from ISO 100 to ISO 3000; any value below ISO 100 or above ISO 3000 produce broken images. Notice that ISO 3000 is displayed as ISO 3200, and there is little difference in the result; thus some people assumed ISO 3200 was working, when in fact it was ISO 3000.

Hope this helps.

Re: 350d boot from cf card
« Reply #441 on: 28 / October / 2012, 08:52:02 »
* ISOs increment in 1/8 EV values, but the camera displays only 1/3 increments (the same goes for the value recoded in the EXIF tags inside the image).
And so the intermediate iso settings in 350D chdk, such as 1000 and 1250 ISO, not only are software computations from an acquisition with gain set to 800 ISO, but they are also not 1000 and 1250 (not rounded value are 1008 and 1270 ISO), but maybe 800+3/8EV(=1037) and 800+5/8EV(=1234ISO). Is this correct? Is +3/8 and +5/8 EV the numbers programmed in CHDK?
The numbers above are also very similar to the one I've found from the gain measurements (see http://www.astrosurf.com/comolli/strum154.png ).

If you make a sequence of images, going from ISO 100 to ISO 200 for example, you'll see how the light increases constantly
I'm not able to try this since in the CHDK only 1/3 EV increments are possible in the ISO setting.

* Working values go from ISO 100 to ISO 3000; any value below ISO 100 or above ISO 3000 produce broken images. Notice that ISO 3000 is displayed as ISO 3200, and there is little difference in the result; thus some people assumed ISO 3200 was working, when in fact it was ISO 3000.
Very interesting, so 3200 is instead 2934 ISO. This also explains the gain measurement in the linked graph, that is a little above the interpolating line.

Thank you very much for your very helpful post!

Re: 350d boot from cf card
« Reply #442 on: 28 / October / 2012, 10:36:17 »
* ISOs increment in 1/8 EV values, but the camera displays only 1/3 increments (the same goes for the value recoded in the EXIF tags inside the image).
And so the intermediate iso settings in 350D chdk, such as 1000 and 1250 ISO, not only are software computations from an acquisition with gain set to 800 ISO, but they are also not 1000 and 1250 (not rounded value are 1008 and 1270 ISO), but maybe 800+3/8EV(=1037) and 800+5/8EV(=1234ISO). Is this correct? Is +3/8 and +5/8 EV the numbers programmed in CHDK?
The numbers above are also very similar to the one I've found from the gain measurements (see http://www.astrosurf.com/comolli/strum154.png ).

Correct: in 400plus, I decided to use a linear approximation when representing intermediate ISOs (100, 125, 150, ...); but in fact I should have used an exponential function, as you explained. The exponential function yields precise values, but numbers are also "uglier"; just for cosmetic reasons, we are using the (inexact) linear version.

If you make a sequence of images, going from ISO 100 to ISO 200 for example, you'll see how the light increases constantly
I'm not able to try this since in the CHDK only 1/3 EV increments are possible in the ISO setting.

If I am not mistaken, 350D uses the same method as the 400D to set ISOs; look at the sendToIntercom call, and see the values used: using octal notation, 0110 corresponds to ISO 100, 0120 is ISO 200, ..., 0150 is ISO-1600. Then 0111 is ISO 100 + 1/8 EV, 0112 is ISO 100 + 2/8 EV, ... .

For 1/3 EV values, the camera approximates 3/8 as 1/3 and 5/8 as 2/3.

* Working values go from ISO 100 to ISO 3000; any value below ISO 100 or above ISO 3000 produce broken images. Notice that ISO 3000 is displayed as ISO 3200, and there is little difference in the result; thus some people assumed ISO 3200 was working, when in fact it was ISO 3000.
Very interesting, so 3200 is instead 2934 ISO. This also explains the gain measurement in the linked graph, that is a little above the interpolating line.

Yes, exactly.

Thank you very much for your very helpful post!

Just a little "pay-off" for all the information I obtained from the code used by the 350D and used for the 400D...

Re: 350d boot from cf card
« Reply #443 on: 01 / November / 2012, 08:22:26 »
Hi all, first post here, nice to find you :)

Thanks zestoi for the updates, I've copied the files in CF, some mods works but some don't work.
I'm using Canon 350D cameras (using two actually, for 3D) and never managed to have more than 3 exposures in AEB or eAEB, with your mods or other's.
Maybe I'm missing a step somewhere :(
After pressing the set button, camera shoots 3 frames then stops.

Can anyone confirm , say,  5x frames working in eAEB on 350D and how to do it, step by step.


many thanks,
Dorin


download link: http://djism.com/350d/350D-20120916.zip

summary of my updates:

* avcomp and fecomp now stay in sync with any changes u make in the camera via the normal menus
   * also updated the code that displays in the top/left the current avcomp and bracketing to stay in sync

* ported EAEB from cyrustam
   * EAEB string looks as closely to the normal braketting string as poss like "-0.3 x7 +-0.7"
   * fixed 2 second delay, blue led will flash 4 times before it starts
   * LEFT/RIGHT change exposure level
   * MENU/PLAY change how many frames to take

* integrated some code from cyrustam's FEB code so u can select how many frames to take
   * RIGHT/LEFT change exposure level
   * MENU/PLAY change how many frames to take
   * fixed 2 second delay now, blue led will flash 4 times before it starts
   * FEB string looks as closely to the normal braketting string as poss like "-0.3 x7 +-0.7"

* ported the color/saturation/sharpness/colortone code from cyrustam.
  * only changes SET3
  * limited the ranges to what seems to actually work
  * LEFT/RIGHT to change value

* enabled the picture quality settings
   * with RAW selected will always save L images, but i like having the option to change from the INFO menu
   * status display changed to look like "JPEG F L" etc
   * LEFT cycle round Raw+JPEG, Raw, JPEG
   * SET toggle between F and N
   * RIGHT cycle round L, M, S

* added presets go to presets menu and then:
  * LEFT/RIGHT cycle thru presets
  * SET to save current camera settings to preset.
  * unnamed presets will look like "preset 8" if no preset saved yet or "preset 8*" if a preset exists
  * PLAY loads a preset
  * MENU to enter edit mode - blue led will light up
     * press MENU again to cancel
     * LEFT/RIGHT to change letter character to edit
     * UP/DOWN to change the current character
     * SET to save and exit edit mode
  * you need to create a folder called "presets" in the root of your card. presets are named just via a number like "10" with "10.txt" containing the optional name that you can edit in a text editor if needed

* multiple presses of INFO jump to different sections of options (apart from when an option itself needs the INFO button)
  * to change where it jumps to edit these lines in user_settings.txt and recompile:
Code: [Select]
   #define INFOJUMPS_COUNT 4
   int INFOJUMPS[] = { POSITION_AFBUTTON, ... };
« Last Edit: 01 / November / 2012, 08:54:11 by DorinDXN »


Re: 350d boot from cf card
« Reply #444 on: 01 / November / 2012, 09:44:46 »
Hi Dorin,
as you report (also here below), the eAEB uses the menu/play buttons to change the number of frames, i.e. you'd like to shot 7 frames, than press 2 times the menu button.

However, as I've noted in another post, this eAEB is not working well if the scene brighness changes because the exposure is computed in each shot and not only in the first.

Quote
* ported EAEB from cyrustam
   * EAEB string looks as closely to the normal braketting string as poss like "-0.3 x7 +-0.7"
   * fixed 2 second delay, blue led will flash 4 times before it starts
   * LEFT/RIGHT change exposure level
   * MENU/PLAY change how many frames to take

Re: 350d boot from cf card
« Reply #445 on: 02 / November / 2012, 04:16:50 »
Thank you for reply.

I have no problem in setting the menu as it should be, mean I can set the eAEB to x5 or x7 the problem is that it doesn't work. That's why I requested a confirmation from someone kind to test it for me on 350D
for example
1) Camera on M (manual mode)
2) eAEB on 0 x7 +-0.7
3) press set button,  then what kind on photos are taken?

From my tests camera stops after 3 shots, those 3 are ok from bracketing POV, mean normal, under, over, then if I half-press the shutter button the camera takes another photo but the time/aperture is the same as one from previous 3 then another half-press and it takes another photo same as one from the initial 3.

In short never managed to have, say, x5 eAEB properly working, mean a set of 5 photos over a range of time exposure spread properly on those 5.

Pleas post the camera settings if someone has managed to have a proper sequence of 5 photos with eAEB

sorry for my English,
thanks,
Dorin







 
« Last Edit: 02 / November / 2012, 04:19:18 by DorinDXN »

Re: 350d boot from cf card
« Reply #446 on: 02 / November / 2012, 09:22:38 »
Hi Dorin,
as I've wrote, I've found that eAEB doesn't work with M mode. I get the correct number of shots but all with the same exposure time.

The only way I succeded in getting different exposure times, is to use AV mode. But the problem is that the exposure is recomputed each time so I'll get not all the needed exposure.

By now this function is not working well and so I'll not use it.

A post by the author would be greatly appreciated!

Re: 350d boot from cf card
« Reply #447 on: 02 / November / 2012, 09:38:18 »
Well, I'm not the author, but I think that I can explain what is going on here...

What EAEB does is take a sequence of shots, changing the exposure compensation for each shot; as you have already found out, this method has two major drawbacks:

* First, it does not work for M mode, as there is no exposure compensation in M mode.
* And second, if the light in the scene changes during the sequence, the camera will end up applying different compensations to unrelated exposures.

In 400plus, we changed how EAEB works:

* First shot is made without changing any parameter, and we record the exposure used by the camera.
* Next we change into M mode, and take the rest of the sequence using parameters calculated by us.

But still that method is not perfect, however:

* Changing modes in the middle of a sequence can lead to camera hangs, if done too quickly... we have to be very careful not to stress the camera too much.
* Computer programs that detect sequences of AEB shots get confused, as the images do not seem to be related at all.

Hope this helps.


Re: 350d boot from cf card
« Reply #448 on: 27 / November / 2012, 04:15:26 »
I've made some nighttime timelapses using the chdk on 350D. Unfortunately I've got some inconstant results, as the sequences stop without reason after 50-100 shots.

Settings:
350D in M mode, exposure 25 s, 1600 ISO, RAW, 20 mm f/1.8 lens at f/2.5, freshly charged battery (able to do much more shots).
Chdk intervalometer with a really large number of programmed shots and 30 s interval.

I've made 4 sequences and they stopped at 50-100 frames, in some case hanging the camera (need to remove the battery to switch off) and in other simply stopping.

Any hint to improve reliability? Or will I need to go back to external intervalometer?  :(

Re: 350d boot from cf card
« Reply #449 on: 27 / November / 2012, 04:57:15 »
I do not have the source code for the 350D in front of me right now, but for the 400D it took us a lot of work to make the intervalometer work reliably (in fact, we did not make it fully reliable until a couple of weeks ago). The problem is that is is very easy to fire the shutter while the camera is still working, or to fill the CF card and try to continue shooting, just to name a couple of examples.

Other than fixing the source code (if you want the details, just ask), you could try to use a faster / larger CF card (not sure to help), or to increase the interval between shots (not always what you want).

 

Related Topics