Canon vs CHDK shooting - General Help and Assistance on using CHDK stable releases - CHDK Forum  

Canon vs CHDK shooting

  • 8 Replies
  • 925 Views
Canon vs CHDK shooting
« on: 16 / August / 2022, 11:21:47 »
Advertisements
@reyalp

I’m having a senior moment and hope you can help me.

Is there a way, in a Lua script, to completely control the shooting irrespective of the Canon settings.

For example, if I set the Canon side AEB on, say to three brackets, and use shoot() in Lua, I will get three bracketed images.

The question is, how can I keep the Canon AEB setting but by pass it in my script and use shoot() as a single image capture.

*

Offline reyalp

  • ******
  • 14080
Re: Canon vs CHDK shooting
« Reply #1 on: 16 / August / 2022, 16:38:12 »
Is there a way, in a Lua script, to completely control the shooting irrespective of the Canon settings.

For example, if I set the Canon side AEB on, say to three brackets, and use shoot() in Lua, I will get three bracketed images.

The question is, how can I keep the Canon AEB setting but by pass it in my script and use shoot() as a single image capture.
Not clear what you are trying to accomplish, but a few things to note:
1) Most CHDK cameras do not support bracketing in the Canon firmware, so it is likely that the interaction between CHDK and Canon bracketing is not well explored. To my knowledge, there is no specific expected behavior defined for the case of using Canon bracketing with shoot(). There is a camera.h define CAM_BRACKETING for cameras with native bracketing (dating from the very early S / G series), but I don't believe it does anything related to shoot(), and in any case it's not defined for the M cameras.

2) shoot() is intended to be a simple, high level function to do a full shooting cycle of half press, wait for everything to be ready, full press. Normally this would be expected to shoot a single shot, but again, I'm not aware of any specific behavior defined for Canon firmware multishot modes like bracketing or HDR. CHDK does have some logic related to multi-shot timer modes, to support CHDK bracketing in those modes.

3) If you want more direct control of the shooting process, you can use key presses and shoot hooks. In particular, hook_shoot should allow you to execute code before each exposure starts, and hook_raw should allow you to execute code after each exposure has completed. However, it's possible that these hooks aren't correctly implemented for more obscure code paths like Canon multi-shot modes.

Generally speaking, I would suggest if you want to do bracketing in a script, you would be better off using CHDK functionality rather than trying to integrate it with Canon native bracketing.

If you do want to use Canon firmware bracketing, it will be up to you to explore it interacts with CHDK.
« Last Edit: 16 / August / 2022, 18:22:49 by reyalp »
Don't forget what the H stands for.

Re: Canon vs CHDK shooting
« Reply #2 on: 16 / August / 2022, 17:16:32 »
@reyalp

Thanks for the detailed insight.

I’m not worried about bracketing in Lua.

What I see on the M3 is that shoot() triggers the Canon side AEB, if set. If not set, it just takes a single image, as expected.

What I was trying to do is leave the Canon side AEB set to three brackets, which will be triggered by a single shoot() call, and find a way of capturing an image in the script, without triggering the Canon AEB sequence.


*

Offline reyalp

  • ******
  • 14080
Re: Canon vs CHDK shooting
« Reply #3 on: 16 / August / 2022, 18:22:13 »
What I was trying to do is leave the Canon side AEB set to three brackets, which will be triggered by a single shoot() call, and find a way of capturing an image in the script, without triggering the Canon AEB sequence.
I don't understand. Why have Canon AEB enabled if you don't want bracketing?

If it's just to have AEB enabled in your normal settings, but not active when you run the script, there unfortunately does not appear to be a convenient way to control it from script. You can read the bracket mode using get_prop(require'propcase'.BRACKET_MODE) but at least on g7x, setting it does not change the bracket setting.
Don't forget what the H stands for.


Re: Canon vs CHDK shooting
« Reply #4 on: 17 / August / 2022, 01:14:44 »
@reyalp

Thanks, that’s what I thought, ie I can’t capture a single image with Canon AEB on.

BTW I want Canon AEB on, and the ability to capture a single image.

I know a way to achieve what I’m after.

Once again, thanks for your insight.

Re: Canon vs CHDK shooting
« Reply #5 on: 17 / August / 2022, 02:01:59 »
@reyalp

Sorry to bother you again, but I have a question related to your response above.

If I use props=require'propcase' at the start of my script and subsequently use base_s = get_prop(props.USER_TV), will the props data get updated as things change, or will the props only capture the USER_TV that was at the start of running the script?

Is it better to use get_prop(require'propcase'.USER_TV) everytime I wish to get the USER_TV value.

*

Offline c_joerg

  • *****
  • 1248
Re: Canon vs CHDK shooting
« Reply #6 on: 17 / August / 2022, 02:04:17 »
Generally speaking, I would suggest if you want to do bracketing in a script, you would be better off using CHDK functionality rather than trying to integrate it with Canon native bracketing.

The only reason for me to use the Canon AEB is the speed at which the 3 shots are taken. With CHDK I never made it in speed.
M100 100a, M3 121a, G9x II (1.00c), 2*G1x (101a,100e), S110 (103a), SX50 (100c), SX230 (101a), S45,
Flickr https://www.flickr.com/photos/136329431@N06/albums
YouTube https://www.youtube.com/channel/UCrTH0tHy9OYTVDzWIvXEMlw/videos?shelf_id=0&view=0&sort=dd

*

Offline reyalp

  • ******
  • 14080
Re: Canon vs CHDK shooting
« Reply #7 on: 17 / August / 2022, 02:11:57 »
If I use props=require'propcase' at the start of my script and subsequently use base_s = get_prop(props.USER_TV), will the props data get updated as things change, or will the props only capture the USER_TV that was at the start of running the script?
Using
Code: [Select]
props=require'propcase'
...
get_prop(props.X)
is effectively identical to
Code: [Select]
get_prop(require'propcase'.X)
I only use the latter in my example because it's standalone, without assuming you've done require'props' elsewhere in the script.

The propcase module just lets you refer to propcases by name rather than platform specific numeric ID, it has no effect on the behavior of get_prop or set_prop.
Don't forget what the H stands for.


Re: Canon vs CHDK shooting
« Reply #8 on: 17 / August / 2022, 02:12:43 »
Generally speaking, I would suggest if you want to do bracketing in a script, you would be better off using CHDK functionality rather than trying to integrate it with Canon native bracketing.

The only reason for me to use the Canon AEB is the speed at which the 3 shots are taken. With CHDK I never made it in speed.

Agree: which is why I'm looking to build in the dual functionality in my 'new' script, ie Canon AEB and CHDK 'zero noise' bracketing, ie ETTR and +4Ev (ISO or TV), as Canon can't ISO bracket ;-)

 

Related Topics