Full-resolution silent pictures (silent.mo)

Started by a1ex, July 01, 2014, 05:11:15 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.



FYI: I just released the newest public version (s1.14) of my Arduino focus stacking macro rail software, "Fast Stacker", which (among other things) adds support for FRSP + external flash. The feature seems to be stable and fully usable now - I used it to generate a few 300-shots focus stacks (using an external flash), for example (ugly bug alert!): https://www.flickr.com/photos/99745838@N03/25384340795 . More details here:


I'll probably make a short youtube video demonstrating FRSP + flash + Fast Stacker in action.

a1ex and other contributors: thanks a lot for this very useful feature!


I've been experimenting with Full Res Silent Picture, using DNG, on my EOS-M.

So far all looks fine. I've been using a shutter of about 2 secs and all seems to come out OK in LR.

The 'problem' I've encountered is that the camera screen goes blank and I've no idea when the silent mode picture taking is complete. Obviously, I've left things for many seconds beyond the shutter time, but the screen remains blank.

However, as soon as I do another half press, the camera returns to normal.

Can someone suggest what I'm 'doing wrong', or is this how silent mode works?


Is image review enabled in Canon menu?





I other words, with the Canon review on, say, 2s, I get the review screen and the ML feedback (top left) about the silent picture that was taken. Then the screen goes blank.

Without the Canon review on, the screen is 'just' blank and, of course, no silent feedback.

What I would suggest should be an option that silent should return the camera to the state before the silent half shutter initiation. At the moment the user (me) has no feedback that the camera is ready for taking the next image. That is, silent shouldn't 'just' be for timelapsers  ;)

BTW I have tried using both DNG and MLV and both behave the same, ie the camera goes to a blank screen state after the silent image capture and only returns to its pre-silent state after I do another half shutter press.


That's it - after the screen goes blank, it's ready.

Actually, it's ready a little earlier - as soon as it prints "Saved" on the screen.

Press the shutter halfway to return to LiveView, or try a long half-shutter press to take another picture right away.


Ok A1ex thanks. Now I know how it works I'll work around this.

I'm looking to see how FRSP works in a Lua environment and will post some feedback soon.



BTW I note the spam delay is on, even for trusted members, ie we all have to wait 900 sec between post. I hope we move to a trusted user list soon  ;) Strange this post, posted straight away


An update: I've been using FRSP + external flash (for extreme macro stacking; ~200-300 shots in a stack) successfully with Canon 50D and my DIY Arduino stacking rail Fast Stacker, for some time now. The good timing parameters (using Lexar 1000 card) are:  camera exposure 1/4s, flash delay (after initiating the shot) 1.1s, minimum delay between shots 5.5s. The FRSP is fully supported in my most recent rail software version, s1.14. For this to work you need an adapter like this:

FRSP adapter by First Last, on Flickr

I just finished writing a detailed tutorial on how to find proper values of the three timing parameters, for any  camera model:



How do I get the menu from the picture below that was posted by Greg some time ago? The Start, Shots, Delay and Dual ISO are not in my menu, I only get the first 3 entries. I use the latest nightlies on my 50D and 60D.

Should I compile Greg's fork? Or should I get a custom silent.mo module from somewhere? Or is this some unfinished work?


Quote from: vroem on March 26, 2016, 12:55:18 PM
How do I get the menu from the picture below that was posted by Greg some time ago? ]
better ask @Greg directly... and do comeback with the answer and a Pull Request too :P


Currently, I do not have Canon camera, so it will not be possible.


My understanding is that when FRSP is enabled the shutter control (full-pressed shutter trigger) serves no useful purpose, and in fact is harmful (if you accidentally trigger it it will mess up with FRSP picture taking) - correct?

Is it possible then to disable the shutter control in Live View when FRSP is enabled? Only half-press (AF control) would be left operational.


IIRC, it does take a *normal* picture, as expected.


I thought I was reading somewhere in this thread that this (taking a "normal" picture when FRSP is on) can lock your camera, and at the very least it wasn't recommended.


To block the shutter button, take a look at srm_shutter_lock / srm_shutter_unlock from exmem.c.

However, these also block the half-shutter event, not just the full shutter press.

The only method I know that blocks just the full press, not the half press, would be to allocate the entire SRM memory - that way, Canon code would print BUSY on the screen and refuse to take a picture. This memory would have to be freed before calling FA_CreateTestImage. Not very nice.

The current method is to allow both events, and indeed, there is a race condition between them. If you press the shutter button quickly, it takes a normal picture (and the full-res silent code gives up). If you press the shutter halfway and hold it for a while, the shutter button actually gets blocked (right after pausing LiveView). As soon as you release it, the full-res picture is taken.

It's not perfect, but I wasn't able to crash it by pressing full-shutter, after implementing this workaround. But I didn't try too hard :D



is there a way to take night stars silent full res MLV pictures with the ML intervalometer ?

I'm using a 11mm f2.8 lense, so it gives me a 30ish sec exposure if I want to avoid stars motion.
I read in the 1st post that taking picture > 15sec is not OK

is it still true ?



I am on manual mode, manual focus, shutter speed slower than 1/10 but the full resolution option is not working. Every option is working (SImple, burst, etc) except the full resolution mode. Am I missing something? I am using 50D Nightly.2016Apr28.50D109


Have you selected MLV format? Then you need to load the mlv_rec module to get full res silent pictures working.


Thanks for the reply. Found out that I need to change LV settings on the canon menu.


Updated ML, but seems like one problem still there. Or maybe I just doing something wrong. Every time, dose not matter what aperture I will set, it will all the the time be wide open. Are there any option to control aperture shooting full res. silent photos? Thanks for help.

Walter Schulz

Please go to first page of this thread and read first post.


Maybe someone will be interested.

FRSP Burst code:
static void frsp_burst()
    struct JobClass * job1 = (void*) call("FA_CreateTestImage");
    struct JobClass * job2 = (void*) call("FA_CreateTestImage");
    struct JobClass * job3 = (void*) call("FA_CreateTestImage");
    struct JobClass * job4 = (void*) call("FA_CreateTestImage");

    void* buf1 = (void*) call("FA_GetCrawBuf", job1);
    void* buf2 = (void*) call("FA_GetCrawBuf", job2);
    void* buf3 = (void*) call("FA_GetCrawBuf", job3);
    void* buf4 = (void*) call("FA_GetCrawBuf", job4);

    call("FA_CaptureTestImage", job1);
    call("FA_CaptureTestImage", job2);
    call("FA_CaptureTestImage", job3);
    call("FA_CaptureTestImage", job4);
    int new_gui = GUISTATE_QR;
    prop_request_change_wait(PROP_GUI_STATE, &new_gui, 4, 1000);
    raw_info.buffer = buf1;
    silent_pic_save_file(&raw_info, 0);
    raw_info.buffer = buf2;
    silent_pic_save_file(&raw_info, 0);
    raw_info.buffer = buf3;
    silent_pic_save_file(&raw_info, 0);
    raw_info.buffer = buf4;
    silent_pic_save_file(&raw_info, 0);
    call("FA_DeleteTestImage", job1);
    call("FA_DeleteTestImage", job2);
    call("FA_DeleteTestImage", job3);
    call("FA_DeleteTestImage", job4);


FRSP full speed burst - rolling shutter, delay
(camera 500D, shutter values Canon menu)

HTML test code :
<!doctype html><html><head><meta charset="utf-8"><style>body{background-color:#ddd;margin:0;padding:0}@keyframes example{0%,100%{left:20px}50%{left:calc(100% - 70px)}}.zxz{width:50px;height:100%;position:absolute;background-color:#000;animation-name:example;animation-duration:40s;animation-timing-function:linear;animation-iteration-count:infinite}</style></head><body><div class="zxz"></div></body></html>

A 1/500, B 1/500, C = A+B

A 1/100, B 1/100, C = A+B

A 1/50, B 1/50, C = A+B

A 1/25, B 1/25, C = A+B

A 1/4, B 1/4, C = A+B

A 1s, B 1s, C = A+B

A 2s, B 2s, C = A+B

Simulation of the profit when rewrite FA_CaptureTestImage
(500D 20ms delay, newer cameras 40ms)

averaged 3 frames 1/500s

For faster cameras it might make sense.


I'm trying to remove Canon msleep in FA_CaptureTestImage without rewriting function.

cache_fake :
0xe3a0000b (2 x 11 msleep) 1/4000s 338ms
0xe3a0000a (2 x 10 msleep) 1/4000s 329ms //default
0xe3a00000 (2 x 0  msleep) 1/4000s 329ms
0xe3a00001 (2 x 1  msleep) 1/4000s 329ms
0xe3a00004 (2 x 4  msleep) 1/4000s 329ms
0xe3a00032 (2 x 50 msleep) 1/4000s 396ms
0xe3a03000 (2 x 0  msleep) 1/4000s 321ms //other variable, work but profit only 8ms