[ALREADY DONE] Sticky Shutter?

Started by lapser, February 08, 2015, 10:56:34 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

lapser

I'd like to be able to just hold the shutter down with Magic Lantern in continuous mode. This is especially useful for astro-photography since it displays the last shot on the screen, and takes pictures as fast as possible.

I have tried using the intervalometer in continuous mode set to "like crazy" speed. It works, but I can't stop the intervalometer without taking the battery out (EOS-M). Unfortunately, you lose all the pictures if you do this in continuous mode without letting up the shutter.

I was able to get the intervalometer to stop on one occasion, after pressing buttons for awhile (like crazy). The result was this time lapse of a meteor shower:

https://www.youtube.com/watch?v=_J5pdnryqts

However, the next time I tried it, I couldn't get it to stop and had to pull the battery out. I ended up losing several hundred shots of Comet Lovejoy :(

For now, I've been holding the shutter down with a small bar clamp, which does what I want at least. But it would be so much better to hold the shutter down in software.

I notice that there is a "sticky half shutter" feature. Would it be possible to add a "sticky shutter" for continuous mode?


a1ex

If the power switch doesn't work, try opening the card door, or press the shutter halfway a few times, or try getting into Canon menu. I'm not sure what will work on EOS-M, since I don't have one.

If nothing works, just set the intervalometer to stop after N pictures.

Then change the title to "already done".

lapser

Thanks for the reply. I tried everything you said on the EOS-M and nothing worked. I can't risk using the intervalometer again in continuous and losing more pictures. I also can't use a count, since I'm running the camera overnight and/or don't know when I want to leave.

So a simple sticky shutter feature would be what I need. I've done a fair amount of CHDK programming, and this would be trivial in CHDK with a script. Is it possible in Magic Lantern?

Thanks again.

a1ex

FYI, the "like crazy" implementation is by holding the shutter pressed in software.

In this case, you have to figure out why is not stopping. I suggest checking whether you can get any button events (which can be used to stop the intervalometer). If you have the display active while the shutter is pressed, use Debug -> Show GUI events.

lapser

Quote from: a1ex on February 09, 2015, 07:52:04 AM
FYI, the "like crazy" implementation is by holding the shutter pressed in software.
Thanks! I also figured that out from looking through the code in shoot.c last night.

       // continuous mode - simply hold shutter pressed
        int f0 = get_shooting_card()->file_number;
        SW1(1,100);
        SW2(1,100);
        while (MOD(f0 + number - get_shooting_card()->file_number + 10, 10000) > 10 && get_halfshutter_pressed()) {
            msleep(10);
        }
        SW2(0,100);
        SW1(0,100);

The good news is that it's checking halfshutter in the loop. So I discovered that I can stop the intervalometer by pressing and releasing the shutter button (all the way down). From the code, this looks like the only way to stop it when you're in continuous mode (except for opening the door).

I tried opening the door in single shot and continuous and that does stop it without losing pictures. However, on the EOSM, I use an external battery. The connector goes through the door, so you can't open it without suddenly disconnecting the power. That's when you lose pictures.

So this one IS solved now. Many thanks for your replies.

Summary: To stop intervalometer in continuous mode with 0 interval (like crazy) press and release the shutter button (all the way down).

Note, after the intervalometer stops, enter and exit the Magic Lantern menu (press and hold <DOWN> on the EOSM) to re-activate the camera buttons.


a1ex

Cool find. To double-check if opening the card door may result in corrupted files, can you check whether it performs a full shutdown when you open it? It's easy to tell - after a bad shutdown, ML will not load any modules, and will print a warning instead.

Quote from: lapser on February 09, 2015, 05:34:56 PM
Note, after the intervalometer stops, enter and exit the Magic Lantern menu (press and hold <DOWN> on the EOSM) to re-activate the camera buttons.

That's an interesting quirk - some of the buttons remain locked? Will try to reproduce on my cameras.

BTW, are you @lapser from CHDK forum?

lapser

Quote from: a1ex on February 09, 2015, 06:43:12 PM
Cool find. To double-check if opening the card door may result in corrupted files, can you check whether it performs a full shutdown when you open it? It's easy to tell - after a bad shutdown, ML will not load any modules, and will print a warning instead.
Opening the door with an internal battery installed does a normal shutdown (with beeping), and a normal reboot. All photos are saved (except the photo in progress when you open the door).

Unplugging an external battery results in loss of all photos and ML warning and skipping modules on reboot.
Quote
That's an interesting quirk - some of the buttons remain locked? Will try to reproduce on my cameras.
I think it's because the intervalometer isn't stopped when you interrupt continuous mode. It looks like you should add this right after the wait loop:

canceled=1;

You always want to stop the intervalometer after exiting that loop, don't you?
==

What happens on the EOSM is that <MENU>,<SET>,<PLAY>,<VIDEO>,<INFO>, and <SHUTTER> are inactive. The cursor keys and jog dial ARE active. Holding the <DOWN> key goes into the ML menu, and activates all the buttons again. Pressing <UP> restarts the pictures (i.e. intervalometer is still running).
Quote
BTW, are you @lapser from CHDK forum?
Yes, that's me. I bought an EOSM to hook to a telescope for astronomy, since all the CHDK cameras have fixed lenses.


lapser

OK, I was able to add the "canceled=1" statement and compile for the EOSM.

The buttons are still disabled after pressing the shutter to exit the intervalometer in continuous mode. However, now pressing <UP> triggers the "Intervalometer stopped" message and re-activates the buttons, without re-starting taking pictures.

Pressing and holding <DOWN> still enters the menu and re-activates the buttons. But now it displays the "Intervalometer stopped" message.

I wonder if this behavior happens with other cameras? These were my settings:

Set continuous mode / manual exposure / 4 second shutter
Intervalometer 0 (like crazy) / half-shutter trigger / start after: 1 second / stop after: disabled

Start intervalometer (half shutter) / take a few pictures / press shutter all the way down and release to cancel intervalometer (hopefully).

Then see if <MENU> and other keys work. Try pressing <UP> to see if the intervalometer re-starts taking pictures. Or try pressing and holding <DOWN> to enter ML menu (or your camera equivalent) to see if it re-activates the buttons.

Audionut

I've only ever used "exit menu" trigger, and for me on 5D3/6D, bashing the keys is generally enough to stop the sequence.  If I absolutely know I want to be able to stop the sequence, I generally set an delay of 1s.  Otherwise for my situations, I just set it to stop after n images.  I've never used the shutter button to stop the sequence before.

Power off always works obviously, but as you note, you lose the current image, and resetting all the ADTG parameters can be an PITA.