supplierdeeply

Intervalometer with auto shutter time - for day, night, sunrise, sunset...

  • 21 Replies
  • 9369 Views
  • Publish
    Advertisements
    I was searching for a kind of universal intervalometer, but didn't find any, that does what I need. So after googling I did my own.
    The aim was to have auto exposure done by change shutter time. And since camera auto exposure is not exactly what I want (it rather increases ISO and doesn't increase shutter time above 1') I had to be done by CHDK. I found a nice script that calculates shutter time:

    http://crteknologies.fr/wiki/doku.php/photo:chdk-scripts#night_shot

    but it was converted to Lua and transformed to the intervalometer with a few additional functions.

    So what does this script do:

    - measure brightness of the scene
    - combine this with Sv and Av to calculate Tv (based on APEX and 96 values)
    - take a shoot, wait and repeat.

    That's the base.

    Additionally there's an option to have something I called 'brightness linear correction'. I had to have a little underexposed night shoots while day shoots had to be good exposed. With this script you can set what correction will be applied at two measured brightnesses: -500 and +500. These points define a line over the brighness range. The correction is applied to shutter time.

    So when I needed underexposed night shoots and good exposed day shoots I've used following corrections:

    @-500 correction: -170
    @+500 correction: 0

    For example when camera measured scene brighness Bv=0 the correction applied was -85. Note these are APEX linear values, proportional to the shutter time - not linear in the exposure scale meaning. Seems to be working well.

    Script may display a nice chart of the brightness measured over the time. It updates with each shoot. When the brightness doesn't change over the time it might look like a random chart and in that case is rather not very usefull.

    Below is a video taken with early version of the script. I have lost a few nice minutes before the sunrise because of some problems with get_shootung() (which were fixed after that). Quality is not good, since ot was compressed for YT. All over the execution of the script no parameters were changed manually, all changes were done by the script.


    Time-lapse day-night-day

    And as a gift - a nice photo of the bird, which was captured accidentally on one photo:
    « Last Edit: 02 / March / 2012, 13:24:50 by outslider »
    if (2*b || !2*b) {
        cout<<question
    }

    Compile error: poor Yorick

  • Publish
    Re: Intervalometer with auto shutter time - for day, night, sunrise, sunset...
    « Reply #1 on: 29 / February / 2012, 20:02:25 »
    Very nice - thanks for posting the script.

  • Publish
    There was a bug in the previous version of the script. When 'Draw chart?' was set to 0 it failed. Updated version is now in the first post.

    There were 6 downloads untill now, so any feedback would be usefull;)
    if (2*b || !2*b) {
        cout<<question
    }

    Compile error: poor Yorick

  • Publish
    I have downloaded this script and plan to run it.  Does it need to be run in M (manual) mode or Tv mode, or another?  Thanks for the hard work on this.


  • Publish
    This was not a hard work;)

    I have used this in M mode and I would suggest to do this. However, remember, that what this script does is a kind of Av/Sv mode - with this script aperture and ISO are fixed and script calculates appropriate shutter time.

    Waiting for feedback and regards from Rostock;)
    if (2*b || !2*b) {
        cout<<question
    }

    Compile error: poor Yorick

  • Publish
    Excellent script, but sadly I have problem. I'm using it on Canon A590IS and after some time (several hours for most of the cases), it hangs. For example, I have set period between shoots to 40s and after some time (it's absolutely random) it hangs on 33s  counting and not shooting anymore. Camera is not stuck, just press the shutter for end script and start it again, but I can not sit next to the camera and wait, when it stops... Any idea, where is the problem? Thank you.

  • Publish
    I have no idea, this happened to me a few times. This is probably some CHDK bug...
    if (2*b || !2*b) {
        cout<<question
    }

    Compile error: poor Yorick

    *

    Offline fe50

    • ******
    • 3034
    • IXUS50 & 860, SX10 Star WARs-Star RAWs
      • fe50
  • Publish
    I have no idea, this happened to me a few times. This is probably some CHDK bug...
    Did you try to use the "traditional" press/release shoot_half/shoot_full method instead of shoot() ?


  • Publish
    No, I didn't... I can try that. However the problem with debugging of the script is that the bug appears very occasionally - I've seen it maybe 5 times, while I believe I took around 5k-10k shoots with this script (many whole-night or whole-day timelapses).

    Of course the script might be 'over-complicated' - I could remove whole this drawing staff, which is rather fancy feature than really usefull thing. So complicated script is more susceptible for bugs...

    Oh - one interesting thing - I've observed the bug mostly at the morning. So it might appear in certain light conditions. Maybe there is a kind of bug with calculations, like division by zero, when Bv=0 or something. I have no idea. No error message appears, only "PRESS SHUTTER TO STOP" or something like this.
    « Last Edit: 20 / June / 2012, 06:03:27 by outslider »
    if (2*b || !2*b) {
        cout<<question
    }

    Compile error: poor Yorick

  • Publish
    I love taking time-lapses with CHDK and your script looks like a good one. One of my favorites is a time-lapse of our annual labor day party/concert that I take every year (last year's: https://www.youtube.com/watch?v=qW0ARY5MOqY). I've tried a few of the different scripts, and I'm going to give yours a try this year. One question: Is there a way to delay the start or first shot of the script (so I could set up the camera out the night before but set it to wait ~6 hours (just before sunrise) before it starts shooting). I've tried that with other scripts, but without success.

    Thanks,
    Dave

     

    Related Topics