Full-resolution silent pictures (silent.mo)

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

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

nikfreak

Yes that one works for 70D now, too.
*-button still takes the pic but AF-ON now focuses as it should and it's printing "Focusing...." on screen while pressing AF-ON
[size=8pt]70D.112 & 100D.101[/size]

Licaon_Kter

Quote from: a1ex on March 13, 2015, 10:18:05 PMWorks pretty good, but AF is triggered a few ms later than the half-shutter press event. So, I had to wait 4 LiveView frames, that is, about 0.13 seconds of extra shutter lag if you use autofocus.
Not working on my M1, I get a "Hold on..." and a unfocus silent picture is taken, that is using the * and any C.FnIV option.

a1ex

Boo. Can you print the values of lv_focus_status when focusing and when idle?

Licaon_Kter

Quote from: a1ex on March 15, 2015, 10:25:37 PM
Boo. Can you print the values of lv_focus_status when focusing and when idle?
How do I do that?

In the mean time, I messed around silent.c, in line 1343 I got wait_lv_frames(4); bumped to 20, which gives me:
1. on a * single press -> "Hold on..." -> snaps pic (unfocused!)
2. on a * hold -> "Hold on..." flashes quickly-> "Focusing..." and it just sits here forever with LV on BUT it does AF as it should -> a half-shutter press or a single * press snaps a pic (FOCUSED!)

compare that with your code now at 4:
1. on a * single press -> "Hold on..." -> snaps pic (unfocused!)
2. on a * hold -> "Hold on..." flashes quickly-> "Half-shutter pressed..." is written on a black screen and it just sits here forever WITH the AF light on, and rising my finger off the * will snap a pic (unfocused!)

a1ex

You can print things with bmp_printf or NotifyBox, or simply printf.

The behavior after bumping sounds about right.

On 60D, when pressing AF-ON for about 1 second to focus, the behavior was like this:
- with 2 it worked in roughly 2/3 of situations (that is, it did not take a picture, but focused properly)
- with 3 it worked in most cases, but there were isolated cases (say 1 out of 10) where it took a picture instead of focusing
- with 4 it focused every time.

I think it's worth trying smaller values like 5 or 6.

About short presses, I'm not sure what I can do.

Licaon_Kter

Quote from: a1ex on March 16, 2015, 12:32:32 AMYou can print things with bmp_printf or NotifyBox, or simply printf.
Right, I saw that in your code, I'll try.

Quote from: a1ex on March 16, 2015, 12:32:32 AMI think it's worth trying smaller values like 5 or 6.
I'll do this next, at first I though I go up to 10 but then I wanted it to be really long just to be sure my 22mm (non-USM, non-IS) that I test with has time to hum along, now what I do what to know is at 20 it should take I picture by itself eventually or did I read this wrong? If so, how long it should take?

Quote from: a1ex on March 16, 2015, 12:32:32 AMAbout short presses, I'm not sure what I can do.
Actually it's better now, having a way to AF is more important. Although I would still like a way to select other button ( like REC/INFO/SET/whatever ) and leave * alone only for AF, as far as I can see this should be possible by replacing get_half_shutter_pressed() with a custom get_silent_button() or something.


And another thing, on this branch now raw_rec and dual_iso modules fail to build:
Building module raw_rec...
Updated HGVERSION
[ README   ]   module_strings.h
[ CC       ]   raw_rec.o
[ MODULE   ]   raw_rec.mo
[ STRIP    ]   raw_rec.mo
[ EXPORTS  ]   raw_rec.sym
00001960 raw_video_enabled
00001988 raw_movie_filename
[ DEPENDS  ]   raw_rec.dep
Will load on:
    EOSM
Not checked (compile ML for these cameras first):
    1100D, 500D, 50D, 550D, 5D2, 5D3, 600D, 60D, 650D, 6D, 700D, 7D
[ GCC      ]   raw2dng
../../src/chdk-dng.c: In function 'save_dng':
../../src/chdk-dng.c:763:9: warning: implicit declaration of function 'FIO_RemoveFile' [-Wimplicit-function-declaration]
         FIO_RemoveFile(filename);
         ^
[ GCC      ]   raw2dng
[ GCC      ]   raw2dng
chdk-dng.o: In function `save_dng':
chdk-dng.c:(.text+0x17f8): undefined reference to `FIO_RemoveFile'
collect2: error: ld returned 1 exit status
Makefile:13: recipe for target 'raw2dng' failed
make[4]: *** [raw2dng] Error 1
andBuilding module dual_iso...
Updated HGVERSION
[ README   ]   module_strings.h
[ CC       ]   dual_iso.o
[ MODULE   ]   dual_iso.mo
[ STRIP    ]   dual_iso.mo
[ EXPORTS  ]   dual_iso.sym
0000136c dual_iso_calc_dr_improvement
000013c4 dual_iso_set_enabled
000013e4 dual_iso_is_enabled
000013f4 dual_iso_is_active
00001414 dual_iso_get_dr_improvement
00001594 dual_iso_get_recovery_iso
000015b4 dual_iso_set_recovery_iso
[ DEPENDS  ]   dual_iso.dep
Will load on:
    EOSM
Not checked (compile ML for these cameras first):
    1100D, 500D, 50D, 550D, 5D2, 5D3, 600D, 60D, 650D, 6D, 700D, 7D
[ gcc      ]   cr2hdr
../../src/chdk-dng.c: In function 'save_dng':
../../src/chdk-dng.c:763:9: warning: implicit declaration of function 'FIO_RemoveFile' [-Wimplicit-function-declaration]
         FIO_RemoveFile(filename);
         ^
/tmp/ccAsd4aT.o: In function `save_dng':
chdk-dng.c:(.text+0x17f8): undefined reference to `FIO_RemoveFile'
collect2: error: ld returned 1 exit status
Makefile.cr2hdr:16: recipe for target 'cr2hdr' failed
make[4]: *** [cr2hdr] Error 1
i guess you need to add some defines in chdk-dng.c to the save_dng function to separate in camera and desktop modes since this commit https://bitbucket.org/hudson/magic-lantern/commits/9e99764f432025872286f87d5b7e10014061277f?at=fullres-silent-pics ?
Now, I believe raw_rec can be ignored as is superseeded by mlv_rec anyway, right?

/LE:
Got to build it with multiple values:
To work C.FnIV must be set as 1 or 3.
"Hold on..." has lv_focus_status=1
"Half-shutter pressed..." has lv_focus_status=1
"Focusing..." has lv_focus_status=3 when the lens is focusing and lv_focus_status=1 when idle, it jumps between these values as you change focus point and hold * again.
wait_lv_frames = 4 or 6 never gets to "Focusing..."
wait_lv_frames = 8 gets "Focusing..." sometimes
wait_lv_frames > 10 gets "Focusing..." every timeYou need to select a focus point or else it does not work, it took me a while to get this, being used with the Canon software since it has some sort of default point anyway. :D

a1ex

Quotewait_lv_frames > 10 gets "Focusing..." every time

The value is higher than expected; does this mean there is a noticeable delay between pressing the button and focusing?

Another hypothesis: what FPS do you have in LiveView in photo mode? IIRC it's 60 on the EOS-M, and 30 on most other cameras.

Quoteevery time you need to select a focus point or else it does not work

If you don't select a focus point, what happens? It stays on 1?

Good catch about compiling errors.

Licaon_Kter

Quote from: a1ex on March 16, 2015, 08:04:01 AMThe value is higher than expected; does this mean there is a noticeable delay between pressing the button and focusing?
Not that I see, given the 22mm is slow(ish).


Quote from: a1ex on March 16, 2015, 08:04:01 AMAnother hypothesis: what FPS do you have in LiveView in photo mode? IIRC it's 60 on the EOS-M, and 30 on most other cameras.
How do I see the FPS?


Quote from: a1ex on March 16, 2015, 08:04:01 AMIf you don't select a focus point, what happens? It stays on 1?
Yep, behaves like wait_lv_frames = 4 does for me.


On another thought, I can't repro the success with wait_lv_frames = 10 anymore.
I was testing in a dark room in the previous post, but now in daytime light it just does not focus. I bumped it to 15 and it's better but it still misses sometimes, might depend on whether the AF says it's got focus faster or something?
Also, after it starts, even if C.FnIV is on 1 or 3 it will not engage Focus unless I change the mode, say from 1 to 3 and back, after that it works.

a1ex

I think instead of waiting X frames and then waiting for focus, we need to check the focus status after each frame.

FPS is easy to check, open the FPS override submenu, but don't enable the feature (just read the default configuration).

Licaon_Kter

Quote from: a1ex on March 16, 2015, 11:55:59 AM
FPS is easy to check, open the FPS override submenu, but don't enable the feature (just read the default configuration).
29.9xx

eloml

Hi,
I recently started using ML on a 1100D for astrophotography. Great!
To gain more flexibility towards short but frequent exposures, I would like to use the silent mode.
Therefore, I installed Cygwin/Yagarto as described in http://magiclantern.wikia.com/wiki/Build_instructions/Unified and downloaded the fullres-silent-pics branch (hudson-magic-lantern-e6e97539f082.zip).
I failed, however, to compile because of this error: "Makefile.filerules:33: rule for destination ,,entry.o" failed" (translated from the german message, possibly not exactly correct). I found that entry.d was built, but not entry.o. When I executed the build command manually, gcc (4.6.2) also created entry.d, but not entry.o - without error message.
Since I'm not familiar with unix, I don't understand what happens, but it looks to me a bit like a compatibility problem. Is the Cygwin/Yagarto setup still up-to-date?

Licaon_Kter

Quote from: eloml on March 20, 2015, 09:13:53 PMI recently started using ML on a 1100D for astrophotography.
I would like to use the silent mode.
You can't, it's not supported: http://builds.magiclantern.fm/#/features


Trying to compile it yields:

Will NOT load on:
    1100D (raw_lv_redirect_edmac, raw_lv_request, raw_lv_settings_still_valid, raw_lv_release)


nielsgeode

Maybe a dumb question, but I just installed the latest nightly build on my 5D3 and in the drop down options menu of the silent mode the "full res" option is missing. The last option is slit-scan. Is the full-res mode already included or am I missing something?

Thanx!
Niels

Walter Schulz

Not included in nightly builds yet. You may compile it by yourself or use a silent.mo made available for download. You have to search a bit in this thread or wait a little longer.

dmilligan

@eloml

silent.mo doesn't compile on 1100D because the LV raw data is not available on 1100D. The full-res stuff doesn't actually need raw LV. So you can WEAK_FUNC those functions. The module will compile and you can use full-res mode, but none of the other modes will work. You can also try merging the 'new-lv-buffer-detection' branch which has support for LV raw on 1100D, but it is incomplete and quite out of date, so you will lots of merge conflicts.

Licaon_Kter


Quote from: nielsgeode on March 20, 2015, 10:08:38 PMMaybe a dumb question, but I just installed the latest nightly build on my 5D3 and in the drop down options menu of the silent mode the "full res" option is missing.
Here is a build for 5D3 with firmware 1.1.3: http://we.tl/WTYtLFJv98
Info about the build here: http://www.magiclantern.fm/forum/index.php?topic=9741.msg142766#msg142766


If you are using firmware 1.2.3 you are out of luck for now, as it's has a separate branch and I'm not that brave to try and merge it with the FRSP one :D


/LE:


Disclaimer:
I don't have anything else besides a M1, but I can compile ML, so keep in mind the warning on top of this page: http://magiclantern.fm/downloads.html STILL applies if you choose to install one of these builds.

DeafEyeJedi

Thanks for sharing @Licaon_Kter and will definitely check it out.

Hopefully at the hotel that I'm staying at in PR will have computers with USB so I can download and test it out w 5D3 113.

If not, then I'll have to wait till I get back into USA on the 27th. (Wife wouldn't allow me to bring MBP on vacation w me - LOL)

However, I already have one compiled from a week or two ago not sure if it'll be the same but since it came from the same branch in which I'm sure it is.

[emoji108]
5D3.113 | 5D3.123 | EOSM.203 | 7D.203 | 70D.112 | 100D.101 | EOSM2.* | 50D.109

SpcCb

QuoteI recently started using ML on a 1100D for astrophotography. Great!
To gain more flexibility towards short but frequent exposures, I would like to use the silent mode.
Do you plan to use it for planetary or deepsky imaging?
Because there's no significant gain to use FRSP for astrophotography; too slow for planetary and not relevant about mechanical stress vs sensor heating for deepsky.

eloml

QuoteDo you plan to use it for planetary or deepsky imaging?
For planetary imaging the raw video feature should be useful, but since it's not really available for the 1100D (yet?) I postponed this.
I plan to use the silent mode for bright deepsky objects, e.g. globular clusters, for which exposure times well below a minute are sufficient, at least at high ISOs. (Surprisingly, I found that stripe like artefacts, which look like those produced by CCD readout amplifiers, are not amplified proportionally when I increase the ISO value. Therefore, I prefer to set ISO to 3200, take a large number of images (hundreds to thousands a night), and stack them.)

SpcCb

I see, for bright deepsky objects _indeed_ FRSP looks interesting.
However live view will be active during all acquisitions time so the thermal signal will be very high on frames. Sensor will reach 45~50°C (loc.temp.<10°C) in a few time and it will be very hard to reduce it with calibration even with hundreds of dark frames, because temperature rising is not linear and not stable during acquisitions. Plus bias frames are a bit... tricky to make in FRSP (see the minimum exposure time what you can expect, it depends of your camera) so the FPN + offset reduction is not perfect. :/

eloml

Does LiveView heat the sensor also during regular intervalometer / bulb timer shooting? At least during cold nights during the last weeks here, the results I got were not so bad despite I had actived LiveView permanently. Mostly, the final limitation for resolution was due to bright skies or amp glow of the 1100D.

Anyway, here comes into play the biggest advantage of the 1100D: Its low price. I plan to disassemble the body in order to remove the filters and perhaps the mirror, which starts to shadow at F/4 or below. Thereby, I plan to insert a peltier like I did earlier with an IXUS.

dmilligan

Quote from: SpcCb on March 23, 2015, 03:24:56 AM
However live view will be active during all acquisitions time
That's not true. FRSP runs in "LV mode" so that the shutter is open, but LV itself is disabled during acquisition, and you could have disabled the whole time if you wanted.

Licaon_Kter

Updated my M1 build again


@a1ex: What's holding this branch from merging in master?


If there's a need for more testers I can build it for some cameras, as needed ( well except off branch ones like 5D3 1.2.3 :D )

SpcCb

QuoteThat's not true. FRSP runs in "LV mode" so that the shutter is open, but LV itself is disabled during acquisition, and you could have disabled the whole time if you wanted.
We can open the shutter and take FRSP without activated the LV? o.O
My mistake, I never could do this on the 5D2; I have to activate the LV to open the shutter and get access to FRSP. What version do you use?

Of course, if the LV _I mean flux processing made by DIGIC and screen_ is off it should not heat too much face to regular RAW pictures.
Stays the problem of bias frames BTW...

dmilligan

LV cannot be running during the call to FA_CaptureTestImage, otherwise it won't work. You enter LV "mode" (to get the shutter open), but when you actually take a pic, FSRP disables LV.

    /* get out of LiveView, but leave the shutter open */
    PauseLiveView();


It then turns LV back on after QR, but if you're shooting a time lapse for example with a short enough interval between shoots, you'll probably never get back into LV. Therefore LV is effectively not running at all, even though you are in LV "mode"