Author Topic: Mirror lock-up trick for handheld shots (poor man IS)  (Read 45323 times)

discocalculi

  • Freshman
  • **
  • Posts: 63
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #25 on: October 21, 2012, 03:10:10 PM »
There's Canon's proper MLU for that. This is for hand held shooting.

Yes, but as already noted, ML is superior the Canon mirror lock up since it only requires one click. With a delay of more than 1 seconds, it could actually become a replacer for the Canon function.

So I don't really understand why the function should be limited to hand held shooting only.


Francis

  • Hero Member
  • *****
  • Posts: 818
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #26 on: October 21, 2012, 08:37:17 PM »
Working great on 5d2. It's awesome to see new photo-specific features. This and exposure lock are fantastic.

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12564
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #27 on: October 22, 2012, 03:44:33 PM »
For longer delays, use the self-timer option (2s or 10s) - only one click.

ilguercio

  • Hero Member
  • *****
  • Posts: 845
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #28 on: October 22, 2012, 04:01:41 PM »
Got any idea for the 50D?
Canon EOS 6D, 60D, 50D.
Sigma 70-200 EX OS HSM, Sigma 70-200 Apo EX HSM, Samyang 14 2.8, Samyang 35 1.4, Samyang 85 1.4.
Proud supporter of Magic Lantern.

discocalculi

  • Freshman
  • **
  • Posts: 63
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #29 on: October 22, 2012, 04:58:21 PM »
For longer delays, use the self-timer option (2s or 10s) - only one click.

That's true and with a rather annoying blinking light as a bonus.

I know.. I can do like Canon and put some scotch over it.



Did some more tests yesterday and was able to get decent handheld shots at 1/60 iso 6400 800mm f/8 evening/night photos from across the street. I was also able to get pretty decent 1/4 iso 100 50mm f/2 indoor shots without much shake.

Two examples:

Iso 3200, 1/100 f/8.0 800mm mirror lens, hand held.

http://imageshack.us/a/img26/2183/img1468acr.jpg


Iso 12800, 1/160, f/8.0 800mm mirror lens, hand held.

http://imageshack.us/a/img853/6108/img1395acr.jpg


 

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12564
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #30 on: October 22, 2012, 05:18:33 PM »
@ilguercio: try the 5D2 ifdef. If that doesn't work, we'll have to troubleshoot it.

Can you try to find out whether mlu_take_pic is called? (do some LED blinking or print some message from there).

1%

  • Developer
  • Hero Member
  • *****
  • Posts: 5936
  • 600D/6D/50D/EOSM/7D
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #31 on: October 22, 2012, 05:47:37 PM »
On 600D both 5dII method and "release" method work the same.

M-AV-TV - 2 button presses to take photo.
P - Usually 1 button press to take photo.


a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12564
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #32 on: October 22, 2012, 05:55:00 PM »
It should always work with 1 button press to take the photo. However, the "mirror up" event may not always be detected correctly.

Here's some code to detect it:

1) enable cache hacks and add dm-spy.o to Makefile

2) patch debug.c as follows
Code: [Select]
--- a/src/debug.c Mon Oct 22 17:19:17 2012 +0300
+++ b/src/debug.c Mon Oct 22 18:50:17 2012 +0300
@@ -554,6 +554,10 @@
 
 void run_test()
 {
+    msleep(2000);
+    debug_intercept();
+    msleep(10000);
+    debug_intercept();
 }
 
 void run_in_separate_task(void (*priv)(void), int delta)
@@ -3583,7 +3587,7 @@
 
 void spy_event(struct event * event)
 {
-    if (get_draw_event())
+    if (1)
     {
         static int kev = 0;
         kev++;
@@ -3595,14 +3599,14 @@
             event->obj ? ((int)event->obj & 0xf0000000 ? (int)event->obj : *(int*)(event->obj + 4)) : 0,
             event->obj ? ((int)event->obj & 0xf0000000 ? (int)event->obj : *(int*)(event->obj + 8)) : 0,
             event->arg);
-       /* console_printf("Ev%d[%d]: p=%8x *o=%8x/%8x/%8x a=%8x\n",
+       DryosDebugMsg(0, 0, "Ev%d[%d]: p=%8x *o=%8x/%8x/%8x a=%8x\n",
             kev,
             event->type,
             event->param,
             event->obj ? ((int)event->obj & 0xf0000000 ? event->obj : *(uint32_t*)(event->obj)) : 0,
             event->obj ? ((int)event->obj & 0xf0000000 ? event->obj : *(uint32_t*)(event->obj + 4)) : 0,
             event->obj ? ((int)event->obj & 0xf0000000 ? event->obj : *(uint32_t*)(event->obj + 8)) : 0,
-            event->arg);*/
+            event->arg);
     }
 }

3) enable MLU from Canon menu, run "don't click me", then, after logging message, press shutter once. Mirror should go up. Wait until the debug log gets saved.

4) In dm.log, you should see something about mirror, and some events containing something similar to 0x80xx1. This condition should match the event code you find:
Code: [Select]
((MEM(event->obj) & 0xFFFFF00F) == 0x80001) // OK on 5D3, 5D2, 550D, 600D, 500D, maybe others

On 500D, the "release" method seems to work perfect.

Edit: the latest code contains a fix for 5D2 with manual lenses, maybe it fixes some problems on the other cameras too.

1%

  • Developer
  • Hero Member
  • *****
  • Posts: 5936
  • 600D/6D/50D/EOSM/7D
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #33 on: October 22, 2012, 06:09:18 PM »
This is what happens in AV mode:

http://pastebin.com/nQPZyZwk

in P mode

Anit-shake disabled, only canon mirror lockup:

Code: [Select]
SendPipeEvent [0][0][10]
   mirror_up 2
bindReceiveNewTFTOLC
GUI_Control:97 0xc63628
Ev52[0]: p=      61 *o=   80081/       2/  c63618 a=       8

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12564
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #34 on: October 22, 2012, 06:13:45 PM »
Okay, the event is 80087.

Maybe changing the mask to 0xFFFFF001 will do the trick? I'm not sure what's the meaning of this number, but I smell a bit field.

1%

  • Developer
  • Hero Member
  • *****
  • Posts: 5936
  • 600D/6D/50D/EOSM/7D
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #35 on: October 22, 2012, 06:19:59 PM »
Thanks! Changing the mask makes it work in all modes.

discocalculi

  • Freshman
  • **
  • Posts: 63
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #36 on: October 22, 2012, 06:44:40 PM »
This was rather surprising. More tests should be done before we can make any claims (Sigma image stabilizator, 2010-year old model)

http://imageshack.us/a/img585/8712/21963082.jpg

1%

  • Developer
  • Hero Member
  • *****
  • Posts: 5936
  • 600D/6D/50D/EOSM/7D
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #37 on: October 22, 2012, 09:20:38 PM »
That mirror adds a lot of shake. Also it probably takes care of anticipation issues/etc. Just like with shooting a gun.

engardeknave

  • Senior
  • ****
  • Posts: 339
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #38 on: October 23, 2012, 02:43:47 AM »
Can someone briefly explain the point of this when liveview seems to do the same thing? I am definitely missing something.

1%

  • Developer
  • Hero Member
  • *****
  • Posts: 5936
  • 600D/6D/50D/EOSM/7D
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #39 on: October 23, 2012, 03:16:35 AM »
Most people don't shoot photos in LV. LV doesn't do the same thing either, it drops the mirror. Look through the VF, you'll see it.

engardeknave

  • Senior
  • ****
  • Posts: 339
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #40 on: October 23, 2012, 04:15:29 AM »
I did on my 5D2. It doesn't drop the mirror.

1%

  • Developer
  • Hero Member
  • *****
  • Posts: 5936
  • 600D/6D/50D/EOSM/7D
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #41 on: October 23, 2012, 04:34:24 AM »
600D does, wonder what else doesn't.

Shizuka

  • New to the forum
  • *
  • Posts: 36
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #42 on: October 23, 2012, 05:03:47 AM »
I think the low end cameras have the shutter and mirror coupled together. So XXD and above cameras don't need to drop the mirror to actuate the shutter.

nanomad

  • Administrator
  • Hero Member
  • *****
  • Posts: 2918
  • All your websites are belong to us
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #43 on: October 23, 2012, 10:02:51 AM »
Well, the 1100D acts like the 600D and it sucks. And we have no MLU too  :(
EOS 1100D | EOS 650 (No, I didn't forget the D) | Ye Olde Canon EF Lenses ('87): 50 f/1.8 - 28 f/2.8 - 70-210 f/4 | EF-S 18-55 f/3.5-5.6 | Metz 36 AF-5

ilguercio

  • Hero Member
  • *****
  • Posts: 845
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #44 on: October 23, 2012, 02:35:26 PM »
Nothing new with these changesets. I'm working on some stuff this afternoon, maybe i can find some time to test something tonight.
Canon EOS 6D, 60D, 50D.
Sigma 70-200 EX OS HSM, Sigma 70-200 Apo EX HSM, Samyang 14 2.8, Samyang 35 1.4, Samyang 85 1.4.
Proud supporter of Magic Lantern.

1%

  • Developer
  • Hero Member
  • *****
  • Posts: 5936
  • 600D/6D/50D/EOSM/7D
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #45 on: October 23, 2012, 04:42:55 PM »
Do what I did and see what event it generates.

ilguercio

  • Hero Member
  • *****
  • Posts: 845
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #46 on: October 23, 2012, 06:38:11 PM »
Noy so sure i'm that expert already to do this :D
Canon EOS 6D, 60D, 50D.
Sigma 70-200 EX OS HSM, Sigma 70-200 Apo EX HSM, Samyang 14 2.8, Samyang 35 1.4, Samyang 85 1.4.
Proud supporter of Magic Lantern.

discocalculi

  • Freshman
  • **
  • Posts: 63
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #47 on: October 23, 2012, 07:00:51 PM »
Do what I did and see what event it generates.

I also want to test some but noticed that dm.spy.o was already in the makefile, but cant seem to get the cache hack to work correctly. I included #cache_hacks.h in boot-hack.c (noticed there's a lack of defined HIJACK_CACHE_HACK) also noticed that there's some problems with the debug_intercept ()

Patching the stuff A1ex posted was ok though, but cant compile.. any hints would be great.




nanomad

  • Administrator
  • Hero Member
  • *****
  • Posts: 2918
  • All your websites are belong to us
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #48 on: October 23, 2012, 07:01:16 PM »
Since the 1100D has no MLU Cfn I wonder if it possible to enable that feature with ML. Can anyone with ML trace the prop changes when switching MLU modes from canon menu?
EOS 1100D | EOS 650 (No, I didn't forget the D) | Ye Olde Canon EF Lenses ('87): 50 f/1.8 - 28 f/2.8 - 70-210 f/4 | EF-S 18-55 f/3.5-5.6 | Metz 36 AF-5

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12564
Re: Mirror lock-up trick for handheld shots (poor man IS)
« Reply #49 on: October 23, 2012, 07:04:21 PM »
5D3:
#define PROP_HTP 0x8000004a
#define PROP_MLU 0x80000047

I'm afraid most custom functions are camera-specific (you can find them on camera review sites).