(...)Very nice. ;D
If you call these routines without going to LiveView first, the result will be a dark frame (interesting for astro - you can take 300 dark frames without wearing the shutter mechanism).
(...)So it is a solution for time-lapses, not really for astronomy (15s is a bit short), for the moment.
Limitations
- The fastest shutter speed I've got is around 1/10 seconds (very rough estimation by comparing brightness from a regular picture). With regular pictures, faster speeds are done via mechanical shutter actuation.
- Long exposures are fine up to 15 seconds (longer exposures will crash the camera).
(...)
I could think of some useful cases in conjunction with flash to bypass some restritions with flash sync speed...
I believe binning is hardwired directly on the CMOS chip (here's a hint from Chipworks (http://www.chipworks.com/en/technical-competitive-analysis/resources/blog/full-frame-dslr-cameras-canon-stays-the-course/), which seems to agree with my experiments).
If you would do it in software, I expect several seconds for one image.
I wish this could work in bolt trigger module, I only need 1 picture recorded when strike is detected, but is it even possible to make use of the detection method with this way of doing it? I think it works by using a ring buffer till a white level in the live view is changed which forces a save on that frame.
Exposure range : 1/59.97 ... 1/3.86
Rolling shutter : 0.24 seconds
@a1ex je ne sais pas comment compiler ces modules . peut-tu le faire pour moi stp ? je veut tester ça .. Canon 5d mark III 1.2.3
- I won't include it in the nightly builds at this stage; early adopters will have to compile it themselves.
How do I install it?
Compile ML (both core and silent.mo) from the fullres-silent-pics (https://bitbucket.org/hudson/magic-lantern/branch/fullres-silent-pics) branch. For 5D3-123, merge the two branches locally first.
If you get a compile error in raw.c, see the porting notes below, find the missing values for your camera, and submit a pull request to the fullres-silent-pics branch.
Porting notes
- RAW_PHOTO_EDMAC needs to be changed on all cameras (see these comments in raw.c (https://bitbucket.org/hudson/magic-lantern/commits/a0a2afea2d57))
- Skip offsets for photo mode will have to be re-calibrated (example (https://bitbucket.org/hudson/magic-lantern/commits/33a03bef1998)). Fortunately, it's much easier these days: download raw_diag.mo (http://a1ex.magiclantern.fm/bleeding-edge/raw_diag.mo), select the "OB zones" option, and adjust the offsets until you get the following picture (note the cyan box being just inside the noisy borders):
Could this discovery lead to higher resolutions of Raw video in full sensor mode?
From the first post:
4K video?
Too early to ask. Find a way to speed up the capture process first (see the research section below).
However, I don't really expect more than 10 fps (in LV crop mode on 5D3, 1/3.6 of the total sensor area is sampled at 30fps). If you implement a burst mode from the current code base, you'll get up to 5 fps.
// Full-Res Silent Pictures //
#include <module.h>
#include <dryos.h>
#include <bmp.h>
#include <menu.h>
#include <config.h>
#include <property.h>
#include <raw.h>
#include <shoot.h>
#include <zebra.h>
#include <beep.h>
#include <lens.h>
static int full_res_enabled = 0;
static int save = 0;
static char* silent_pic_get_name()
{
static char imgname[100];
char *extension = "DNG";
int file_number = get_shooting_card()->file_number;
char pattern[100];
snprintf(pattern, sizeof(pattern), "%s/%04d%%04d.%s", get_dcim_dir(), file_number, 0, extension);
get_numbered_file_name(pattern, 9999, imgname, sizeof(imgname));
bmp_printf(FONT_MED, 0, 35, "%s ", imgname);
return imgname;
}
static void silent_pic_save_dng(char* filename, struct raw_info * raw_info)
{
save_dng(filename, raw_info);
}
static void capture()
{
while(1)
{
if(full_res_enabled)
{
PauseLiveView();
clrscr();
vram_clear_lv();
struct JobClass * job1 = (void*) call("FA_CreateTestImage");
call("FA_CaptureTestImage", job1);
call("FA_DeleteTestImage", job1);
}
if(full_res_enabled && get_halfshutter_pressed())
{
save = 1;
break;
}
}
if(full_res_enabled && save == 1)
{
save = 0;
void raw_buffer_intercept_from_stateobj();
raw_buffer_intercept_from_stateobj();
int new_gui = GUISTATE_QR;
prop_request_change_wait(PROP_GUI_STATE, &new_gui, 4, 1000);
/* preview the raw image */
raw_set_dirty();
raw_update_params();
clrscr();
raw_preview_fast();
/* prepare to save the file */
struct raw_info local_raw_info = raw_info;
/* leave some time for overlays to get displayed */
/* (fixme: saving the DNG will destroy the contents of the raw buffer) */
//msleep(2000);
/* save the raw image as DNG */
char* fn = silent_pic_get_name();
bmp_printf(FONT_MED, 0, 60, "Saving %d x %d...", local_raw_info.jpeg.width, local_raw_info.jpeg.height);
silent_pic_save_dng(fn, &local_raw_info);
bmp_printf(FONT_MED, 0, 60, "Saved %d x %d. ", local_raw_info.jpeg.width, local_raw_info.jpeg.height);
msleep(10);
}
return;
}
static void full_res_enable()
{
/* toggle the lv_save_raw flag from raw.c */
raw_lv_request();
capture();
msleep(50);
}
static void full_res_disable()
{
raw_lv_release();
}
static void raw_lv_request_update()
{
static int raw_lv_requested = 0;
if (full_res_enabled && lv && is_movie_mode())
{
if (!raw_lv_requested)
{
full_res_enable();
raw_lv_requested = 1;
}
}
else
{
if (raw_lv_requested)
{
full_res_disable();
raw_lv_requested = 0;
}
}
}
static unsigned int capture_loop_cbr()
{
raw_lv_request_update();
if (!full_res_enabled)
{
return 0;
}
if (!lv || !is_movie_mode())
{
return 0;
}
return 0;
}
static struct menu_entry res_menu[] = {
{
.name = "FullResDNG",
.priv = &full_res_enabled,
.max = 1,
.depends_on = DEP_LIVEVIEW,
},
};
static unsigned int full_res_init()
{
menu_add("Shoot", res_menu, COUNT(res_menu));
return 0;
}
static unsigned int full_res_deinit()
{
return 0;
}
MODULE_INFO_START()
MODULE_INIT(full_res_init)
MODULE_DEINIT(full_res_deinit)
MODULE_INFO_END()
MODULE_CBRS_START()
MODULE_CBR(CBR_SHOOT_TASK, capture_loop_cbr, 0)
MODULE_CBRS_END()
MODULE_CONFIGS_START()
MODULE_CONFIGS_END()
I think the idea would be not to use LV for the trigger, but to just continuously take silent pics, do the analysis on that data and then only save it if you detect a strong change in luminance. The only slow part is saving the dng.Sounds like an idea! Any ideas on how I can code that? I am not a programmer, just very basic knowledge. And thank you for your input!
while(1)
{
/* capture a raw image */
struct JobClass * job = (void*) call("FA_CreateTestImage");
call("FA_CaptureTestImage", job);
/* tell the raw backend to catch the raw buffer address from RAW_PHOTO_EDMAC */
void raw_buffer_intercept_from_stateobj();
raw_buffer_intercept_from_stateobj();
/* preview the raw image */
raw_set_dirty();
if (raw_update_params())
{
raw_preview_fast();
}
call("FA_DeleteTestImage", job);
}
You can try something like this (it's like a full-res LiveView):Great! will try this, thank you very much, hoping to test on lightning later today, its that time of the year here in Florida.
Didn't know that it is that usable already :oI'm confused about this new develop in the Silent Pictures, so what does it allow for you to do higher DNG VIDEO Then the RAW or MLV?
The long delay is no problem, I'm mostly interested in nighttime time lapses, skies full of stars.
Normally I would have 15 or 20 seconds between pictures for nighttime time lapses
Do you have a 6d build with full res silent pictures option, or should I ask somebody else to compile it for me ?
Full res RAW video but quite low fps numbers.So does this mean the 5D Mark II can do Full Res 23fps
So does this mean the 5D Mark II can do Full Res 23fpsNO! Read the OP
However, I don't really expect more than 10 fps (in LV crop mode on 5D3, 1/3.6 of the total sensor area is sampled at 30fps). If you implement a burst mode from the current code base, you'll get up to 5 fps.
I'm confused about this new develop in the Silent Pictures, so what does it allow for you to do higher DNG VIDEO Then the RAW or MLV?
In laymen terms what is the new development.
ASSERT: 0
at ./Param/HivshdParam.c:64, task ShootCapture
lv:0 mode:3
Magic Lantern version : Nightly.2014Jul18.5D3123
Mercurial changeset : b1838cf8d136+e0a1e77aeb30+ (fullres-silent-pics)
Built on 2014-07-18 09:30:21 UTC by xxx.
Free Memory : 167K + 3895K
@philmoz: what exposure settings did you use? If one of them was auto, that would be interpreted as 0 (which is not valid). These routines were meant for factory testing, and they do behave a little different than regular pictures (they use a separate code path in scsReleaseData, codenamed FA DARK_MEM1)
ASSERT: GetMemoryAddressOfMemoryChunk( GetFirstMemChunk( pMem1AllocateListItem->hMemSuite ) ) == pMessage->pAddress
at SrmActionMemory.c:1619, task RscMgr
lv:0 mode:3
Magic Lantern version : Nightly.2014Jul18.5D3123
Mercurial changeset : b1838cf8d136+e0a1e77aeb30+ (fullres-silent-pics)
Built on 2014-07-18 09:30:21 UTC by xxx
Free Memory : 167K + 3893K
If you scroll to EDMAC channel 0, you will see the complete resolution; the overview page only displays the width.EDMAC on channel one after entering live view and taking a picture or not taking one shows only something on Size B : 4175c (5980 x 4) but it flashes back and forth with 100f8 (248 x1)
Test time lapse -Thanks. What are Canon settings, FPS, camera?
Thanks. What are Canon settings, FPS, camera?500D (CPL and ND8 filter), 17mm, aperture about F14, Intervalometer -> Take pics... -> like crazy (currently writing take some time, so the delay is not needed)
Thank you i will test this.
Cheers.
raw_shutter printed_time time_ms fps_timer_B_units
16 32" => 32292 ms 2131 + 132*5004
17 32" => 30480 ms 5000 + 124*5004
18 32" => 27951 ms 3176 + 114*5004
19 25" => 25632 ms 655 + 105*5004
20 20" => 23505 ms 2069 + 96*5004
21 20" => 21555 ms 2110 + 88*5004
22 20" => 19767 ms 471 + 81*5004
23 20" => 18127 ms 1864 + 74*5004
24 16" => 16623 ms 1045 + 68*5004
25 16" => 15244 ms 2786 + 62*5004
26 16" => 13980 ms 1885 + 57*5004
27 12.5" => 12820 ms 3114 + 52*5004
28 10" => 11757 ms 1331 + 48*5004
29 10" => 10782 ms 1352 + 44*5004
30 10" => 9888 ms 3032 + 40*5004
31 10" => 9068 ms 1229 + 37*5004
32 8" => 8316 ms 819 + 34*5004
33 8" => 7626 ms 1680 + 31*5004
34 8" => 6994 ms 3729 + 28*5004
35 6" => 6414 ms 1844 + 26*5004
36 6" => 5883 ms 963 + 24*5004
37 5" => 5395 ms 963 + 22*5004
38 5" => 4948 ms 1803 + 20*5004
39 5" => 4538 ms 3401 + 18*5004
40 4" => 4162 ms 696 + 17*5004
41 4" => 3817 ms 3627 + 15*5004
42 4" => 3501 ms 2151 + 14*5004
43 3.2" => 3211 ms 1209 + 13*5004
44 3" => 2946 ms 778 + 12*5004
45 2.5" => 2702 ms 778 + 11*5004
46 2.5" => 2478 ms 1188 + 10*5004
47 2.5" => 2273 ms 1987 + 9*5004
48 2" => 2085 ms 3135 + 8*5004
49 2" => 1913 ms 4610 + 7*5004
50 2" => 1755 ms 1372 + 7*5004
51 1.6" => 1610 ms 3401 + 6*5004
52 1.5" => 1477 ms 676 + 6*5004
53 1.3" => 1355 ms 3176 + 5*5004
54 1.3" => 1243 ms 881 + 5*5004
55 1.3" => 1141 ms 3790 + 4*5004
56 1" => 1047 ms 1864 + 4*5004
57 1" => 961 ms 5102 + 3*5004
58 1" => 882 ms 3483 + 3*5004
59 0.8" => 809 ms 1987 + 3*5004
60 0.7" => 743 ms 635 + 3*5004
61 0.6" => 682 ms 4385 + 2*5004
62 0.6" => 626 ms 3237 + 2*5004
63 0.6" => 575 ms 2192 + 2*5004
64 0.5" => 528 ms 1229 + 2*5004
65 0.5" => 485 ms 5348 + 1*5004
66 0.5" => 445 ms 4528 + 1*5004
67 0.4" => 409 ms 3790 + 1*5004
68 0.3" => 376 ms 3114 + 1*5004
69 0.3" => 345 ms 2479 + 1*5004
70 1/3 => 317 ms 1905 + 1*5004
71 1/3 => 292 ms 1393 + 1*5004
72 1/4 => 268 ms 901 + 1*5004
73 1/4 => 247 ms 471 + 1*5004
74 1/4 => 227 ms 4651
75 1/5 => 209 ms 4282
76 1/6 => 192 ms 3934
77 1/6 => 177 ms 3627
78 1/6 => 163 ms 3340
79 1/6 => 150 ms 3073
80 1/8 => 138 ms 2827
81 1/8 => 128 ms 2622
82 1/8 => 118 ms 2418
83 1/10 => 109 ms 2233
84 1/10 => 100 ms 2049
85 1/13 => 93 ms 1905
86 1/13 => 86 ms 1762
87 1/13 => 79 ms 1618
88 1/15 => 73 ms 1495
89 1/15 => 68 ms 1393
90 1/15 => 63 ms 1290
91 1/20 => 59 ms 1209
92 1/20 => 54 ms 1106
93 1/25 => 51 ms 1045
94 1/27 => 47 ms 963
95 1/28 => 44 ms 901
96 1/30 => 41 ms 840
97 1/35 => 38 ms 778
98 1/38 => 36 ms 737
99 1/40 => 33 ms 676
100 1/45 => 31 ms 635
101 1/50 => 30 ms 614
102 1/55 => 28 ms 573
103 1/58 => 26 ms 532
104 1/60 => 25 ms 512
105 1/70 => 23 ms 471
106 1/80 => 22 ms 450
107 1/80 => 21 ms 430
108 1/90 => 20 ms 409
109 1/100 => 19 ms 389
110 1/110 => 18 ms 368
111 1/120 => 17 ms 348
112 1/125 => 17 ms 348
113 1/140 => 16 ms 327
114 1/150 => 15 ms 307
115 1/160 => 15 ms 307
116 1/180 => 14 ms 286
117 1/200 => 14 ms 286
118 1/215 => 13 ms 266
119 1/235 => 13 ms 266
120 1/250 => 13 ms 266
121 1/280 => 12 ms 245
122 1/300 => 12 ms 245
123 1/320 => 12 ms 245
124 1/350 => 11 ms 225
125 1/400 => 11 ms 225
126 1/430 => 11 ms 225
127 1/470 => 11 ms 225
128 1/500 => 10 ms 204
129 1/560 => 10 ms 204
130 1/600 => 10 ms 204
131 1/640 => 10 ms 204
132 1/750 => 10 ms 204
133 1/800 => 10 ms 204
134 1/850 => 10 ms 204
135 1/900 => 10 ms 204
136 1/1000 => 10 ms 204
137 1/1100 => 10 ms 204
138 1/1200 => 10 ms 204
139 1/1250 => 10 ms 204
140 1/1500 => 10 ms 204
141 1/1600 => 10 ms 204
142 1/1700 => 10 ms 204
143 1/1900 => 10 ms 204
144 1/2000 => 10 ms 204
145 1/2300 => 10 ms 204
146 1/2400 => 10 ms 204
147 1/2500 => 10 ms 204
148 1/3000 => 10 ms 204
149 1/3200 => 10 ms 204
150 1/3500 => 10 ms 204
151 1/3800 => 10 ms 204
152 1/4000 => 10 ms 204
153 1/4500 => 10 ms 204
154 1/4800 => 10 ms 204
155 1/5000 => 10 ms 204
156 1/6000 => 10 ms 204
157 1/6400 => 10 ms 204
158 1/7200 => 10 ms 204
159 1/7800 => 10 ms 204
160 1/8000 => 10 ms 204
take the two test images with this script (http://a1ex.magiclantern.fm/bleeding-edge/gradient/dont-click-me.c), then get the ADTG screenshot by following these steps (https://bitbucket.org/hudson/magic-lantern/commits/e261cbbbdf25a380f74c15ddb671952518693b26#comment-1086388).
ASSERT: 0
at Param\HivshdParam.c:115, task ShootCapture
lv:0 mode:3
Magic Lantern version : Nightly.2014Jul22.600D102
Mercurial changeset : 4493f6e04e5f (fullres-silent-pics)
Built on 2014-07-22 19:10:51 UTC by edgar@linux-indh
Free Memory : 232K + 947K.
download raw_diag.mo (http://a1ex.magiclantern.fm/bleeding-edge/raw_diag.mo), select the "OB zones" option, and adjust the offsets until you get the following picture (note the cyan box being just inside the noisy borders):
(https://www.magiclantern.fm/forum/proxy.php?request=http%3A%2F%2Fa1ex.magiclantern.fm%2Fbleeding-edge%2Fiso50%2Fob%2Fob-zones-5d3-6400.png&hash=0683d0b209c59d00a52d8c006b69a686)
Everybody, please double-check the skip offsets in raw.c and post the confirmation screenshots. The ones from 600D are wrong.
tcc:error: undefinied symbol 'log2f'
failed to link modules
Everybody, please double-check the skip offsets in raw.c and post the confirmation screenshots. The ones from 600D are wrong.I did post a screenshot the night I added the edmac and before you accepted it you said the skips were correct, so how are they wrong now???
http://www.magiclantern.fm/forum/index.php?topic=7139.msg123281#msg123281Maybe something wrong in my source, I can try raw diag using the nightly and see what we get unless someone already got you one, but trust me, there was no way for me to get a screen before the edmac change, so I don't know what is wrong now?
Your screenshot was most likely done before the EDMAC changes.
Hm, the raw_diag screenshot was directly on a silent picture? Can you upload a DNG?Well, I turned on the fullres on the silent module, then I turned on Raw Diag with the zone option, then I did a half shutter press and held it for a second till I saw the Raw Diag text so I guess it was a silent picture it took cause the shutter did not activate.
Hm, the raw_diag screenshot was directly on a silent picture? Can you upload a DNG?Ok, so just tell me exactly what you want and Ill grab it for you, I have camera now.
edit: I get it now, you got the screenshot from LiveView, not from photo mode...
Look for CONFIG_600D in raw.c, and the last block has the offsets from photo mode. You can start from the values I've linked above, and maybe fine-tune a few pixels from there.Ok, no problem, I know where they are in raw.c and how to adjust them, but was hoping for a starter point, thanks for that from the one post will give them a try and go from there and send you new screen when I get them correct.
It's there, just checked the current nightly.
00cd1644 log2f
If it's not present in your custom build, you can add a call to it in builtin-enforcing.c.
Maybe. Check the RAW zebras for borders.(https://www.magiclantern.fm/forum/proxy.php?request=http%3A%2F%2Fs11.postimg.org%2Foe8q4zxab%2FVRAM0.jpg&hash=a69e38b54bc71c0a28b6b822f2d10e5d)
Whats up with the white overlap on the left side???Don't worry about the current unified behavior. For many cameras, the old value for RAW_PHOTO_EDMAC would often result in image buffers that needed to be skipped ahead by some amount (usually 16 pixels) to have proper alignment. Once the fullres-silent-pics branch is merged, this will no longer be the case on most (or all?) cameras.
Everybody, please double-check the skip offsets in raw.c and post the confirmation screenshots. The ones from 600D are wrong.60D:
Don't worry about the current unified behavior. For many cameras, the old value for RAW_PHOTO_EDMAC would often result in image buffers that needed to be skipped ahead by some amount (usually 16 pixels) to have proper alignment. Once the fullres-silent-pics branch is merged, this will no longer be the case on most (or all?) cameras.
If you want to see the same analysis for your camera, take the two test images with this script (http://a1ex.magiclantern.fm/bleeding-edge/gradient/dont-click-me.c), then get the ADTG screenshot by following these steps (https://bitbucket.org/hudson/magic-lantern/commits/e261cbbbdf25a380f74c15ddb671952518693b26#comment-1086388).60D:
warning: your version of GraphicsMagick limits images to 8 bits per pixel
Exposure range : 1/86.47 ... 1/5.55
Rolling shutter : 0.17 seconds
Exposure range : 1/85.05 ... 1/6.66
Rolling shutter : 0.14 seconds
// TimerA / Clock / Columns
5D3 : (0x317+1) / 24.0 / 5936 = 5.56 nanoseconds per pixel
50D : (0x4f5+1) / 28.8 / 4832 = 9.13 nanoseconds per pixel
60D : (0x57d+1) / 28.8 / 5344 = 9.14 nanoseconds per pixel
6D : (0x597+1) / 25.6 / 5568 = 10.05 nanoseconds per pixel
5D2 : (0x5db+1) / 24.0 / 5792 = 10.79 nanoseconds per pixel
500d: (0xaf9+1) / 32.0 / 4832 = 18.17 nanoseconds per pixel
5D3: 440 / 24.0 / 2080 = 8.81 ns/px, overclocked 7.97
60D: 546 / 28.8 / 1880 = 10.08 ns/px, overclocked 9.90
50D: 696 / 28.8 / 1664 = 14.52 ns/px, overclocked 14.31
hg clone https://bitbucket.org/hudson/magic-lantern/
cd magic-lantern
hg update 5D3-123
hg merge unified
LiveView clocks seem to be a little slower:I think you made a typo: doesn't the 60D have a 28.8 MHz clock (as you used earlier)? I think it should be:Code: [Select]5D3: 440 / 24.0 / 2080 = 8.81 ns/px, overclocked 7.97
60D: 546 / 24.0 / 1880 = 12.10 ns/px, overclocked 11.88
50D: 696 / 28.8 / 1664 = 14.52 ns/px, overclocked 14.31
60D: 546 / 28.8 / 1880 = 10.08 ns/px, overclocked 9.90
which is closer to the photo readout time.50D: 636 / 28.8 / 2064 = 10.70 ns/px, overclocked 10.60
60D: 734 / 28.8 / 2520 = 10.11 ns/px, overclocked 10.09
which is a lot closer than in LV normal mode.
60D 1080p : 546 / 28.8 / 1880 = 10.08 ns/px, overclocked 9.90
60D 5x zoom: 734 / 28.8 / 2520 = 10.11 ns/px, overclocked 10.08
Answered in the first post and many times throughout the thread.
I'll merge the full-res silent picture branch next week, and I'll break all the nightly builds for which I don't have a raw_diag screenshot.
I'll break all the nightly builds for which I don't have a raw_diag screenshot.
Hope this is enough data to keep the 6d alive in the nightly builds :D
#ifdef CONFIG_1100D
// from debug log: [TTJ][150,2551,0] RAW(4352,2874,0,14)
width = 4352; //From TTJ Log
height = 2874;
skip_top = 16;
skip_left = 62;
raw_info.buffer += width * 14/8;
#endif
Nice fonts :DThey look even better nearest neighbor on the tiny 1100D screen :P
#if defined(CONFIG_5D3) || defined(CONFIG_700D) || defined(CONFIG_6D)
#define RAW_PHOTO_EDMAC 0xc0f04008
#endif
#ifdef CONFIG_6D //Needs check from Raw dump but looks aligned.
width = 5568;
height = 3722;
skip_left = 72; //Meta Data
skip_right = 0;
skip_top = 52; // Meta Data
#endif
@nitfreak, for future reference, run make in the source directory, then browse to the required platform directory (6D.113 in this case), and run make zip.
This will compile the modules and produce a nightly type zip in the platform directory.
Building module silent...
REBUILDING
[ README ] module_strings.h
cat README.rst | grep -v -E "^:([^:])+:.+$" | rst2html --no-xml-declaration | python ../html2text.py -b 700
/bin/sh: 1: rst2html: not found
(<type 'exceptions.SystemExit'>, SystemExit(1,), <traceback object at 0x2ad947187368>)
make[4]: *** [module_strings.h] Error 1
I've deleted a bunch of code, is it still working?
mlv_rec.c: In function 'raw_video_rec_task':
mlv_rec.c:3080:13: error: implicit declaration of function 'FIO_SeekFile' [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make: *** [mlv_rec.o] Fehler 1
Compiled the new stuff from fullres-silent-pics. Compiling mlv-rec gives this error:Pull the branch again; the fix on unified (this commit (https://bitbucket.org/hudson/magic-lantern/commits/ac953260397f25c65d54265f3e234a058952f300)) looks to be merged in now.
Now you're gonna kill me: I've deleted a bunch of code, is it still working?Yup, still works on 50D.
And here's how I'll fix it. I'll merge the full-res silent picture branch next week, and I'll break all the nightly builds for which I don't have a raw_diag screenshot.
I'll merge the full-res silent picture branch next week
Continuous writing without return live view :
If you can do this 24 times for second, I thinks A1ex give you an Oscar Lantern.
work on 50D ? i dont see this in my 50D :-\
High Five for Greg!battery / and / make timelapses more fluent, connected due to not much time between shots
I guess thats gonna save a lot battery life when you shooting Timelapse.
battery / and / make timelapses more fluent, connected due to not much time between shots
Sorry? What do u wanted to say?I'm saying that it's not only going to be beneficial for battery life, but also give the artistic tool of making timelapses more fluid (less segmented) aesthetically, because one frames will connect much closer to each other (not so much time lost between shots) :)
Yes, ofc. Lets hope u r right. Right now i cant go under 5s intervall :/Me neither, but I got to say this 5-6 sec delay gives quite a charming flicker to the video. First time I've seen it it's quite a nice change from the creamy-smooth timelapses I'm used to through MLV timelapses.
Possible but the resolution will be such as live view crop mode.
but since the build for it is broken
Do you mind if I'll delay it by 1-2 weeks? Right now there were too many crashes reported for my taste (which I couldn't diagnose), and I don't want to flood the forum with support requests. And I'll be away next week.
Sorry about that.
Namely, the exposure duration of the silent image is always the same, I can't seem to take a silent picture with a longer exposure (say 5 seconds).FPS override
I would need to have a silent pic with exposure time of say 10 seconds (the longer the better) while the LV shows uninterrupted video on the screen. Not sure if this is possible.No, that is impossible. From what data would the display be updated while capturing an image? The sensor can't make two different exposures at the same time.
No, that is impossible. From what data would the display be updated while capturing an image? The sensor can't make two different exposures at the same time.
I did not use FPS override because I was hoping that the readout of the sensor was done in such a way that a long exposure image could be captured while in uninterrupted LV (non-destructive read), but I guess I was hoping for too muchEven if it was possible, and with using zoom mode to get an unscaled image of the guide star in the field, it looks it would be hard to compute a precise drift analysis on fly with taken silence picture in parallel. Maybe we will get some black out during several seconds because of silence pictures computation.
By the way, using ML as an autoguiding system should be very nice. Without using the camera for imaging, just as a guiding camera.I have thought about this too. I think you'd need a arduino or something to act as USB PTP host and translate commands. The other option would be a photo-transistor taped to the LED, and some kind of decoding circuitry, then you could send commands via LED blinks.
But is there a way to send ST4 commands (0/I output orders in 4 ways) directly from the body through the USB ?
What is the ratio between 'how the mount can track fine' and 'how long exposures are expected'? (should be interesting to know the sampling on the imaging camera and an tracking error log on the mount) Because if it is only a question of polar alignment drift compensation _every nn seconds_ there are other solutions (if you see what I point :) ).
brians-mac-mini:fullres-silent-pics brianhursey$ make 60D
make -C /Users/brianhursey/Code/fullres-silent-pics/platform/60D.111
[ VERSION ] ../../platform/60D.111/version.bin
[ CPP ] magiclantern.lds
/bin/sh: -v: command not found
make[1]: *** [magiclantern.lds] Error 127
make: *** [60D] Error 2
brians-mac-mini:fullres-silent-pics brianhursey$ cat Makefile.user
ARM_PATH=~/Code/gcc-arm-none-eabi-4_7-2013q2
ARM_BINPATH=$(ARM_PATH)/bin
GCC_VERSION=4.7.4
CC=$(ARM_BINPATH)/arm-none-eabi-gcc-4.7.4
OBJCOPY=$(ARM_BINPATH)/arm-none-eabi-objcopy
AR=$(ARM_BINPATH)/arm-none-eabi-ar
RANLIB=$(ARM_BINPATH)/arm-none-eabi-ranlib
LD=$(CC)
HOST_CC=gcc
HOST_CFLAGS=-O3 -W -Wall
UMOUNT=echo
CONFIG_TCC = y
CONFIG_MODULES = y
CONFIG_CONSOLE = y
PYTHON=python
brians-mac-mini:~ brianhursey$ cat .bash_profile
# Set architecture flags
export ARCHFLAGS="-arch x86_64"
# Ensure user-installed binaries take precedence
export PATH=/usr/local/bin:$PATH
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
export PATH="$PATH:$(brew --prefix coreutils)/libexec/gnubin"
Also /bin/sh does esxist..
brians-mac-mini:fullres-silent-pics brianhursey$ /bin/sh -v
sh-3.2$
Yah its not fun I have been banging my head against the wall for 2 days. Would love a build for my 60D but I want to learn. Still if any one feels like building one for the 60D while I bash my head against the wall I am all for it..https://bitbucket.org/mk11174/magic-lantern-fullres/downloads/magiclantern-Nightly.2014Sep23.60D111.zip (https://bitbucket.org/mk11174/magic-lantern-fullres/downloads/magiclantern-Nightly.2014Sep23.60D111.zip)
Hi All,https://bitbucket.org/mk11174/magic-lantern-fullres/downloads/magiclantern-Nightly.2014Sep23.600D102.zip (https://bitbucket.org/mk11174/magic-lantern-fullres/downloads/magiclantern-Nightly.2014Sep23.600D102.zip)
I've searched the forum (and also found 46 min youtube video) on how to compile ML features.... but it seems very complicated for me. Can anybody please help to compile this for 600D or 5D Mark III?
@SpcCb - you mean the sensor heating done before taking the picture, while the camera was in LiveView, right?Absolutely, activation of the liveview during a couple of minutes makes sensor reach Δt~30°C[1] and Δt~40°C[1] for the mainboard (CPU + FPGA + ASIC + LCD heating) witch participate to the heating inside the body (and the sensor heating by the way).
Please do not ask for builds in this thread. This thread is for development related feedback only.
If you would like a build compiled, so you can help the Magic Lantern development team by testing this feature and providing feedback, please see this thread (http://www.magiclantern.fm/forum/index.php?topic=12608.0).
Did a few tweaks.The battery status does not show very long especially when using MLV format, while its set to DNG you can see it for a couple seconds, but it does show.
- powersaving for timelapse (like display off, or showing battery remaining time), please test.
The battery status does not show very long especially when using MLV format
New version is much more stable on my 5d3. Took 1500 pics and no out of memory errors. Great.
Can we get a sync signal on hot-shoe and PC port when silent pic is taken? Will allow timelapse rails control.
Correct; it only shows until file saving is done. I could look at image review settings in Canon menu and use that - useful?It is nice to know about the battery for sure, but since I guess most people will use the MLV option, they won't have time to read the battery info because at least on the 700D it is just a flash, so if it was able to be adjusted say as long as the Canon image review, then that would be good idea for sure so it can be useful in MLV saving mode.
Yes, sorry. I, ll post the crash log when back homeOh, no problem, I was not referring to you or anything, it was just for everyone.
Do I put log messages here or at bitbucket somewhere?I would think here is good.
One thing I notice on the 550D because the LED tells me things is if you load FullRes and take a fullres silent picture, then turn off FullRes then turn off cam, it looks like task is looping, because after maybe 10 seconds the led starts blinking 1 flash every few seconds.
Can you record a video to show the issue, and paste your settings directory? I'm trying to reproduce, without success.Ok, in video you will see me reset ML config first so its all defaults since non of that changes the outcome.
void* job = (void*) call("FA_CreateTestImage");
call("FA_CaptureTestImage", job);
call("FA_DeleteTestImage", job);
It seems to conflict with Canon meter. If I wait 5 seconds after last half-shutter press, before taking the silent picture, it's fine. If I wait only 3 seconds, it fails.Nice catch, good to keep in mind.
patch_instruction(0xff07f6d0, 0x8b07fd32, 0xeb07fd32, "silent NR off");
patch_instruction(0xff07f754, 0x8a0000b1, 0xea0000b1, "silent NR off");
call("FA_CaptureTestImage", job);
unpatch_memory(0xff07f6d0);
unpatch_memory(0xff07f754);
magiclantern@magiclantern-VirtualBox:~/magic-lantern/modules/silent$ make clean
[ RM ] silent.o silent.mo silent.sym silent.dep module_strings.h *.o *.d *.dep *.sym hgstamp
magiclantern@magiclantern-VirtualBox:~/magic-lantern/modules/silent$ make
Updated HGVERSION
[ README ] module_strings.h
[ CC ] silent.o
silent.c: In function 'silent_pic_take_fullres':
silent.c:1005:12: error: invalid use of void expression
silent.c:1067:9: error: invalid use of void expression
silent.c:1068:9: error: invalid use of void expression
make: *** [silent.o] Error 1
magiclantern@magiclantern-VirtualBox:~/magic-lantern/modules/silent$
Please help
mkdir fullresvst
cd fullresvst
hg clone -r fullres-silent-pics https://bitbucket.org/hudson/magic-lantern
cd magic-lantern
make -j2
cd platform
cd 6D.113 (if you wanna compile for 6D)
make zip
Thank you very much! It works. 5D3.113. There is no any sing about 5D3 after execute "make -j2", but there are many errors. There is no raw_rec.mo in zip. Why? I compiled it in Modules/raw_rec folderIf alls you need is the fullres-silent-pics version all up to date just use the build I compiled, nothing has changed since the update.
Is it possible to capture Full Resolution Silent Pictures in Jpeg format?I agree with this comment as well because although it's handy for Timelapses to have the colour range it's sometimes handy for Focus Stacking to get a decent result, in a small amount of time, using JPGs ... once we get a decent image it would be great to do it again but with the option of DNGs dynamic range ... the work flow at the moment is quite time consuming using DNGs, so JPGs would really speed up write time therefore reducing the focus stacking session considerably ... that would be awesome ...
e.g.Code: [Select]mkdir fullresvst
cd fullresvst
hg clone -r fullres-silent-pics https://bitbucket.org/hudson/magic-lantern
cd magic-lantern
make -j2
cd platform
cd 6D.113 (if you wanna compile for 6D)
make zip
Please also read this:
http://magiclantern.fm/forum/index.php?topic=7579.0
You might have to adjust makefile.user.default if you don't have gcc 4.8.3
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
00001948 raw_video_enabled
00001978 raw_movie_filename
[ DEPENDS ] raw_rec.dep
Will load on:
5D3, 60D
Not checked (compile ML for these cameras first):
1100D, 500D, 50D, 550D, 5D2, 600D, 650D, 6D, 700D, 7D, EOSM
[ GCC ] raw2dng
[ GCC ] raw2dng
../lv_rec/raw2dng.c:174:5: error: conflicting types for вЂraw_set_pixel’
In file included from ../lv_rec/lv_rec.h:24:0,
from ../lv_rec/raw2dng.c:26:
../../src/raw.h:87:6: note: previous declaration of вЂraw_set_pixel’ was here
make[4]: *** [raw2dng] Error 1
********************************************************
WARNING: module raw_rec failed to build, deleting
********************************************************
make[4]: Entering directory `/home/magiclantern/magic-lantern/fullresvst/magic-lantern/modules/raw_rec'
[ RM ] raw_rec.o raw_rec.mo raw_rec.sym raw_rec.dep module_strings.h *.o *.d *.dep *.sym hgstamp
[ RM ] raw2dng
make[4]: Leaving directory `/home/magiclantern/magic-lantern/fullresvst/magic-lantern/modules/raw_rec'
make[3]: Leaving directory `/home/magiclantern/magic-lantern/fullresvst/magic-lantern/modules/raw_rec'
Thank you, but unfortunately I do not know what to do with this.You just need to get the latest unified to make sure that is up to date, then merge in fullres-silent-pic to get all caught up to date past the point the change to setpixel was made.
e.g.so the Q is what dir should be used to get the latest unified - fullresvst/magic-lantern? And how to merge in?Code: [Select]mkdir fullresvst
cd fullresvst
hg clone -r fullres-silent-pics https://bitbucket.org/hudson/magic-lantern
cd magic-lantern
make -j2
cd platform
cd 6D.113 (if you wanna compile for 6D)
make zip
Please also read this:
http://magiclantern.fm/forum/index.php?topic=7579.0
You might have to adjust makefile.user.default if you don't have gcc 4.8.3
Thank you mk11174! I used instruction fromso the Q is what dir should be used to get the latest unified - fullresvst/magic-lantern? And how to merge in?It could get real messy if done wrong, and I am def not a master at it yet. But I would start another local repo just to be sure you dont mess your current one up and start with unified first, and then just hg merge fullres-silent-pic to merge the latest into the unified.
am I overlooking something here?Yes. You neglected to fully read the OP. The answer is right there. Also a number of times throughout this thread where people have asked the same exact thing.
... I find out that I can convert .mlv file using mlv2dng! ...
use:
./mlv_dump <src> -d -o <path>
Please do not ask for builds in this thread. This thread is for development related feedback only.
If you would like a build compiled, so you can help the Magic Lantern development team by testing this feature and providing feedback, please see this thread (http://www.magiclantern.fm/forum/index.php?topic=12608.0).
/* there are problems with shutter speeds slower than 15 seconds */
/* (corrupted image and camera lockup, at least on 5D2 and 550D) */
if (prop_shutter < SHUTTER_15s)
{
error_msg = "Exposure too long";
goto err;
}
if (prop_iso == 0)
{
error_msg = "Auto ISO not compatible";
goto err;
}
if (!can_use_raw_overlays_photo())
{
error_msg = "Set picture quality to RAW";
goto err;
}
umm . . . so It's my laptop's GPU that cannot handle it? Or is it MLRawViewer that can't handle it in combination with that GPU? It's an Early 2012 15" Macbook pro.
-2.6GHz quad-core Intel Core i7
-8GB of 1600MHz DDR3 memory
-Resolutions: 1440 by 900 (native)
-Intel HD Graphics 4000
-NVIDIA GeForce GT 650M
-1TB SSD
I'm gonna try it on my Mac Pro - it's a more capable system.
magiclantern-Nightly.2014Sep26.5D3123_FIX from mk11174
what's wrong with my setup?
Removes, writes that retained, but the map is empty
Compile from the most recent changes in the repository, there could have been fixes implemented since that build was generatedIt's out of my skills currently, sorry.
When shooting in the full-res mode, on the display information on successful saving a picture on the memory stick is displayed. But actually the memory stick is empty.saving as what type? what are your other settings? how did you verify the "memory stick is empty" ? you won't be able to view or transfer the files directly from inside the camera, you have to put the card in a card reader connected to a computer.
magiclantern@magiclantern-VirtualBox:~/magic-lantern/modules/silent$ make clean
[ RM ] silent.o silent.mo silent.sym silent.dep module_strings.h *.o *.d *.dep *.sym hgstamp
magiclantern@magiclantern-VirtualBox:~/magic-lantern/modules/silent$ make
Updated HGVERSION
[ README ] module_strings.h
cat README.rst | grep -v -E "^:([^:])+:.+$" | rst2html --no-xml-declaration | python ../html2text.py -b 700
/bin/sh: 1: rst2html: not found
grep: write error: Broken pipe
(<type 'exceptions.SystemExit'>, SystemExit(1,), <traceback object at 0x4031e504>)
make: *** [module_strings.h] Error 1
You also need to compile the ML coreYou mean make command in platform folder?
Hey
In the end of July i tested the new FRSP modul with my old 600D and i was very happy with it. I took various photos with it and i produced even a little promo vid for this modul.
I tryed to find the borders of this modul and reported every bug i found. There were real not much ! ( :) )
Now, 5 months later, i sold my 600D and bought a 6D. Not hard to imagine that i want to try this new modul on the 6D too and help u guys with further developing. But.
I searchd now nearly 2 hours in the forum to find current silent.mo builds for the 6D but i found nothing useful. Now i read that people just asked for builds and didnt reported bugs :/ to sad.
So, the result from Audionut is totaly understandeble.
Now my question.
Is there any chance that a user, how is willing to "test" the FRSP modul, getting a working build for the 6D?
It would be realy awesome! This new feature would help me so much by taking timelapse's!
--- a/src/raw.c Sun Sep 28 20:07:07 2014 +0300
+++ b/src/raw.c Sun Jan 11 17:43:56 2015 +0100
@@ -117,7 +117,7 @@
* and http://a1ex.bitbucket.io/ML/states/ for state diagrams.
*/
-#if defined(CONFIG_5D2) || defined(CONFIG_50D) || defined(CONFIG_60D) || defined(CONFIG_550D) || defined(CONFIG_500D) || defined(CONFIG_600D) || defined(CONFIG_1100D)
+#if defined(CONFIG_5D2) || defined(CONFIG_50D) || defined(CONFIG_60D) || defined(CONFIG_550D) || defined(CONFIG_500D) || defined(CONFIG_600D) || defined(CONFIG_1100D) || defined(CONFIG_7D)
#define RAW_PHOTO_EDMAC 0xc0f04208
#endif
@@ -650,10 +650,10 @@
#ifdef CONFIG_7D /* very similar to 5D2 */
skip_left = 158;
- skip_top = 52;
+ skip_top = 50;
/* first pixel should be red, but here it isn't, so we'll skip one line */
/* also we have a 16-pixel border on the left that contains image data */
- raw_info.buffer += width * 14/8 + 16*14/8;
+ //raw_info.buffer += width * 14/8 + 16*14/8;
#endif
dbg_printf("Photo raw buffer: %x (%dx%d)\n", raw_info.buffer, width, height);
ASSERT: GetMemoryAddressOfMemoryChunk( GetFirstMemChunk( pMem1AllocateListItem->hMemSuite ) ) == pMessage->pAddress
at SrmActionMemory.c:1154, task RscMgr
lv:0 mode:3
Magic Lantern version : Nightly.2014Sep26.7D203
Mercurial changeset : 81a2fd653497+ (fullres-silent-pics) tip
Built on 2014-09-26 21:55:08 UTC by mathew@mathewubuntu64.
Free Memory : 208K + 2955K
Nice, I had tried it a few months ago but couldn't get past the bugs (crashing/freezing the camera), never had a chance to make good use of it or even report the issues. Can you post the dng? It looks a little off but much better than any of my results. Black level maybe?
So I tried MLV_DUMP
If you want to know what build I used, I stole it there:I don't recommend using these unofficial builds unless you really know what you are doing. There have been changes and improvements since then: http://www.magiclantern.fm/forum/index.php?topic=12523.msg133776#msg133776
https://bitbucket.org/mk11174/magic-lantern-fullres/downloads
:'(
Saving 5202x3466
Captured in 292 ms.
Is to pull the battery. Doesn't go away on powering off.
google?LOL
can you try these 7D files?Same issue. Weird. I tried with your files and JUST your silent.mo, the modules I compiled, and even the modules from the latest nightly build. All this was after an in-camera format, and deleting all the config files on the card also. And just to verify, mlv_rec, mlv_play, and pic_view for full res silent dng's all work fine. I'll review all my settings and see if anything looks off, but it seems like its hanging when it writes to the cf. I'm assuming I have an issue with my mlv_rec or mlv_play modules, I'll compile those again and see if I have any warnings/errors.
autoexec.bin (http://ml.g3gg0.de/pub_files/478857efe8a33ad868b579a0aadb33a3/autoexec.bin)
7D_203.sym (http://ml.g3gg0.de/pub_files/c8cb30cc95aeb601ba925dfc5d2f4f07/7D_203.sym)
silent.mo (http://ml.g3gg0.de/modules/silent.mo/silent.mo)
forgot that... mlv_rec.mo (http://upload.g3gg0.de/pub_files/5e4cb904161481742c07c8ce411f8638/mlv_rec.mo)With just your files on the card, full res mlv's work fine with intervalometer, and taking a full res pic with half shutter AFTER an intervalometer cycle saves as an mlv. But trying to save one with half shutter to mlv without running the intervalometer first is what locks it up. Haven't tested this yet with my compiles.
can you try these 7D files?
autoexec.bin (http://ml.g3gg0.de/pub_files/478857efe8a33ad868b579a0aadb33a3/autoexec.bin)
7D_203.sym (http://ml.g3gg0.de/pub_files/c8cb30cc95aeb601ba925dfc5d2f4f07/7D_203.sym)
silent.mo (http://ml.g3gg0.de/modules/silent.mo/silent.mo)
mlv_rec.mo (http://ml.g3gg0.de/modules/mlv_rec.mo/mlv_rec.mo)
thanks, that makes sense to me now.Happy to be of assistance.
gonna fix it.
tcc: err: undefined symbol 'is_native_movie_mode'
tcc: err: undefined symbol 'is_custom_movie_mode'
[E] faqiled to link modules
hg clone https://bitbucket.org/hudson/magic-lantern/
hg update fullres-silent-pics
ARM_ABI=none-eabi
ARM_PATH=~/arm-toolchain/
GCC_VERSION=-4.7.3
CONFIG_TCC = y
CONFIG_MODULES = y
CONFIG_PICOC = y
make clean
make 600D
cd platform/600D.102
make zip
silent.c:1302:21: warning: initialization makes integer from pointer without a cast [enabled by default]
"Writes an extra MLV for every picture being taken.\n",
^
silent.c:1302:21: warning: (near initialization for '(anonymous)[2].submenu_width') [enabled by default]
silent.c:1307:9: error: initializer element is not constant
},
^
silent.c:1307:9: error: (near initialization for 'silent_menu[0]')
make: *** [silent.o] Error 1
updated silent.mo with this stuff:Just tested it, works like a champ now. Thanks again. Got a wedding to shoot in a few days, might try it out on some static shots.
- fixed crash if no intervalometer ran before
- MLV header now contains frame count (allows playback with MLRawViewer)
- allow user to choose between DNG, Single-Frame-MLV and Multi-Frame-MLV (disable and re-enable "Silent Pic" from menu to start a new file in Multi-Frame-MLV mode)
delete the comma at the end of line 1301, this is an error that was recently committed to the source
@DeafEyeJedi:
indeed. sorry. i accidentally uploaded it using the wrong uploader. my wrong.
fixed.
What lens is causing trouble with expo override?Was the 600D kit lens (18-55) that I tried originally with. I did try with and without stabilizer and AF incase those have any effect.
general warning:
FRSP are only possible in M mode. in other modes the results are unpredictable
Yes, our halcyon days are over.I had to Google the meaning of that phrase, just learned something new. Thanks!
[...] this thing is next on the list for including into the nightly builds.
@ devs: can you please tell me whats the fastest shutter speed with silent pic right now (with canon 5d mk3 1.1.3) and would it be possible to update the silent.mo from time to time in the #1 post with all the newest additions for the different cams, especially canon 5d mk3 FW 1.1.3 :)))
or for simplification: would it make sense to add the new full res silent pic module to the nightlys.
thanx very much :))
Could anyone please tell me if the current fastest shutter speed for M1 w FRSP is still about 1/15th - correct?On my M1 it doesn't record pictures faster than 239ms.
Possible, but requires some reverse engineering. Currently, all cameras interpret the * button as a half-shutter press.Umm, ok, any reason it needs to be halfshutter? Say, since you are bypassing normal shooting anyway, can't it be made to take a picture when pressing other button that is not used like BGMT_REC 0x1E button (presuming that is the movie REC button and that it's accessible in non-movie mode that is). And this should apply to intervalometer too.
you start to run into camera specific problems, on my camera the rec button is also the LV button, so if you pressed it, you would exit LV, you could probably use SET thoughSince there is a per platform modularisation in ML anyway, it's a given, I guess a selector would be nicer so that a user can choose the button of choice.
not possible to use * for AF?Its possible on my 60D
Its possible on my 60DAnd it's not interpreted as halfshutter so it's usable for AF even for silentpics?
Works 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.
Boo. Can you print the values of lv_focus_status when focusing and when idle?How do I do that?
You can print things with bmp_printf or NotifyBox, or simply printf.Right, I saw that in your code, I'll try.
I 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?
About 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.
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 (https://bitbucket.org/hudson/magic-lantern/commits/9e99764f432025872286f87d5b7e10014061277f?at=fullres-silent-pics) ?wait_lv_frames > 10 gets "Focusing..." every time
every time you need to select a focus point or else it does not work
The 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).
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.How do I see the FPS?
If you don't select a focus point, what happens? It stays on 1?Yep, behaves like wait_lv_frames = 4 does for me.
FPS is easy to check, open the FPS override submenu, but don't enable the feature (just read the default configuration).29.9xx
I recently started using ML on a 1100D for astrophotography.You can't, it's not supported: http://builds.magiclantern.fm/#/features (http://builds.magiclantern.fm/#/features)
I would like to use the silent mode.
Will NOT load on:
1100D (raw_lv_redirect_edmac, raw_lv_request, raw_lv_settings_still_valid, raw_lv_release)
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.Here is a build for 5D3 with firmware 1.1.3: http://we.tl/WTYtLFJv98 (http://we.tl/WTYtLFJv98)
I recently started using ML on a 1100D for astrophotography. Great!Do you plan to use it for planetary or deepsky imaging?
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?For planetary imaging the raw video feature should be useful, but since it's not really available for the 1100D (yet?) I postponed this.
However live view will be active during all acquisitions timeThat'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.
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.We can open the shutter and take FRSP without activated the LV? o.O
/* get out of LiveView, but leave the shutter open */
PauseLiveView();
[ CC ] raw.o
../../src/raw.c: In function 'raw_update_params_work':
../../src/raw.c:538:10: warning: #warning FIXME: are these values correct for 720p and crop modes? [-Wcpp]
#warning FIXME: are these values correct for 720p and crop modes?
^
../../src/raw.c:573:47: error: 'RAW_PHOTO_EDMAC' undeclared (first use in this function)
raw_info.buffer = (void*) shamem_read(RAW_PHOTO_EDMAC);
^
../../src/raw.c:573:47: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [raw.o] Error 1
make[1]: Leaving directory `/magic-lantern/platform/650D.104'
make: *** [650D] Error 2
What am I doing wrong?http://www.magiclantern.fm/forum/index.php?topic=12523.msg120758#msg120758
http://www.magiclantern.fm/forum/index.php?topic=12523.msg120758#msg120758 (http://www.magiclantern.fm/forum/index.php?topic=12523.msg120758#msg120758)I've seen that but I don't know how that helps.
It explains why your numbers don't match. 8<-------------8<-------------8<-------------8<-------------Thanks, although I do understand how things work, I do want to have a useful LiveView for FRSP too, hence my question.
Great. But i can not find a build for 5d mk3 fw123 ??
I know that using LV display gain with say 3 EV get's things on par though, so maybe this is the solution.The problem is that the difference between the exposure time you set and actual exposure time varies. It varies by camera (b/c readout times/speeds vary by camera), varies by shutter speed (faster shutter speeds are more off than slower ones), and it even varies line by line within the same image.
I don't think it wouldn't be that hard to implement something like this, but you would need to precisely quantify this curve on every camera. This data would also be quite useful in other ways, for example getting the exposure metadata exactly correct.
6. For 7D there are 2 builds, maybe 7D owners know why/how.
Same link: https://mega.co.nz/#F!YVBl0ZhS!Z5-ZnbWm8EU7xBE29nNPJw
ASSERT: GetMemoryAddressOfMemoryChunk( GetFirstMemChunk( pMem1AllocateListItem->hMemSuite ) ) == pMessage->pAddress
at SrmActionMemory.c:1154, task RscMgr
lv:0 mode:3
Magic Lantern version : Nightly.2015Mar25.7D203
Mercurial changeset : 5ce22358adb5+ (fullres-silent-pics) tip
Built on 2015-03-25 09:23:46 UTC by magiclantern@magiclantern-VirtualBox.
Free Memory : 238K + 2720K
@guisquil: does the crash happen every time you take a regular picture after a silent one?
Also, I have difficulties understanding your post, since you seem to mix unrelated issues in the same phrase. I'm still confused about when the crash happens.
@SpcCb: I've added the ability to take dark and nearly-bias frames (press half-shutter outside LiveView).
Probably it's not very useful without a way to mix regular pictures with dark/bias frames, but I think this would be a job for the scripting engine.
Still, this trick now lets you take a large number of dark frames without wearing the shutter mechanism.
note 1: by nearly-bias frames I mean dark frames with the shortest exposure time possible - same thing that you would get with a regular picture at 1/4000 and lens cap on, for example.
note 2: in LiveView, with some cameras, it is possible to take true bias frames (with zero exposure time) by removing the range checks from the shutter fine-tuning feature.
note 3: if we ever figure out how to drive the sensor at full resolution and with rolling shutter (thus removing the shutter speed limitation), true bias frames might be possible as well. But for now I'm kinda clueless about how to setup the sensor this way.
I know that using LV display gain with say 3 EV get's things on par though, so maybe this is the solution.On a second thought... LV Display Gain is no solution as it will disable: Zebras, Spot Meter, False Color, Histogram, Waveform and Vectorscope. :-|
@Licaon_Kter: I've updated autofocus detection code; can you check whether it still requires 10 iterations, or fewer of them are enough now?Tested a bit more and the current 5 works ok _most_ of the time, but not always.
@SpcCb: to experiment with dark frames, compile 5ce22358adb5 (not later). This feature caused problems (see last reports); it's not very hard to fix, but it adds quite a bit of complexity (if I fix this, it may delay merging fullres to main tree even more). So I've removed it for now, and revisit it after merging (but the code is still there to experiment with).I saw it, don't worry ;)
What do you mean by "zip exposure time"? (have a link?)I mean camera who have capability to take ultra short exposures by electronic shooter, like 1/10 000s, what is considerate as a 0s exposure (zip => zero, in 'underground' language).
@guisquil: if you take a regular picture, outside LiveView, but with silent pics turned off, do you get any crash?
If not, I think it must be a race condition between silent pics and Canon picture taking code, and it might also happen if you try to take a silent pic by fully pressing the shutter (instead of just half-press).
Is this page: <removed>Nope, no sense since so few added feedback here too, and there are plenty of issues before this will get merged.
One other thing that amazes me: a normal CR2 file at 100 iso from my 550D is 19.0 MB. A DNG from the FRSP at 100 iso is 31.3 MB. Where is the difference coming from?CR2s are compressed. Silent pics are the raw data dumped straight into uncompressed DNG format (or MLV). Canon probably uses some kind of lossless compression implemented in hardware. AFAIK, we don't know how to get the Canon firmware to save some raw image buffer as a CR2 or use the hardware compression module, though it should be theoretically possible if it is reverse engineered. We could also do our own compression, but running on the general purpose ARM processor, it would be really slow (potentially several minutes to save a single, full res image).
2. When recording you get the same black screen with "Manual (M) mode required"
BUT then the led blinks orange fast and camera shuts down!
Furthermore, during that pause, a fake shutter sound gets recorded in the video :PJust tried it. That is crazy!
recording is paused, and it's resumed cleanly (!) after this screen goes away.Normal (non raw) picture taking (non silent) during filming yields that for me.
Furthermore, during that pause, a fake shutter sound gets recorded in the video :P
Alright folks, full-res silent pictures are now in the nightly builds!Pô po pôo po ! Huge ! ^.^
Any chance that we can use a * button as a back focus button on 5D3 to focus rather than taking the silent pic (halfway shutter works well) but if I had the * back button set as a focus (it still takes the silent photo as if I had pressed the shutter but didn't) I remember seeing @Licaon_Kter provide a fix copy of FRSP to being able to use * button for the M or did I read that one from another thread earlier?It's already fixed, well on my M1 is, does it work on your M1 but not on 5D3?
<path to file.DNG/MLV...>
Saving 5....x2... ( xxx ms, xx Mb/s)
Captured in xxx ms.
While yours doesn't or it looks like it does really fast. Do you have image review on or something?They are saved if you use the MLV format.
Didn't notice they are not present when you save as DNG, since I don't really use this info.
Size: 96
Time: 1705.499000 ms
Name: 'EF100mm f/2.8 Macro USM'
Serial: ''
Focal Len: 100 mm
Focus Dist: 139 mm
Aperture: f/8.00
IS Mode: 0
AF Mode: 3
Lens ID: 0x000000BE
Flags: 0x00000000
edgar@linux-9hqd:~/fullres> exiv2 -pt 5.CR2 | grep -ai lens
Exif.CanonCs.LensType Short 1 Canon EF 100mm f/2.8 Macro
Exif.CanonCs.Lens Short 3 100.0 mm
Exif.Canon.LensModel Ascii 70 EF100mm f/2.8 Macro USM
Exif.Photo.LensSpecification Rational 4 100/1 100/1 0/0 0/0
Exif.Photo.LensModel Ascii 70 EF100mm f/2.8 Macro USM
Exif.Photo.LensSerialNumber Ascii 12 0000000000
edgar@linux-9hqd:~/fullres> exiv2 -pt 4.dng | grep -ai lens
edgar@linux-9hqd:~/fullres>
When I set Silent Picture to Full-Res, the Silent tab turns "grey green" I suppose this has something to do with it telling me some setting is not alright.
If have the camera in P mode and when I scroll over FRSP it says FRSP only works in (M) Manual Photo mode. So I put it in Manual mode with Liveview ON and then it says FRSP only works with M (manual) Photo mode.Auto ISO. You must also select an ISO; auto ISO is not allowed (every exposure setting must be manual).
and how do you manage with the cards filling so fast, like 500 shots max in a 16gb card
two things, why is the shutter limited to 0.8'', i was having wet dreams of full res star trails....That's the way it works: http://www.magiclantern.fm/forum/index.php?topic=12523.msg120758#msg120758 (http://www.magiclantern.fm/forum/index.php?topic=12523.msg120758#msg120758)
edit: It works sometimes if I tap the screen each time but still not entirely consistent.Can you try to change C.FnIV mode say from 1 to 3 or the other way around after you power on and then (after first selecting focus point) try a silent pic?
two things, why is the shutter limited to 0.8'', i was having wet dreams of full res star trails....
Limitations:
[....]
- 500D, 550D and 600D can't take exposures longer than 0.8 seconds :(
[...]
Yes, you were, in fact, correct regarding ExpSim being DISABLED in the ML menu (thus causing the inconsistent back focus) so once I enabled that ON.Now, this is a bug then?
Thinking about the 'card filling so fast' issue and the suggestion of buy a 128/256, i think the 600d max is 64gb, which is still only about 2k shots
[...]eye-fi[...]
edit: help: liveview with halfshutter gives me DNG, how to get MLV with FRSP?Also load mlv_rec module and then in the silent module options select MLV instead of DNG
Just remember when capturing tha the camera must be in manual mode and liveview (not movie mode} exposure should be 1/15 of a second or slower (Alex please correct me if this is no longer true).Using a slow speed yields even slower times, on my M1:
@Kharak,
This may answer your questions, if not pm me please. Just remember when capturing tha the camera must be in manual mode and liveview (not movie mode} exposure should be 1/15 of a second or slower (Alex please correct me if this is no longer true). A variable ND filter will help with his.
Using a slow speed yields even slower times, on my M1:
if I set speed = I get FRSP speed
1/125 = 240ms ( 1/4 )
1/4 = 500ms ( 1/2 )
0.5" = 789ms
- method 1: somebody has to sit down and do the measurement for every single shutter speed (and repeat for every camera model) - really boring and hard to maintain
SV Time (ms)
15" 16987
13" 13175
10" 12109
8" 8659
6" 6220
5" 5731
4" 4495
3"2 3542
3" 3276
2"5 3031
2" 2431
1"6 1937
1"5 1804
1"3 1681
1" 1372
0"8 1131
0"7 1065
0"6 1004
0"5 849
0"4 739
0"3 697
1/4 592
1/5 513
1/6 497
1/8 445
1/10 408
1/13 399
1/15 382
1/20 363
1/25 359
1/30 350
1/40 343
1/45 341
1/50 339
1/60 334
1/80 331
1/90 330
1/100 329
1/125 326
1/160 325
1/180 324
1/200 324
1/250 322
1/320 322
1/350 321
1/400 321
1/500 317
Tv Tv t2i ms dif m1 ms diff
sec ms actual actual
1/4000 0.3 281 280.8 238 237.8
1/3200 0.3 281 280.7 238 237.7
1/2500 0.4 282 281.6 238 237.6
1/2000 0.5 282 281.5 238 237.5
1/1600 0.6 281 280.4 238 237.4
1/1250 0.8 281 280.2 238 237.2
1/1000 1.0 281 280.0 238 237.0
1/800 1.3 281 279.8 238 236.8
1/640 1.6 281 279.4 238 236.4
1/500 2.0 281 279.0 238 236.0
1/400 2.5 282 279.5 238 235.5
1/320 3.1 283 279.9 240 236.9
1/250 4.0 284 280.0 240 236.0
1/200 5.0 286 281.0 241 236.0
1/160 6.3 287 280.8 243 236.8
1/125 8.0 288 280.0 244 236.0
1/100 10.0 291 281.0 248 238.0
1/80 12.5 292 279.5 250 237.5
1/60 16.7 297 280.3 252 235.3
1/50 20.0 301 281.0 257 237.0
1/40 25.0 304 279.0 262 237.0
1/30 33.3 313 279.7 267 233.7
1/25 40.0 322 282.0 278 238.0
1/20 50.0 330 280.0 285 235.0
1/15 66.7 344 277.3 300 233.3
1/13 76.9 364 287.1 317 240.1
1/10 100.0 380 280.0 333 233.0
1/8 125.0 410 285.0 362 237.0
1/6 166.7 450 283.3 400 233.3
1/5 200.0 481 281.0 431 231.0
1/4 250.0 560 310.0 510 260.0
300 637 337.0 584 284.0
400 701 301.0 655 255.0
500 820 320.0 765 265.0
600 974 374.0 920 320.0
800 1101 301.0 1048 248.0
1000 1290 290.0
1300 1599 299.0
1600 1853 253.0
2000 2329 329.0
2500 2947 447.0
3200 3457 257.0
4000 4408 408.0
5000 5643 643.0
6000 6664 664.0
8000 8569 569.0
10000 11038 1038.0
13000 13079 79.0
15000 16887 1887.0
Tv Time Acc out[1] out[2] loop
1/4000 15 345 0 3532 1
1/3200 15 345 0 3532 1
1/2500 15 345 0 3532 1
1/2000 15 345 0 3532 1
1/1600 15 345 0 3532 1
1/1250 15 345 0 3532 1
1/1000 15 345 0 3532 1
1/800 15 345 0 3532 1
1/640 15 345 0 3532 1
1/500 15 345 0 3532 1
1/400 16 368 0 3532 1
1/320 17 391 0 3532 1
1/250 17 391 0 3532 1
1/200 19 437 0 3532 1
1/160 20 460 0 3532 1
1/125 21 483 0 3532 1
1/100 24 552 0 3532 1
1/80 26 599 0 3532 1
1/60 29 668 0 3532 1
1/50 34 783 0 3532 1
1/40 38 875 0 3532 1
1/30 45 1036 0 3532 1
1/25 54 1244 0 3532 1
1/20 62 1428 0 3532 1
1/15 77 1774 0 3532 1
1/13 95 2188 0 3532 1
1/10 111 2557 0 3532 1
1/8 140 3225 0 3532 1
1/6 177 4078 0 3532 1
1/5 208 4792 0 3532 1
1/4 266 1589 5004 3532 2
0.3" 341 3317 5004 3532 2
0.4" 413 4976 5004 3532 2
0.5" 523 2511 5004 3532 3
0.6" 678 1082 5004 3532 4
0.8" 805 4009 5004 3532 4
1" 1043 4493 5004 3532 5
1.3" 1352 1612 5004 3532 7
1.6" 1607 2488 5004 3532 8
2" 2083 3456 5004 3532 10
2.5" 2700 2672 5004 3532 13
3.2" 3210 4423 5004 3532 15
4" 4162 1359 5004 3532 20
5" 5396 4792 5004 3532 25
6" 6417 3317 5004 3532 30
8" 8320 2165 5004 3532 39
10" 10789 4055 5004 3532 50
12.5" 12830 1082 5004 3532 60
16" 16637 3801 5004 3532 77
20" 21575 2580 5004 3532 100
25" 25656 1612 5004 3532 119
32" 32323 5230 5004 3532 149
when the screen is black without any information after review is timed out.
TV ML Canon ms
-4.0 16" 15" 16887
-3.8 16" 15" 16887
-3.7 16" 13" 13080
-3.6 12.5" 13" 13080
-3.5 10" 10" 12014
-3.3 10" 10" 11038
-3.2 10" 8" 8569
-3.1 10" 8" 8569
-3.0 8" 8" 8569
-2.8 8" 8" 8569
-2.7 8" 8" 6665
-2.6 6" 6" 6665
-2.5 6" 5" 6132
-2.3 5" 5" 5644
-2.2 5" 4" 4410
-2.1 5" 4" 4410
-2.0 4" 4" 4410
-1.8 4" 4" 4410
-1.7 4" 3"2 3458
-1.6 3.2" 3"2 3458
-1.5 3" 2"5 3191
-1.3 2.5" 2"5 2948
-1.2 2.5" 2" 2331
-1.1 2.5" 2" 2331
-1.0 2" 2" 2331
-0.8 2" 2" 2331
-0.7 2" 1"6 1854
-0.6 1.6" 1"6 1854
-0.5 1.5" 1"3 1721
-0.3 1.3" 1"3 1599
-0.2 1.3" 1" 1290
-0.1 1.3" 1" 1290
0.0 1" 1" 1290
0.1 1" 1" 1290
0.2 1" 0"8 1049
0.3 0.8" 0"8 1049
0.5 0.7" 0"6 983
0.6 0.6" 0"6 922
0.7 0.6" 0"5 767
0.8 0.6" 0"5 767
1.0 0.5" 0"5 767
1.1 0.5" 0"5 767
1.2 0.5" 0"4 656
1.3 0.4" 0"4 656
1.5 0.3" 0"3 614
1.6 0.3" 0"3 584
1.7 1/3 4 510
1.8 1/3 4 510
2.0 1/4 4 510
2.1 1/4 4 510
2.2 1/4 5 431
2.3 1/5 5 431
2.5 1/6 6 416
2.6 1/6 6 401
2.7 1/6 8 363
2.8 1/6 8 363
3.0 1/8 8 363
3.1 1/8 8 363
3.2 1/8 10 334
3.3 1/10 10 334
3.5 1/10 13 327
3.6 1/13 13 319
3.7 1/13 15 301
3.8 1/13 15 301
4.0 1/15 15 301
4.1 1/15 15 301
4.2 1/15 20 285
4.3 1/20 20 285
4.5 1/20 25 281
4.6 1/25 25 278
4.7 1/27 30 269
4.8 1/28 30 269
5.0 1/30 30 269
5.1 1/35 30 269
5.2 1/38 40 261
5.3 1/40 40 261
5.5 1/45 50 261
5.6 1/50 50 258
5.7 1/55 60 253
5.8 1/58 60 253
6.0 1/60 60 253
6.1 1/70 60 253
6.2 1/80 80 251
6.3 1/80 80 251
6.5 1/90 100 251
6.6 1/100 100 251
6.7 1/110 125 251
6.8 1/120 125 251
7.0 1/125 125 251
7.1 1/140 125 251
7.2 1/150 160 251
7.3 1/160 160 251
7.5 1/180 200 251
7.6 1/200 200 251
7.7 1/215 250 251
7.8 1/235 250 251
8.0 1/250 250 251
8.1 1/280 250 251
8.2 1/300 320 251
8.3 1/320 320 251
8.5 1/350 400 251
8.6 1/400 400 251
8.7 1/430 500 251
8.8 1/470 500 251
9.0 1/500 500 251
9.1 1/560 500 251
9.2 1/600 640 251
9.3 1/640 640 251
9.5 1/750 800 251
9.6 1/800 800 251
9.7 1/850 1000 251
9.8 1/900 1000 251
10.0 1/1000 1000 251
10.1 1/1100 1000 251
10.2 1/1200 1250 251
10.3 1/1250 1250 251
10.5 1/1500 1600 251
10.6 1/1600 1600 251
10.7 1/1700 2000 251
10.8 1/1900 2000 251
11.0 1/2000 2000 251
11.1 1/2300 2000 251
11.2 1/2400 2500 251
11.3 1/2500 2500 251
11.5 1/3000 3200 251
11.6 1/3200 3200 251
11.7 1/3500 4000 251
11.8 1/3800 4000 251
12.0 1/4000 4000 251
12.1 1/4500 4000 251
12.2 1/4800 4000 251
12.3 1/5000 4000 251
12.5 1/6000 4000 251
12.6 1/6400 4000 251
12.7 1/7200 4000 251
12.8 1/7800 4000 251
13.0 1/8000 4000 251
ISO, it keeps jumping to the highest 3200 once the longest allowed shutter speed is reached. So if I start at 800 1/25th, it'll eventually roll over to 3200 3". Is it expected behavior? Or should I set the max shutter speed to 10sec? Other ideas?
I see all these wonderful stary nightlapses, but I also want to blend in some of the sunset.
Hello,A few pages back and you will see posts that 600D has 0.8 sec Shutter limit, posts also include explanation links. I was also dreaming about starry timelapses with my 600D, but with current nightlies it is not possible (correct me if new versions allow more than 0.8s) In the old stable release there is no FRSP. Hope the community can figure it out.
There're surprisingly few tutorials on silent full-rez timelapses of sunsets and all searches bring here. So I'll dare to ask in this branch.
I am using the latest nightly build (maybe it's an overkill and I need simply the latest ML, pls, tell me) on my T3i (600D) and willing to learn only one thing - capture a silent full-rez timelapse of sunrise/sunset. The problem: I set up ETTR, intervalometer, silent mode, M-mode, but regardless of how I reinforce the ISO, it keeps jumping to the highest 3200 once the longest allowed shutter speed is reached. So if I start at 800 1/25th, it'll eventually roll over to 3200 3". Is it expected behavior? Or should I set the max shutter speed to 10sec? Other ideas?
I see all these wonderful stary nightlapses, but I also want to blend in some of the sunset.
with mlv_dump you should preprocess the MLV file.
e.g. mlv_dump -A 25000 -o out.mlv in.mlv
Probably I was more wondering about re-inforcing the ISO. Yes, I read about the longest shutter speed, I understand that I may not get a night-lapse after all, but... I thought if I set ISO to 800, it wouldn't go up without me specifically telling it to.
SV Time (ms)
15" 16874
13" 13065
10" 11023
8" 8553
6" 6649
5" 5628
4" 4393
3"2 3441
2"5 2931
2" 2313
1"6 1837
1"3 1582
1" 1272
0"8 1034
0"6 906
0"5 751
0"4 641
0"3 569
1/4 493
1/5 416
1/6 384
1/8 347
1/10 319
1/13 302
1/15 284
1/20 269
1/25 261
1/30 251
1/40 245
1/50 241
1/60 236
1/80 234
1/100 232
1/125 228
1/160 227
1/200 226
1/250 224
1/320 224
1/400 223
1/500 220
I shot a test timelapse today and got some strange artifacts. Don't have direct comparison with normal CR2, but I'm pretty sure I never saw them before. It's iso 100 @ 5 sec exposure.
Underexposed. Increase exposure and/or ISO.
ML ASSERT:
lv
at ../../src/zebra.c:4202 (idle_display_dim), task cls_task
lv:0 mode:3
Magic Lantern version : Nightly.2015Apr15.EOSM202
Mercurial changeset : 693ec08e528e (unified) tip
Built on 2015-04-14 22:08:34 UTC by jenkins@magiclantern.fm.
Free Memory : 134K + 3233K
and the screen looked like this (had to pull battery for it to recover):ML ASSERT:
lv
at ../../src/raw.c:1690 (raw_lv_request), task ettr_task
lv:0 mode:3
Magic Lantern version : Nightly.2015Apr15.EOSM202
Mercurial changeset : 693ec08e528e (unified) tip
Built on 2015-04-14 22:08:34 UTC by jenkins@magiclantern.fm.
Free Memory : 140K + 3095K
andML ASSERT:
lv
at ../../src/raw.c:1690 (raw_lv_request), task livev_hiprio_task
lv:0 mode:3
Magic Lantern version : Nightly.2015Apr15.EOSM202
Mercurial changeset : 693ec08e528e (unified) tip
Built on 2015-04-14 22:08:34 UTC by jenkins@magiclantern.fm.
Free Memory : 158K + 3135K
Sure, and blow all highlights :D Blame ETTR for exposure :DYeah ETTR and FRSP don't yet cooperate.
Sure, and blow all highlights :D Blame ETTR for exposure :D
What do they mean?
Trying to record a bit with the intervalometer, to answer @JoshuOne, got the timer running, 10s, FRSP, MLV, the screen was always off which is nice, but after 9 frames or so:Code: [Select]ML ASSERT:
lv
at ../../src/zebra.c:4202 (idle_display_dim), task cls_task
lv:0 mode:3
Sounds like expo override may not work with STM lenses. Any other STM lens users can confirm?Confirmed on my EF-M 22mm 1:2 STM too.
Can you manage to take a picture with the DOF preview button pressed?Umm, having C.FnIV (6) setting Trash for "DoF preview", a single-press will trigger a quick iris closing up to my set up aperture AND after the iris moves back to max-aperture it will trigger a FRSP too, weird !? Also while *-press or half-shutter press exit the preview, pressing Trash again does not.
- EF-M 18-55mm STM Expo override does not work, exposure in FRSP does not change at all when changing aperture.Yep, confirmed the same behaviour with my own EF-M 18-55mm STM
- EF-M 11-22mm STM Same behaviour, expo override does not work
During my test yesterday on 500D (nightly 2015 March 29th) expo override worked fine for my STM lenses, as I already posted.
But now I've tested it also on my recently purchased EOS M. And there is really a problem with STM lenses.
Lenses I have tested (EOS-M nightly 2015 April 14th)
- EF-M 18-55mm STM Expo override does not work, exposure in FRSP does not change at all when changing aperture.
- EF-M 11-22mm STM Same behaviour, expo override does not work
- EF-M 22mm STM Exposure in FRSP does not change when going from F2.0 to F11, but there is some degree of exposure reduction at F16 and F22
Using the EF to EF-M adapter on EOS M I get:
- EF 50mm f1.8 and several EF-S USM lenses: expo override works Ok.
- EF-S 24mm STM: same behaviour as EF-M 22mm STM prime, exposure only changes for F16 and F22
- EF-S 18-55mm STM and EF-S 55-250mm STM: same behaviour as EF-M zooms, expo override not working, exposure does not change at all.
Tonight I will repeat tests on 500D with a more recent nightly.
It's funny to see that I'm kind of the first to point out that problem.The slow speed ( max 1/4 ) kinda duped me, a lower aperture was not wanted/needed anyway, hence this got away.
Tv Time Acc loop
1/4000 10 114 1
1/3200 10 114 1
1/2500 10 114 1
1/2000 10 114 1
1/1600 10 114 1
1/1250 10 114 1
1/1000 10 114 1
1/800 10 114 1
1/640 10 114 1
1/500 10 114 1
1/400 11 125 1
1/320 12 137 1
1/250 13 148 1
1/200 14 160 1
1/160 15 171 1
1/125 17 194 1
1/100 19 217 1
1/80 21 240 1
1/60 25 285 1
1/50 30 342 1
1/40 33 377 1
1/30 41 468 1
1/25 51 582 1
1/20 59 674 1
1/15 73 834 1
1/13 93 1062 1
1/10 109 1245 1
1/8 138 1577 1
1/6 177 2022 1
1/5 209 2388 1
1/4 268 91 2
0.3" 345 971 2
0.4" 409 1702 2
0.5" 528 3071 2
0.6" 682 1805 3
0.8" 809 240 4
1" 1047 2960 4
3.) Activate Silent.moyou need mlv_rec.mo loaded too for saving in .MLV
Add the 18-135mm STM to this list, I've tested it yesterday on my 70D (firmware 1.1.1B) and it wouldn't work even with Expo Override...On my M I had a whole afternoon of fun with the EF/S to EF-M converter and a Canon EF 100mm f/2.8 L IS USM, nice lens, BUT it behaves the same, neither normally nor with ExpOverride, trying to make a FRPS goes to max apperture ( 2.8 ) and snaps an overexposed pic even if I set it up for the lowest apperture ( 32 ) :(
Sounds like expo override may not work with STM lenses. Any other STM lens users can confirm?
... Setting aperture does not work on EF 24mm f/2.8 IS USM ...with FRSP. When I try to close diaphragm with rear wheel - it closes a bit, than opens again. I found the only way to make it works - move photo/video switch to video mode. Yes, I got 1/30 exposure time. Maybe it's possible to solve this "video" exposure time limitation with FPS override, for example - i didn't try.
@a1ex: Should we implement this into the silent modul? Or are there other ideas?https://bitbucket.org/hudson/magic-lantern/pull-request/603/dng-module-wip
So, DNG's recorded by FRSP and DNG's converted from MLV - will have different compression?Yes, but only if you use MLRawViewer to convert to DNG, or if you use another tool to compress the DNG after conversion (like SlimRaw, Adobe DNG Converter, etc.). Most other MLV to DNG converters do not compress the DNG output.
The MLV format itself supports lossless compression, which can be applied by mlv_dump. Depending on the particular data and compression scheme used (there is a newer one that hasn't been merged yet), you might see better compression ratios than with simply applying something like rar or zip to the MLV file like you did.
I try to compress about 6 GB file:
mlv_dump.exe -o compress.mlv -v -e -c -b 16 -l 9 -x big.mlv
and I get about 4 GB file, good.
Than, i try to extract dng from that file:
mlv_dump.exe --dng --no-cs compress.mlv -o
I get about 2 GB of dngs and mlv_dump.exe crashes having about 2 GB memory allocated according to Task manager. My PC is 64 bit with 24 GB memory.
Yes, but this not works for me :(
The fastest shutter speed I've got is around 1/10 seconds
after some time I decided to install ML on 550D.. only interest at this moment is silnet pictures for timelapse
cleanup:
call("FA_DeleteTestImage", job);
if (copy_job)
{
call("FA_DeleteTestImage", copy_job);
}
+ long_exposure_fix();
gui_uilock(UILOCK_NONE);
static void long_exposure_fix()
{
unsigned shutter_old = lens_info.raw_shutter;
if ((cam_500d || cam_550d || cam_600d) && shutter_old < SHUTTER_0s8)
{
unsigned shutter = SHUTTER_1_500;
prop_request_change_wait( PROP_SHUTTER, &shutter, 4, 100);
void* job = (void*) call("FA_CreateTestImage");
call("FA_CaptureTestImage", job);
call("FA_DeleteTestImage", job);
prop_request_change_wait( PROP_SHUTTER, &shutter_old, 4, 100);
}
}
FRSP continuous :Nice stuff! It's been awfuly quiet on this forum lately, almost no significant updates or new features, nice to see someone's have new awesome ideas.
I believe your previous long exposure patch made into official nightly buildsLong exposure patch for (500D, 550D, 600D) is in the official nightly builds.
What about all that FRSP features, any chance they will appear in the official builds someday?
In MLV some data of EXIF register, in DNG isn't present.Yes, this will fix that IIRC: https://bitbucket.org/hudson/magic-lantern/pull-requests/603/dng-module-wip/diff
call("lv_start"); /* this enables LiveView feed without actuating the shutter */
lv = 1; /* this tells ML we are in LiveView (not sure if needed, since we are not entering LiveView as usual) */
One observation is that apparently DNG is much faster than MLV for silent pics - I get 320ms vs. ~1500 ms respectively, so I think I'll stick with DNGs. But is the difference normal? Perhaps 50D's ancient CPU struggles with MLV packing?I think maybe you are confusing "capture time" with "save time". "Capture time" is the time to capture the frame (sensor readout), not the time it actually takes to save it to the SD/CF card. It roughly corresponds to the effective shutter speed. 320ms is impossibly fast for the time it takes to save a FRSP (near 100MB/s write would be required, IIRC the 50D maxes out at around half that). Perhaps you changed the shutter speed when you tried MLV and saw a different "capture time"?
I take silent pics with my 50D? The first post here mentions "at least every 10s"
- If you use the intervalometer, I recommend taking a picture every 10 or 15 seconds (not faster). Saving DNGs from the camera is slow.The 10 second limitation is actually from the slowness of DNG saving time, this is why you should use MLV (and it's one of the reasons MLV was implemented for FRPS), it's much faster to actually save.
Too bad that I cannot see DNG files inside the camera.
I don't really have experience with MLV format - will it allow me to see recent individual shots inside camera easily? If yes, how to do that?Interesting question, as i never tried to watch my recorded timelapses on camera - i simply have no reason for that, as it's usually to late to fix anything when it done :) I just take MKII wich i use for timelapses, shot some silent MLVs, activated mlv_play, press play... and nothing :( Then I activated file_man, opened folder (It's in Debug menu), choose "View" - and there it works :)
updated silent.mo with this stuff:
- allow user to choose between DNG, Single-Frame-MLV and Multi-Frame-MLV (disable and re-enable "Silent Pic" from menu to start a new file in Multi-Frame-MLV mode)
But I don't use intervalometer! It is fully externally operated (from my macro rail). So it looks like I need to enable and then disable intervalometer to start a new MLV file?
do silent pics get any long exposure noise reduction inside camera?
Creating a new MLV file when exiting LiveView could be a nice enhancement.
hSuite = srm_malloc_suite(0);
Has anyone tried the new Burst mode?
How do I get the menu from the picture below that was posted by Greg (http://www.magiclantern.fm/forum/index.php?topic=12523.msg156393#msg156393) some time ago? ]better ask @Greg directly... and do comeback with the answer and a Pull Request too :P
static void frsp_burst()
{
msleep(500);
PauseLiveView();
gui_uilock(UILOCK_EVERYTHING);
clrscr();
vram_clear_lv();
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);
info_led_on();
call("FA_CaptureTestImage", job1);
call("FA_CaptureTestImage", job2);
call("FA_CaptureTestImage", job3);
call("FA_CaptureTestImage", job4);
info_led_off();
int new_gui = GUISTATE_QR;
prop_request_change_wait(PROP_GUI_STATE, &new_gui, 4, 1000);
gui_uilock(UILOCK_EVERYTHING);
raw_set_dirty();
raw_update_params();
clrscr();
raw_preview_fast();
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);
gui_uilock(UILOCK_NONE);
}
<!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>
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
(and likely switching to ISO 1600 from 3200).
It looks like my 50D is not supported?
Alex: I found a couple of "call("FA_CaptureTestImage", job)" lines in silent.c, long_exposure_fix, but I don't see the 20s timeout. I do see this line right before the function:
Greg: I can't find any reference to capture_err_time_addr in the unified official ML source code...
make 50D
cd modules
make
cd ..
cd platform/50D.109
make zip
ff079854: e28f20ac add r2, pc, #172 ; ff079908: (42736373) *"scsBulbEnd"
ff079858: e3a01003 mov r1, #3
ff07985c: e20000ff and r0, r0, #255 ; 0xff
ff079860: ebffa8aa bl loc_ff063b10
ff079864: e51f088c ldr r0, [pc, #-2188] ; ff078fe0: (00003208)
Is "bulb_end_addr" related to the value between parentheses (00003208) ? :-\
0x3314 + 0x10 = 0x3324
Which gcc version are you using? What about the arm cross-compiler? Mine are:
gcc: 5.1.1
arm-linux-gnu-gcc: 5.3.1
I think I saw recommendation to use 4.8.x (for both?).
500DCode: [Select]0x3314 + 0x10 = 0x3324
So try 0x3218 (I'm not 100% sure I don't have 50D ROM).
You can check if the address is correct with 30s exposure and delayed_call.
ff07ccf0: e28f20a8 add r2, pc, #168 ; ff07cda0: (42736373) *"scsBulbEnd"
ff07ccf4: e3a01003 mov r1, #3
ff07ccf8: e20000ff and r0, r0, #255 ; 0xff
ff07ccfc: ebffa765 bl loc_ff066a98
ff07cd00: e51f0500 ldr r0, [pc, #-1280] ; ff07c808: (00003314)
ff07cd04: e3a01001 mov r1, #1
ff07cd08: e5801010 str r1, [r0, #16] <------------------
ff879854: e28f20ac add r2, pc, #172 ; ff879908: (42736373) *"scsBulbEnd"
ff879858: e3a01003 mov r1, #3
ff87985c: e20000ff and r0, r0, #255 ; 0xff
ff879860: ebffa8aa bl loc_ff863b10
ff879864: e51f088c ldr r0, [pc, #-2188] ; ff878fe0: (00003208)
ff879868: e3a01001 mov r1, #1
ff87986c: e5801010 str r1, [r0, #16] <--------------------
Building module silent...
Updated HGVERSION
[ README ] module_strings.h
[ CC ] silent.o
silent.c: In function 'silent_pic_take_lv':
silent.c:969:9: error: implicit declaration of function 'PauseLiveView' [-Werror=implicit-function-declaration]
PauseLiveView();
^
silent.c:1014:9: error: implicit declaration of function 'ResumeLiveView' [-Werror=implicit-function-declaration]
if (LV_PAUSED) ResumeLiveView();
^
silent.c: In function 'display_off_if_qr_mode':
silent.c:1083:13: error: implicit declaration of function 'display_off' [-Werror=implicit-function-declaration]
display_off();
^
silent.c: In function 'silent_pic_take_fullres':
silent.c:1228:9: error: implicit declaration of function 'display_on' [-Werror=implicit-function-declaration]
display_on();
^
cc1: some warnings being treated as errors
make[3]: *** [silent.o] Error 1
********************************************************
WARNING: module silent failed to build, deleting
********************************************************
hg clone -r unified ssh://hg@bitbucket.org/Gr3g01/magic-lantern-frsp-long-expo
cd magic-lantern-frsp-long-expo
hg pull -b unified ssh://hg@bitbucket.org/hudson/magic-lantern
hg merge
But you get a conflict (easy to fix)
Now you need to find a way to "Bulb Start" for cameras without Bulb shutter speed in M mode.
run_test:ff09e1ac:90:16: hJob(0x43b00070)(tv=0x88,av=0x24,iso=0x48)
...
ShootCaptu:ff0848b4:93:16: ->FA DARK_MEM1 iso:0x48,tv:0x88,av:0x24,tp:153,po:185
void* job = (void*) call("FA_CreateTestImage");
ASSERT(*(uint8_t*)(job + 0x78) == prop_shutter);
*(uint8_t*)(job + 0x78) = SHUTTER_BULB;
delayed_call(bulb_time * 1000, bulb_stop, 0);
call("FA_CaptureTestImage", job);
run_test:ff09e1ac:90:16: hJob(0x43b00070)(tv=0x88,av=0x24,iso=0x48)
...
ShootCaptu:ff0848b4:93:16: ->FA DARK_MEM1 iso:0x48,tv:0xc,av:0x24,tp:153,po:185
...
ShootCaptu:ff086138:93:03: scsVdInterrupt
...
ShootCaptu:ff086138:93:03: scsVdInterrupt
...
ShootCaptu:ff086138:93:03: scsVdInterrupt
ShootCaptu:ff086188:93:03: Accumulation Stop
ShootCaptu:ff0861c4:93:03: Last VD Count
(job + 0x64) // not tested
static void run_test()
{
msleep(500);
console_show();
void* job = (void*) call("FA_CreateTestImage");
FILE* f = FIO_CreateFile("FRSP.LOG");
my_fprintf(f, "Tv val = 0x%x\n", lens_info.raw_shutter);
my_fprintf(f, "Av val = 0x%x\n", lens_info.raw_aperture);
my_fprintf(f, "ISO val = 0x%x\n\n", lens_info.raw_iso);
for (int i = 0; i < 1000; i++)
{
if(lens_info.raw_shutter == *(uint8_t*)(job + i))
{
printf("FA_CreateTestImage Tv Addr : 0x%x\n", i);
}
if (f)
{
my_fprintf(f, "Addr = 0x%03x Val = 0x%x\n", i, *(uint8_t*)(job + i));
}
}
if (f)
{
FIO_CloseFile(f);
}
call("FA_DeleteTestImage", job);
printf("Done.\n");
}
*1st @a1ex said in one of the comments that we can read the dng files if I remember well, but I wasn't able to do so even if the module was activated. I'm probably doing something wrong.
*I couldn't make it work with intervalometer, any help would be great! And also there was something that I didn't get well Alex advise us to do 10-15 sec of interval coz it's slow to save the photo in dng, but it doesn't take that long it takes between 2-3 seconds (Canon 6d) is it for security? The way I tried it is taking one picture after another manual by pressing the shutter twice whenever I get black screen... It that ok?
Which settings do you use for intervalometer? By default Intervalometer and FRSP are configured to use the same trigger (half press shutter) which won't work that well (or at all). Try using "Leave menu" Intervalometer trigger instead.Great Yeah that worked perfectly! Thank you
Link to a1ex' comment would be just fine. I have no idea what you are trying to do. Please explain in detail.I meant if we wanna see the dng files we took, is it possible to visualize them in file manager?
MLV only AFAIK.Yeah that's what I thought. Found the post from a1ex
MLV only AFAIK.Ah it worked it just takes a lot of time to load it. :)
ShootCaptu:ff07ba7c:93:03: EShutCapture
ShootCaptu:00070d90:00:00: *** SCSEshutState: (0) --3--> (1) ff07ce98 (x=781128 z=0 t=0)
ShootCaptu:ff07ced0:93:03: scsCapReadyEshut
ShootCaptu:00070f48:00:00: *** RegisterHead1InterruptHandler(0x0, 0xff07ce54 "EshutterDone(%d)", &"ShootCapture"), from ff07cf04
**INTERRUP:ff07ce78:93:03: EshutterDone(15925)
ShootCaptu:00070d90:00:00: *** SCSEshutState: (1) --12--> (2) ff07d1c8 (x=781128 z=0 t=0)
ShootCaptu:ff07d200:93:03: scsEshutDone
ShootCaptu:00070d90:00:00: *** SCSEshutState: (2) --13--> (4) ff07d2a0 (x=781128 z=0 t=0)
*(uint8_t*)(job + 0x64 + 0x24) = 1;
*(uint8_t*)(job + 0x64 + 0x25) = 1;
Try 0xff085b14How exactly did you reach this idea?
If this does not work, try 0xff885b14
ff14aab0: e28f2f86 add r2, pc, #536 ; ff14acd0: (42736373) *"scsBulbEnd"and
ff14aab4: e20000ff and r0, r0, #255 ; 0xff
ff14aab8: e3a01003 mov r1, #3
ff14aabc: eb3aec33 bl loc_5b90
ff14aac0: e51f0460 ldr r0, [pc, #-1120] ; ff14a668: (00025280)
ff14aac4: e3a01001 mov r1, #1
ff14aac8: e5801014 str r1, [r0, #20]
ff1bf440: e28f20dc add r2, pc, #220 ; ff1bf524: (435f4146) *"FA_CaptureTestImage(hJob:%#lx)"I already tried the following with no success:
...
ff1bf4b8: e51f1168 ldr r1, [pc, #-360] ; ff1bf358: (00004e20)
bulb_end_addr = 0x25294;BTW memory locations in the code look prety similar to 60D.111
capture_err_time_addr = 0xff1bf358; // or 0xff9bf358
frsp_tv_addr = 0x64; // or 0x78 as indicated by A1ex for 60D
bulb_end_addr -> 0x25190 + 0x14 = 0x251A4
capture_err_time_addr -> 0xFF1C1FAC
frsp_tv_addr -> finding in the ROM may take some more time, try this - http://www.magiclantern.fm/forum/index.php?topic=12523.msg168625#msg168625---
if (shooting_mode != SHOOTMODE_M)
{
error_msg = "Manual (M) mode is required.";
goto err;
}
+++
if (shooting_mode != SHOOTMODE_M && shooting_mode != SHOOTMODE_BULB)
{
error_msg = "Manual (M) or Bulb (B) mode is required.";
goto err;
}
Dear all,
is it possible to use FRSP bulb mode with EOS 700D?
700D
------
capture_err_time_addr = 0xff1e1a38
bulb_end_addr = 0x24960
"FA_CaptureTestImage(hJob:%#lx)":
ff1e19f0: 435f4146 cmpmi pc, #-2147483631 ; 0x80000011
ff1e19f4: 75747061 ldrbvc r7, [r4, #-97]! ; 0x61
ff1e19f8: 65546572 ldrbvs r6, [r4, #-1394] ; 0x572
ff1e19fc: 6d497473 cfstrdvs mvd7, [r9, #-460] ; 0xfffffe34
ff1e1a00: 28656761 stmdacs r5!, {r0, r5, r6, r8, r9, sl, sp, lr}^
ff1e1a04: 626f4a68 rsbvs r4, pc, #104, 20 ; 0x68000
ff1e1a08: 6c23253a cfstr32vs mvfx2, [r3], #-232 ; 0xffffff18
ff1e1a0c: 00002978 andeq r2, r0, r8, ror r9
"sht_FA_ReleaseStart":
ff1e1a10: 5f746873 svcpl 0x00746873
ff1e1a14: 525f4146 subspl r4, pc, #-2147483631 ; 17f1e1a0b: (???)
ff1e1a18: 61656c65 cmnvs r5, r5, ror #24
ff1e1a1c: 74536573 ldrbvc r6, [r3], #-1395 ; 0x573
ff1e1a20: 00747261 rsbseq r7, r4, r1, ror #4
"sht_FA_ReleaseData":
ff1e1a24: 5f746873 svcpl 0x00746873
ff1e1a28: 525f4146 subspl r4, pc, #-2147483631 ; 17f1e1a1f: (???)
ff1e1a2c: 61656c65 cmnvs r5, r5, ror #24
ff1e1a30: 61446573 hvcvs 18003 ; 0x4653
ff1e1a34: 00006174 andeq r6, r0, r4, ror r1
ff1e1a38: 00004e20 andeq r4, r0, r0, lsr #28 < --------------
loc_ff1e1a3c:
ff1e1a3c: 0000017b andeq r0, r0, fp, ror r1
ff1e1a40: ff1e149c ; <UNDEFINED> instruction: 0xff1e149c
"FA_CaptureTestImage Fin":
ff14af18: e28f2f81 add r2, pc, #516 ; ff14b124: (42736373) *"scsBulbEnd"
ff14af1c: e20000ff and r0, r0, #255 ; 0xff
ff14af20: e3a01003 mov r1, #3
ff14af24: eb3ae28c bl loc_395c
ff14af28: e51f0b30 ldr r0, [pc, #-2864] ; ff14a400: (00024950) <--------
ff14af2c: e3a01001 mov r1, #1
ff14af30: e5801010 str r1, [r0, #16] <------------------------------------
ff14af34: e5900004 ldr r0, [r0, #4]
ff14af38: e8bd8010 pop {r4, pc}
"FA_CaptureTestImage(hJob:%#lx)":
ff1e1d90: 435f4146 cmpmi pc, #-2147483631 ; 0x80000011
ff1e1d94: 75747061 ldrbvc r7, [r4, #-97]! ; 0x61
ff1e1d98: 65546572 ldrbvs r6, [r4, #-1394] ; 0x572
ff1e1d9c: 6d497473 cfstrdvs mvd7, [r9, #-460] ; 0xfffffe34
ff1e1da0: 28656761 stmdacs r5!, {r0, r5, r6, r8, r9, sl, sp, lr}^
ff1e1da4: 626f4a68 rsbvs r4, pc, #104, 20 ; 0x68000
ff1e1da8: 6c23253a cfstr32vs mvfx2, [r3], #-232 ; 0xffffff18
ff1e1dac: 00002978 andeq r2, r0, r8, ror r9
"sht_FA_ReleaseStart":
ff1e1db0: 5f746873 svcpl 0x00746873
ff1e1db4: 525f4146 subspl r4, pc, #-2147483631 ; 17f1e1dab: (???)
ff1e1db8: 61656c65 cmnvs r5, r5, ror #24
ff1e1dbc: 74536573 ldrbvc r6, [r3], #-1395 ; 0x573
ff1e1dc0: 00747261 rsbseq r7, r4, r1, ror #4
"sht_FA_ReleaseData":
ff1e1dc4: 5f746873 svcpl 0x00746873
ff1e1dc8: 525f4146 subspl r4, pc, #-2147483631 ; 17f1e1dbf: (???)
ff1e1dcc: 61656c65 cmnvs r5, r5, ror #24
ff1e1dd0: 61446573 hvcvs 18003 ; 0x4653
ff1e1dd4: 00006174 andeq r6, r0, r4, ror r1
ff1e1dd8: 00004e20 andeq r4, r0, r0, lsr #28
ff1e1ddc: 0000017b andeq r0, r0, fp, ror r1
ff1e1de0: ff1e183c ; <UNDEFINED> instruction: 0xff1e183c
"FA_CaptureTestImage Fin":
ff14b0cc: e28f2f81 add r2, pc, #516 ; ff14b2d8: (42736373) *"scsBulbEnd"
ff14b0d0: e20000ff and r0, r0, #255 ; 0xff
ff14b0d4: e3a01003 mov r1, #3
ff14b0d8: eb3ae21f bl loc_395c
ff14b0dc: e51f0b30 ldr r0, [pc, #-2864] ; ff14a5b4: (00024950)
ff14b0e0: e3a01001 mov r1, #1
ff14b0e4: e5801010 str r1, [r0, #16]
ff14b0e8: e5900004 ldr r0, [r0, #4]
ff14b0ec: e8bd8010 pop {r4, pc}
capture_err_time_addr = 0xff1df1fc
bulb_end_addr = 0x3F300
I have a 700D.114 and there the address of capture_err_time_addr is different to the value from @josepvm:
capture_err_time_addr = 0xff1e1dd8
The address of
bulb_end_addr is the same as @josepvm posted = 0x24960
@@ -145,5 +145,5 @@
MENU_APPEND_VALUE(", DNG");
}
- if (silent_pic_mode == SILENT_PIC_MODE_FULLRES && (shooting_mode != SHOOTMODE_M || is_movie_mode()))
+ if (silent_pic_mode == SILENT_PIC_MODE_FULLRES && ((shooting_mode != SHOOTMODE_M && shooting_mode != SHOOTMODE_BULB) || is_movie_mode()))
{
@@ -149,5 +149,5 @@
{
- MENU_SET_WARNING(MENU_WARN_NOT_WORKING, "Full-res pictures only work in Manual (M) photo mode.");
+ MENU_SET_WARNING(MENU_WARN_NOT_WORKING, "Full-res pictures only work in Manual (M) or Bulb (B) photo mode.");
}
silent_pic_check_mlv(entry, info);
@@ -1175,5 +1175,5 @@
char* error_msg = 0;
- if (shooting_mode != SHOOTMODE_M)
+ if (shooting_mode != SHOOTMODE_M && shooting_mode != SHOOTMODE_BULB)
{
@@ -1179,6 +1179,6 @@
{
- error_msg = "Manual (M) mode is required.";
- goto err;
+ error_msg = "Manual (M) or Bulb (B) mode is required.";
+ goto err;
}
if (prop_iso == 0 || prop_shutter == 0)
@@ -1242,7 +1242,7 @@
* and creates a "job" object (CreateSkeltonJob)
*/
void* job = (void*) call("FA_CreateTestImage");
-
+
if (prop_shutter == SHUTTER_BULB || (shooting_mode == SHOOTMODE_BULB && frsp_tv_addr))
{
/* some cameras reset the cache fake after FRSP, we need it again */
@@ -1257,8 +1257,19 @@
/* cameras with SHOOTMODE_BULB need fake SHUTTER_BULB */
if (shooting_mode == SHOOTMODE_BULB && frsp_tv_addr)
{
- ASSERT(*(uint8_t*)(job + frsp_tv_addr) == prop_shutter);
- *(uint8_t*)(job + frsp_tv_addr) = SHUTTER_BULB;
+ printf("job: %x\n", job);
+ printf("prop_shutter: 0x%x\n", prop_shutter);
+
+ for (int i = 0; i < 256; i++)
+ {
+ if(prop_shutter == *(uint8_t*)(job + i))
+ {
+ printf("FA_CreateTestImage Tv Addr : 0x%x\n", i);
+ }
+ }
+
+ ASSERT(*(uint8_t*)(job + frsp_tv_addr) == prop_shutter);
+ *(uint8_t*)(job + frsp_tv_addr) = SHUTTER_BULB;
}
delayed_call(bulb_time * 1000, bulb_stop, 0);
@@ -1281,7 +1292,7 @@
* and available from RAW_PHOTO_EDMAC (defined in raw.c)
*/
call("FA_CaptureTestImage", job);
-
+
int t1 = get_ms_clock_value();
int capture_time = t1 - t0;
@@ -1481,5 +1492,5 @@
if (!silent_pic_enabled)
return 0;
- /* fullres silent pics only work in M mode,
+ /* fullres silent pics only work in M or B mode,
* and they may screw up things if triggered while recording. */
@@ -1485,5 +1496,5 @@
* and they may screw up things if triggered while recording. */
- if (silent_pic_mode == SILENT_PIC_MODE_FULLRES && (shooting_mode != SHOOTMODE_M || is_movie_mode()))
+ if (silent_pic_mode == SILENT_PIC_MODE_FULLRES && ((shooting_mode != SHOOTMODE_M && shooting_mode != SHOOTMODE_BULB) || is_movie_mode()))
return 0;
static int silent_pic_countdown;
@@ -1664,6 +1675,14 @@
frsp_tv_addr = 0x64; // cameras with SHOOTMODE_BULB need fake SHUTTER_BULB
}
+ if (is_camera("5D3", "1.1.3"))
+ {
+ bulb_end_addr = 0x25294;
+ capture_err_time_addr = 0xFF9BF358;
+ frsp_tv_addr = 0x78; // cameras with SHOOTMODE_BULB need fake SHUTTER_BULB
+ }
+
+
/* cache fake "ERROR Take Semaphore" time in "FA_CaptureTestImage" */
/* 20 seconds to (15 + 1) minutes */
if (bulb_end_addr && capture_err_time_addr)
But on my 5D3.113, it fails to find (http://www.magiclantern.fm/forum/index.php?topic=12523.msg168625#msg168625 (http://www.magiclantern.fm/forum/index.php?topic=12523.msg168625#msg168625)) correct frsp_tv_addr (both bulb timer ON and OF).Correct register addresses please add comment - https://bitbucket.org/hudson/magic-lantern/pull-requests/735/frsp-bulb-support/diff
This will help merge in the future.
josepvm,
Tried the last silent.c that you share including EOS 700D ..... all is working!!
-static uint8_t frsp_tv_addr = 0;
+static uint16_t frsp_tv_addr = 0;
Using 0x280 enables the bulb exposure (3 min max tested), but the image does not get saved onto the card, for some reason.0x0 // Tv1
0x1 // Av1
0x2 // Tv2
0x3 // Av2
0x4 // ISO
bulb_end_addr = 0x25294;
capture_err_time_addr = 0xFF1BF358;
frsp_tv_addr = 0x280;
Entire DIFF you find on https://bitbucket.org/milank/ml-frsp-long-expo/branch/BULB%20dial%20test#diff (https://bitbucket.org/milank/ml-frsp-long-expo/branch/BULB%20dial%20test#diff).
#define RAW_DEBUG /* define it to help with porting */
#define RAW_DEBUG_DUMP /* if you want to save the raw image buffer and the DNG from here */
#define RAW_DEBUG_BLACK /* for checking black level calibration */
The console.log after two BULB shots (1min and 25s):...
raw update from shoot_task
Photo raw buffer: 86028f8 (5936x3950)
Skip left:138 right:2 top:80 bottom:0
Resolution changed: 0x0 -> 5936x3950
active area: x=138..5934, y=80..3950
lv2raw sx:8203 sy:8221 tx:152 ty:88
raw2lv test: (-1,-1) - (722,482)
should be: (0,0) - (720,480)
raw2bm test: (-1,-1) - (722,482)
should be: (0,0) - (720,480)
bm2raw test: (152,88) - (5919,3941)
should be: (138,80) - (5934,3950)
Black check 1/5: 8316…0.00, ref 2047…6.75, delta=6269
Black 1/5: mean too different (8316, ref 2047…6.75)
Save configs...
raw update from shoot_task
Photo raw buffer: 86028f8 (5936x3950)
Skip left:138 right:2 top:80 bottom:0
active area: x=138..5934, y=80..3950
lv2raw sx:8203 sy:8221 tx:152 ty:88
raw2lv test: (-1,-1) - (722,482)
should be: (0,0) - (720,480)
raw2bm test: (-1,-1) - (722,482)
should be: (0,0) - (720,480)
bm2raw test: (152,88) - (5919,3941)
should be: (138,80) - (5934,3950)
Black check 1/5: 7980…382.40, ref 2047…6.77, delta=5933
Black 1/5: mean too different (7980, ref 2047…6.77)
Save configs...
If I try to save the DNG for debug purposes (using if(0) => if(1)), I receive Error 70.
....
raw update from shoot_task
Photo raw buffer: 86028f8 (5936x3950)
Skip left:138 right:2 top:80 bottom:0
active area: x=138..5934, y=80..3950
lv2raw sx:8203 sy:8221 tx:152 ty:88
raw2lv test: (-1,-1) - (722,482)
should be: (0,0) - (720,480)
raw2bm test: (-1,-1) - (722,482)
should be: (0,0) - (720,480)
bm2raw test: (152,88) - (5919,3941)
should be: (138,80) - (5934,3950)
Black check 1/5: 8173…347.29, ref 2047…6.87, delta=6126
Black 1/5: mean too different (8173, ref 2047…6.87)
Save configs...
Enabled DNG diag output results in the same error 70:ASSERT: GetMemoryAddressOfMemoryChunk( GetFirstMemChunk( pMem1AllocateListItem->hMemSuite ) ) == pMessage->pAddress
at SrmActionMemory.c:1505, task RscMgr
lv:0 mode:4
....
srm_malloc_suite(1)...
srm buffer #1: 42000064
srm_malloc_suite => 10edb0
srm_free_suite(10edb0)
srm_malloc_suite(0)...
when I shoot silent MLV with intervalometer, every picture is in individual MLV file.
FRSP continuous :
You need nd filter simulation?
How does it work?
The camera take silent pictures in continuous mode, for example, Tv 0.5s, 4 frames :
0.5 + 0.5 + 0.5 + 0.5 = 2s
We can average frames in mlv_dump.
The movement of water/cloud will be like two seconds of exposure.
The image will 1EV more DR.
4 frames -> 1EV
16 frames -> 2EV
64 frames -> 3EV
Writing speed must be shorter than the exposure time.
(https://www.magiclantern.fm/forum/proxy.php?request=http%3A%2F%2Fs2.postimg.org%2Fpeowxz1rt%2Fmenu.gif&hash=c7d7931bf2606f965fd6f9dbe13cb528)
one vs 20 frames :
(https://www.magiclantern.fm/forum/proxy.php?request=http%3A%2F%2Fs27.postimg.org%2Fsilu76rxf%2Flongexpo.jpg&hash=a8895decd19731726963c0ab58090f6e)
Dual ISO alternately (100/1600, 1600/100, 100/1600...) :
I've never been convinced by the dual iso (loss of detail).
I think it should be a good solution, but I'm not 100% sure about because I do not tested in the landscape.
(https://www.magiclantern.fm/forum/proxy.php?request=http%3A%2F%2Fs18.postimg.org%2Fahv6mn961%2Fdual_iso.jpg&hash=95b80ab72a611194df6e5ef6a0e5f069)
So in theory we get a huge DR.
100/1600 on the 500D give 2.2EV more.
If you averaged 16 frames, 2EV more DR.
Dual iso + 16 frames, give 4.2EV more for 500D :o
Tree :
(https://www.magiclantern.fm/forum/proxy.php?request=http%3A%2F%2Fs2.postimg.org%2Fmvrs4h12x%2Fdualiso.jpg&hash=e334de9c3f9b198ecc1025e364b26e2c)
Interior :
(https://www.magiclantern.fm/forum/proxy.php?request=http%3A%2F%2Fs7.postimg.org%2Fme3xmz2ln%2Fdualiso2.jpg&hash=53dff3046277b96b8ae89c4bc9c44d94)
is it possible to to separate the functionality of the liveview feature into "that which enables silent picture" and "that which must move the mirror away from the eyepiece?" eyepiece?"Thanks.
I have a 700D.114 and there the address of capture_err_time_addr is different to the value from @josepvm:Aaaand now my first 5 minute test-exposure worked very well :)
capture_err_time_addr = 0xff1e1dd8
The address of
bulb_end_addr is the same as @josepvm posted = 0x24960
I couldn't find details in this thread. Specifically, I need to know if there is a lag between the LED flash and the actual FRSP exposure.
The first post in this thread mentions that when FRSP is used with intervalometer, the shortest possible time interval is ~10 seconds. Is it still the case, specifically for 6D?
Here is a new interesting application for the FRSP feature: 3D scanning of real objects, via the method of photogrammetry (https://en.wikipedia.org/wiki/Comparison_of_photogrammetry_software).
I also have a question to А1еx regarding the silent module on the 100D that I have been using a lot for timelapse work. I have been investigating the possibility for using it with stabilized lenses for shooting single full-resolution silent pictures in the Life View mode without actuating the mechanical shutter. This is one of my favorite ML features since it allows taking single DNG photos at the highest sensor resolution, also in the Dual ISO mode, at locations where shutter noise is highly undesirable (churches, museums, lectures, etc.). An additional bonus is the fact that pictures are taken in the mirrorless mode, so vibrations due to mirror flipping are avoided. Thus sharp handheld pictures are possible at shutter speeds as low as 1/25-th down to 1/4-th of a second with stabilized lenses.
There is one problem, however. I usually use the back button for precise focusing at 5x or even 10x-magnification. In this process, the image stabilizer (IS) of the lens is active and a very precise focus can be adjusted even at low light. When I am ready with focusing and metering and want to take the picture by pressing halfshutter, the IS continues working only for about 1 s. after I release the back button and then it stops working. It does not get activated when I press halfshutter to take the picture. This means that at the moment I take the photo, I have no image stabilizer engaged and the picture turns out blurry due to camera shake. Sometimes I manage to press halfshutter very quickly, within this 1 s. after I release the back button hoping that the IS is still working during the actual photo taking but the time is too short to avoid camera shake. Moreover, in this short time it is impossible to go back to full-screen LifeView for proper framing and or leveling.
So, my question is: Is it somehow possible to increase the IS time from 1s. to 3 or even 5 s. after the back button is released? An even better option would be to reengage the IS upon halfshutter press and holding down and the picture is taken only in the moment, half shutter is released. In this way, the photographer would have enough time for proper framing and taking a deep breath during IS operation, before the actual photo is taken.
Thank you.
diff -r 1dbb29d3cc6d modules/silent/silent.c
--- a/modules/silent/silent.c
+++ b/modules/silent/silent.c
@@ -1172,6 +1171,0 @@
- if (shooting_mode != SHOOTMODE_M)
- {
- error_msg = "Manual (M) mode is required.";
- goto err;
- }
-
@@ -1448,2 +1441,0 @@
- if (silent_pic_mode == SILENT_PIC_MODE_FULLRES && (shooting_mode != SHOOTMODE_M || is_movie_mode()))
- return 0;
I dont think you understand my question correctly.Correct, I didn't, sorry.
@Dmytro_ua: you should be in photo mode.
Liveview is not exclusive to movie mode.
Hi,
an hour ago i had the same idea About the WiFi Card (before i read your post). in Germany we say "zwei dumme, ein gedanke" - "two stupid, one thought"
i will try a toshiba WiFi sd Card. hope this will work.
the silent files do not appear after restart the camera.
thx again!
# HG changeset patch
# User Alessandro Profiti <aprofiti@users.noreply.github.com>
# Date 1535128403 -7200
# Fri Aug 24 18:33:23 2018 +0200
# Branch frsp_bulb
# Node ID 77ea846906c328eaf10c71a0050f8cf6ea2b7780
# Parent 7a3b5fa3f4c6f085e5bb9d58ab4da0002c01e4a3
silent.c: Add FRSP support to longer exposure up to 15 minutes. Credits to Greg for original code and dmilligan for gist: https://gist.github.com/davidmilligan/6b8f78383a1e11cbecc620874e129cbb
diff --git a/modules/silent/silent.c b/modules/silent/silent.c
--- a/modules/silent/silent.c
+++ b/modules/silent/silent.c
@@ -17,6 +17,7 @@
#include <powersave.h>
#include "../lv_rec/lv_rec.h"
#include "../mlv_rec/mlv.h"
+#include <cache_hacks.h>
static uint64_t ret_0_long() { return 0; }
@@ -69,6 +70,8 @@
static int mlv_file_frame_number = 0;
static int long_exposure_fix_enabled = 0;
+static uint32_t bulb_end_addr = 0;
+static uint32_t capture_err_time_addr = 0;
/* forward reference */
static struct menu_entry silent_menu[];
@@ -1153,6 +1156,11 @@
}
}
+static void bulb_stop()
+{
+ MEM(bulb_end_addr) = 1;
+}
+
static int
silent_pic_take_fullres(int interactive)
{
@@ -1224,6 +1232,19 @@
* and creates a "job" object (CreateSkeltonJob)
*/
struct JobClass * job = (void*) call("FA_CreateTestImage");
+
+ unsigned shutter_old = lens_info.raw_shutter;
+ if (shutter_old == SHUTTER_BULB)
+ {
+ int bulb_time = menu_get_value_from_script("Bulb Timer", "Exposure duration");
+
+ if(bulb_time > 900) //15 minutes limit
+ {
+ bulb_time = 0;
+ }
+
+ delayed_call(bulb_time * 1000, bulb_stop, 0);
+ }
lens_info.job_state = 1;
info_led_on();
@@ -1520,6 +1541,23 @@
silent_pic_take(1);
}
+ /* some cameras (5D2) reset the cache fake after FRSP, we need it again */
+ if (bulb_end_addr && capture_err_time_addr)
+ {
+ if ((*(uint32_t*)capture_err_time_addr) != 960000)
+ {
+ cache_fake(capture_err_time_addr, 960000, TYPE_DCACHE);
+ }
+ }
+
+ if (!bulb_end_addr && capture_err_time_addr)
+ {
+ if ((*(uint32_t*)capture_err_time_addr) != 35000)
+ {
+ cache_fake(capture_err_time_addr, 35000, TYPE_DCACHE);
+ }
+ }
+
return 0;
}
@@ -1608,6 +1646,36 @@
long_exposure_fix_enabled = 1;
}
+ if (is_camera("500D", "1.1.1"))
+ {
+ bulb_end_addr = 0x3324;
+ capture_err_time_addr = 0xff08afb8;
+ }
+ /*if (is_camera("550D", "1.0.9"))
+ {
+ bulb_end_addr = 0x31D8; // not tested please confirm
+ capture_err_time_addr = 0xFF090174; // not tested please confirm
+ }*/
+ if (is_camera("5D2", "2.1.2"))
+ {
+ //bulb_end_addr = 0x3174; // cameras with SHOOTMODE_BULB not support FRSP bulb
+ capture_err_time_addr = 0xFF88DB68;
+ }
+
+ if (!bulb_end_addr && capture_err_time_addr)
+ {
+ SLOWEST_SHUTTER = SHUTTER_30s;
+ cache_lock();
+ cache_fake(capture_err_time_addr, 35000, TYPE_DCACHE); // 30 + 5 seconds
+ }
+
+ if (bulb_end_addr && capture_err_time_addr)
+ {
+ SLOWEST_SHUTTER = SHUTTER_BULB;
+ cache_lock();
+ cache_fake(capture_err_time_addr, 960000, TYPE_DCACHE); // 15 + 1 minutes
+ }
+
menu_add("Shoot", silent_menu, COUNT(silent_menu));
return 0;
}
# HG changeset patch
# User Alessandro Profiti <aprofiti@users.noreply.github.com>
# Date 1535191697 -7200
# Sat Aug 25 12:08:17 2018 +0200
# Branch frsp_bulb
# Node ID bb91393123dd016c4497a12379b7041d4b4b5a73
# Parent 77ea846906c328eaf10c71a0050f8cf6ea2b7780
silen.c: Add FRSP support for dedicated BULB mode (SHOOTMODE_BULB). Credit milank https://bitbucket.org/milank/ml-frsp-long-expo/branch/BULB%20dial%20test#diff
diff --git a/modules/silent/silent.c b/modules/silent/silent.c
--- a/modules/silent/silent.c
+++ b/modules/silent/silent.c
@@ -72,6 +72,7 @@
static int long_exposure_fix_enabled = 0;
static uint32_t bulb_end_addr = 0;
static uint32_t capture_err_time_addr = 0;
+static uint16_t frsp_tv_addr = 0;
/* forward reference */
static struct menu_entry silent_menu[];
@@ -147,9 +148,9 @@
MENU_APPEND_VALUE(", DNG");
}
- if (silent_pic_mode == SILENT_PIC_MODE_FULLRES && (shooting_mode != SHOOTMODE_M || is_movie_mode()))
+ if (silent_pic_mode == SILENT_PIC_MODE_FULLRES && ((shooting_mode != SHOOTMODE_M && shooting_mode != SHOOTMODE_BULB) || is_movie_mode()))
{
- MENU_SET_WARNING(MENU_WARN_NOT_WORKING, "Full-res pictures only work in Manual (M) photo mode.");
+ MENU_SET_WARNING(MENU_WARN_NOT_WORKING, "Full-res pictures only work in Manual (M) or Bulb (B) photo mode.");
}
silent_pic_check_mlv(entry, info);
@@ -1156,6 +1157,7 @@
}
}
+/* scsBulbEnd - it will stop Bulb exposure */
static void bulb_stop()
{
MEM(bulb_end_addr) = 1;
@@ -1177,10 +1179,10 @@
char* error_msg = 0;
- if (shooting_mode != SHOOTMODE_M)
+ if (shooting_mode != SHOOTMODE_M && shooting_mode != SHOOTMODE_BULB)
{
- error_msg = "Manual (M) mode is required.";
- goto err;
+ error_msg = "Manual (M) or Bulb (B) mode is required.";
+ goto err;
}
if (prop_iso == 0 || prop_shutter == 0)
@@ -1218,6 +1220,18 @@
goto err;
}
+ int bulb_time = menu_get_value_from_script("Bulb Timer", "Exposure duration");
+
+ /* Maximum Bulb time with FRSP (I think we don't need more than 15 minutes) */
+ if (prop_shutter == SHUTTER_BULB || (shooting_mode == SHOOTMODE_BULB && frsp_tv_addr))
+ {
+ if(bulb_time > 900) //15 minutes limit
+ {
+ error_msg = "FRSP Bulb - 15 minutes limit.";
+ goto err;
+ }
+ }
+
display_off();
/* we'll need these later */
@@ -1231,16 +1245,36 @@
* reads PROP_ISO, PROP_SHUTTER and PROP_APERTURE,
* and creates a "job" object (CreateSkeltonJob)
*/
- struct JobClass * job = (void*) call("FA_CreateTestImage");
+ void* job = (void*) call("FA_CreateTestImage");
- unsigned shutter_old = lens_info.raw_shutter;
- if (shutter_old == SHUTTER_BULB)
+ if (prop_shutter == SHUTTER_BULB || (shooting_mode == SHOOTMODE_BULB && frsp_tv_addr))
{
- int bulb_time = menu_get_value_from_script("Bulb Timer", "Exposure duration");
-
- if(bulb_time > 900) //15 minutes limit
+ /* some cameras reset the cache fake after FRSP, we need it again */
+ if (bulb_end_addr && capture_err_time_addr)
{
- bulb_time = 0;
+ if ((*(uint32_t*)capture_err_time_addr) != 960000)
+ {
+ cache_fake(capture_err_time_addr, 960000, TYPE_DCACHE);
+ }
+ }
+
+ /* cameras with SHOOTMODE_BULB need fake SHUTTER_BULB */
+ if (shooting_mode == SHOOTMODE_BULB && frsp_tv_addr)
+ {
+ printf("job: %x\n", job);
+ printf("prop_shutter: 0x%x\n", prop_shutter);
+
+ for (int i = 0; i < 1000; i++)
+ {
+ if(prop_shutter == *(uint8_t*)(job + i))
+ {
+ printf("FA_CreateTestImage Tv Addr : 0x%x\n", i);
+ }
+ }
+
+ ASSERT(*(uint8_t*)(job + frsp_tv_addr) == prop_shutter);
+ *(uint8_t*)(job + frsp_tv_addr) = SHUTTER_BULB;
+ //*(uint8_t*)(job + frsp_tv_addr + 2) = SHUTTER_BULB;
}
delayed_call(bulb_time * 1000, bulb_stop, 0);
@@ -1464,9 +1498,9 @@
if (!silent_pic_enabled)
return 0;
- /* fullres silent pics only work in M mode,
+ /* fullres silent pics only work in M or B mode,
* and they may screw up things if triggered while recording. */
- if (silent_pic_mode == SILENT_PIC_MODE_FULLRES && (shooting_mode != SHOOTMODE_M || is_movie_mode()))
+ if (silent_pic_mode == SILENT_PIC_MODE_FULLRES && ((shooting_mode != SHOOTMODE_M && shooting_mode != SHOOTMODE_BULB) || is_movie_mode()))
return 0;
static int silent_pic_countdown;
@@ -1541,23 +1575,6 @@
silent_pic_take(1);
}
- /* some cameras (5D2) reset the cache fake after FRSP, we need it again */
- if (bulb_end_addr && capture_err_time_addr)
- {
- if ((*(uint32_t*)capture_err_time_addr) != 960000)
- {
- cache_fake(capture_err_time_addr, 960000, TYPE_DCACHE);
- }
- }
-
- if (!bulb_end_addr && capture_err_time_addr)
- {
- if ((*(uint32_t*)capture_err_time_addr) != 35000)
- {
- cache_fake(capture_err_time_addr, 35000, TYPE_DCACHE);
- }
- }
-
return 0;
}
@@ -1649,26 +1666,35 @@
if (is_camera("500D", "1.1.1"))
{
bulb_end_addr = 0x3324;
- capture_err_time_addr = 0xff08afb8;
+ capture_err_time_addr = 0xFF08AFB8;
}
/*if (is_camera("550D", "1.0.9"))
{
bulb_end_addr = 0x31D8; // not tested please confirm
capture_err_time_addr = 0xFF090174; // not tested please confirm
}*/
+ if (is_camera("50D", "1.0.9"))
+ {
+ bulb_end_addr = 0x3218;
+ capture_err_time_addr = 0xFF885B14;
+ }
if (is_camera("5D2", "2.1.2"))
{
- //bulb_end_addr = 0x3174; // cameras with SHOOTMODE_BULB not support FRSP bulb
+ bulb_end_addr = 0x3174;
capture_err_time_addr = 0xFF88DB68;
+ frsp_tv_addr = 0x64; // cameras with SHOOTMODE_BULB need fake SHUTTER_BULB
}
- if (!bulb_end_addr && capture_err_time_addr)
+ if (is_camera("5D3", "1.1.3"))
{
- SLOWEST_SHUTTER = SHUTTER_30s;
- cache_lock();
- cache_fake(capture_err_time_addr, 35000, TYPE_DCACHE); // 30 + 5 seconds
- }
-
+ bulb_end_addr = 0x25294;
+ capture_err_time_addr = 0xFF1BF358;
+ frsp_tv_addr = 0x280; // cameras with SHOOTMODE_BULB need fake SHUTTER_BULB
+ }
+
+
+ /* cache fake "ERROR Take Semaphore" time in "FA_CaptureTestImage" */
+ /* 20 seconds to (15 + 1) minutes */
if (bulb_end_addr && capture_err_time_addr)
{
SLOWEST_SHUTTER = SHUTTER_BULB;
# HG changeset patch
# User Alessandro Profiti <aprofiti@users.noreply.github.com>
# Date 1535191978 -7200
# Sat Aug 25 12:12:58 2018 +0200
# Branch frsp_bulb
# Node ID 50d24ac04eea9e6bda683c249791bf6c87fa9f65
# Parent bb91393123dd016c4497a12379b7041d4b4b5a73
silent.c: Add FRSP Bulb support to 700D, 550D and EOS M
diff --git a/modules/silent/silent.c b/modules/silent/silent.c
--- a/modules/silent/silent.c
+++ b/modules/silent/silent.c
@@ -1668,11 +1668,11 @@
bulb_end_addr = 0x3324;
capture_err_time_addr = 0xFF08AFB8;
}
- /*if (is_camera("550D", "1.0.9"))
+ if (is_camera("550D", "1.0.9"))
{
bulb_end_addr = 0x31D8; // not tested please confirm
capture_err_time_addr = 0xFF090174; // not tested please confirm
- }*/
+ }
if (is_camera("50D", "1.0.9"))
{
bulb_end_addr = 0x3218;
@@ -1684,7 +1684,16 @@
capture_err_time_addr = 0xFF88DB68;
frsp_tv_addr = 0x64; // cameras with SHOOTMODE_BULB need fake SHUTTER_BULB
}
-
+ if (is_camera("700D", "1.1.4"))
+ {
+ bulb_end_addr = 0x24960;
+ capture_err_time_addr = 0xff1e1dd8;
+ }
+ if (is_camera("EOSM", "2.0.2"))
+ {
+ bulb_end_addr = 0x3F300;
+ capture_err_time_addr = 0xff1df1fc;
+ }
if (is_camera("5D3", "1.1.3"))
{
bulb_end_addr = 0x25294;
# HG changeset patch
# User Alessandro Profiti <aprofiti@users.noreply.github.com>
# Date 1535194347 -7200
# Sat Aug 25 12:52:27 2018 +0200
# Branch frsp_bulb
# Node ID 8ee5b34a8aa81b5a4196a90ca22d17f3f90336db
# Parent 50d24ac04eea9e6bda683c249791bf6c87fa9f65
silent.c: FRSP moved cache_fake hack to original position. Fix exposure time bug in 20-32s range introduced from milank code
diff --git a/modules/silent/silent.c b/modules/silent/silent.c
--- a/modules/silent/silent.c
+++ b/modules/silent/silent.c
@@ -1249,15 +1249,6 @@
if (prop_shutter == SHUTTER_BULB || (shooting_mode == SHOOTMODE_BULB && frsp_tv_addr))
{
- /* some cameras reset the cache fake after FRSP, we need it again */
- if (bulb_end_addr && capture_err_time_addr)
- {
- if ((*(uint32_t*)capture_err_time_addr) != 960000)
- {
- cache_fake(capture_err_time_addr, 960000, TYPE_DCACHE);
- }
- }
-
/* cameras with SHOOTMODE_BULB need fake SHUTTER_BULB */
if (shooting_mode == SHOOTMODE_BULB && frsp_tv_addr)
{
@@ -1574,7 +1565,16 @@
silent_pic_take(1);
}
-
+
+ /* some cameras reset the cache fake after FRSP, we need it again */
+ if (bulb_end_addr && capture_err_time_addr)
+ {
+ if ((*(uint32_t*)capture_err_time_addr) != 960000)
+ {
+ cache_fake(capture_err_time_addr, 960000, TYPE_DCACHE);
+ }
+ }
+
return 0;
}
The approach was, indeed, a bit of a maintenance burden, as different camera models use different offsets (so it's easy to make mistakes). However, it is something that can be validated in recent QEMU (which, back then, wasn't advanced enough).Apart from patching bulb address, how to patch cache? Do refactoring this to use patch manager would require much time?
I'd also prefer to have it on top of the patch manager (https://bitbucket.org/hudson/magic-lantern/pull-requests/687/patch-manager-wip/diff) backend - which works pretty well, with one exception: when I take it outside, it gives ERR70. When I get back inside to track the error, it works fine.
For the above reasons, I did not decline the PR, but preferred to wait. Unfortunately, the PR was declined by the author.
How to get dual iso on silent pictures? one picture 100 iso other 800 isoDual ISO = One frame/pic with interlaced lines where ISO is manipulated. You have to enable Dual_iso.mo
Any way to trigger Silent picture full resoultion remotely? 5d mk2
Remote trigger connector. ;-)Thanks. After some test looks like it will work. 8)
good morning guys ... i have a problem and i would like to ask for help: i'm trying to use the silent picture on my T3i and when i press the shutter button halfway down it takes the picture but saves it with a very low resolution, even though set full_res..what can it be? thanks
Settings?
Samples?
Sample file needed.
Thanks friend ... I was just opening the image with the wrong software ... now the problem is different: all images I take of the sky are blown up, what can I do to improve this? thank you againAccording to exiftool you're using 8-bit, right? Change to 12-bit instead...
There are 8 different 18-55 lenses (if I counted correctly). Please specify and tell us if there are other lenses in your repository showing or not showing this error.
According to exiftool you're using 8-bit, right? Change to 12-bit instead...
The file you uploaded is regular full 14bitYou're right Danne, I've read exiftool output wrongly:
$ exiftool -A 26390001.DNG
ExifTool Version Number : 11.88
File Name : 26390001.DNG
Directory : .
File Size : 31 MB
File Modification Date/Time : 2020:02:26 18:12:06-03:00
File Access Date/Time : 2020:02:26 18:11:57-03:00
File Creation Date/Time : 2020:02:26 18:11:59-03:00
File Permissions : rw-rw-rw-
File Type : DNG
File Type Extension : dng
MIME Type : image/x-adobe-dng
Exif Byte Order : Little-endian (Intel, II)
Subfile Type : Reduced-resolution image
Image Width : 128
Image Height : 84
Bits Per Sample : 8 8 8
Compression : Uncompressed
Photometric Interpretation : RGB
Image Description :
Make : Canon
Camera Model Name : Canon EOS REBEL T3i
Strip Offsets : 1536
Orientation : Horizontal (normal)
Samples Per Pixel : 3
Rows Per Strip : 84
Strip Byte Counts : 32256
Planar Configuration : Chunky
Software : Magic Lantern
Modify Date :
Artist :
Subfile Type : Full-resolution image
Image Width : 5344
Image Height : 3516
Bits Per Sample : 14
Compression : Uncompressed
Photometric Interpretation : Color Filter Array
Strip Offsets : 33792
Samples Per Pixel : 1
Rows Per Strip : 3516
Strip Byte Counts : 32881632
X Resolution : 180
Y Resolution : 180
Planar Configuration : Chunky
Resolution Unit : inches
CFA Repeat Pattern Dim : 2 2
CFA Pattern 2 : 0 1 1 2
Black Level : 2048
White Level : 13200
Default Crop Origin : 0 0
Default Crop Size : 5202 3464
Active Area : 52 142 3516 5344
Opcode List 1 : FixBadPixelsConstant
Copyright :
Exposure Time : 0
F Number : 0
Exposure Program : Not Defined
ISO : 0
Exif Version : 0221
Date/Time Original :
Shutter Speed Value : 1
Aperture Value : 1.0
Exposure Compensation : 0
Max Aperture Value : 1.0
Metering Mode : Unknown
Flash : No Flash
Focal Length : 0.0 mm
Sub Sec Time :
Sub Sec Time Original :
Focal Length In 35mm Format : 0 mm
TIFF-EP Standard ID : 1 0 0 0
Serial Number :
Lens Model :
DNG Version : 1.3.0.0
DNG Backward Version : 1.3.0.0
Unique Camera Model : Canon EOS REBEL T3i
Color Matrix 1 : 0.6461 -0.0907 -0.0882 -0.43 1.2184 0.2378 -0.0819 0.1944 0.5931
Analog Balance : 1 1 1
As Shot Neutral : 0.473635 1 0.624
Baseline Exposure : undef
Baseline Noise : 1
Baseline Sharpness : 1.333333333
Linear Response Limit : 1
Calibration Illuminant 1 : D65
Frame Rate : 25
CFA Pattern : [Red,Green][Green,Blue]
Image Size : 5344x3516
Megapixels : 18.8
Shutter Speed : 0
Thumbnail TIFF : (Binary data 32472 bytes, use -b option to extract)
Focal Length : 0.0 mm
opens just fine when tested in acr. Highlight information recoverable as expected.It opens on rawtherapee too, but the dynamic range is very limited. The white point seems wrong too.
- full-res LiveView (http://www.magiclantern.fm/forum/index.php?topic=19300) (only 5D3 for now, but there is a PoC for 700D (https://www.magiclantern.fm/forum/index.php?topic=19300.msg197697#msg197697) with adtg_gui); this can reach shutter speeds as fast as 1/15000, with a rolling shutter of 128ms on 5D3
- this proof of concept (https://www.magiclantern.fm/forum/index.php?topic=21852) (use aperture to simulate a mechanical shutter, much quieter, compatible with all models, just need a couple of hours to make sure it actually works as advertised, then it will be live)
To select 1/8000 quickly, try the exposure presets feature. A Lua script can be used to sketch the half-shutter workaround, too. Disabling exposure simulation might be also helpful (yet another workaround).
Wanna achieve soemthing like this (https://news.broncolor.swiss/tutorials/hypersync-easily-explained-by-fabio-gloor-part-2/) for cheaphttps://www.spt.info/index.php/service-adjustment-software?id=26
You can try "leaf shutter" by changing the aperture value when capturing FRSP.
Was reading chdk's wiki last days and then shocked seeing they could do some kind of 1/60000 flash sync speed.It's possible for a CCD sensor.
this one I didn't understand.A1ex knows how to change the aperture during FRSP exposure. If you know how to trigger a flash at the right time. You can try :
@Grey
Yes I know I can do that and use normal approaches to construct bracket sets for processing in post, eg https://photography.grayheron.net/2021/01/music-additional-notes.html
My suggestion is to do this in camera, ie before outputting the FRSP image.
;)
The median merge function is ‘simply’ (a+b)/2, that is sum the pixel values and half the result.
acc = 0
for i in range(N):
acc += image[i] // N # integer division
octave:1> a = round(rand(1,8) * 10)
a =
0 7 9 9 3 1 1 7
octave:2> sum(floor(a / length(a)))
ans = 2
octave:3> mean(a)
ans = 4.6250
octave:4> a = round(rand(1,32) * 10)
a =
8 1 9 4 4 5 9 9 1 2 5 7 8 1 4 4 6 9 9 9 7 7 1 6 4 4 1 2 2 3 2 2
octave:5> sum(floor(a / length(a)))
ans = 0
octave:6> mean(a)
ans = 4.8438
How does the number of merged images relate to the number of ND stops with this simple (a+b)/2 median merging method?
That's the arithmetic mean, and it's quite different from median.
Answered in reply #1086.