M3 ISO strangeness - General Discussion and Assistance - CHDK Forum

M3 ISO strangeness

  • 6 Replies
  • 164 Views
M3 ISO strangeness
« on: 08 / August / 2019, 12:27:57 »
Advertisements
@reyalp

Hope you can help as I'm get some strange results on my M3.

Here is the code:

Code: [Select]
local iso = get_sv96()
myshoot()
set_sv96(iso+96*4)
myshoot()
set_sv96(iso)

All I'm trying to do is lift the ISO by 4 stops, eg from 100, say, to 1600.

The above gives me 400 and also 400 even if I use 96*8.

Any ideas?

*

Offline reyalp

  • ******
  • 12003
Re: M3 ISO strangeness
« Reply #1 on: 08 / August / 2019, 13:26:46 »
Hope you can help as I'm get some strange results on my M3.

Here is the code:

Code: [Select]
local iso = get_sv96()
myshoot()
set_sv96(iso+96*4)
myshoot()
set_sv96(iso)

All I'm trying to do is lift the ISO by 4 stops, eg from 100, say, to 1600.

The above gives me 400 and also 400 even if I use 96*8.

Any ideas?
Hard to say without any logging or knowing what myshoot does.

A few possibly relevant items:
The get_sv96 value is not necessarily valid outside of half press. It will likely be 0 before a shot has been taken, and whatever value was set in the last half press otherwise.

Another thing to keep in mind is that CHDK overrides set outside of half press are generally only applied in the next half press. So if you subsequently half press without shooting, the override will be lost, and if you shoot multiple shots, the override will only be applied to the first.

Using set_sv96 inside half press sets the values immediately, but because it isn't coordinated with the rest of the Canon shooting process, it may be sensitive to timing or behave somewhat differently from outside half press.

If you want to set ISO to a specific, standard value, you can use set_iso_mode (or propcase ISO_MODE) instead. This should act just like setting it in the Canon menu, but should only be used with standard values that appear in the Canon menu (0 for Auto, 100,200 etc, not 123)

Using set_sv96 implicitly sets the Canon firmware to auto-ISO. You can save and restore ISO_MODE if you don't want this to persist after the script ends.
Don't forget what the H stands for.

Re: M3 ISO strangeness
« Reply #2 on: 08 / August / 2019, 15:11:10 »
@reyalp

Once again thanks for the insight and 'the fix'.

Using the set/get_iso_mode works for me, ie I'm only switching between 100 and 1600.

Strange that the sv function doesn't work, as that code snippet I posted is between a half press sequence, ie I use repeated calls of myshoot between the half press

Code: [Select]
function myshoot()
    local prevcnt = hook_shoot.count()
    local rawprevcnt = hook_raw.count()
    press 'shoot_full_only'
    repeat sleep(10) until prevcnt ~= hook_shoot.count()
    release 'shoot_full_only'
    repeat sleep(10) until rawprevcnt ~= hook_raw.count()
end

*

Offline reyalp

  • ******
  • 12003
Re: M3 ISO strangeness
« Reply #3 on: 08 / August / 2019, 16:51:18 »
Using the set/get_iso_mode works for me, ie I'm only switching between 100 and 1600.
Did you check that the exposure is changed as expected, not just the exif? Not saying it should/shouldn't work, it's just a good thing to check. It's also possible to for the exif to NOT change while the exposure is actually set correctly.

Quote
Strange that the sv function doesn't work, as that code snippet I posted is between a half press sequence, ie I use repeated calls of myshoot between the half press

Code: [Select]
function myshoot()
    local prevcnt = hook_shoot.count()
    local rawprevcnt = hook_raw.count()
    press 'shoot_full_only'
    repeat sleep(10) until prevcnt ~= hook_shoot.count()
    release 'shoot_full_only'
    repeat sleep(10) until rawprevcnt ~= hook_raw.count()
end
A little strange, but not very strange:
Quote from: me
Using set_sv96 inside half press sets the values immediately, but because it isn't coordinated with the rest of the Canon shooting process, it may be sensitive to timing or behave somewhat differently from outside half press.

FWIW, in rawopint, I use set_sv96 and set other exposure parameters while blocking in the raw hook, between hook_raw.wait_ready() and hook_raw.continue(). This appears to work on all cameras I've seen reports for, although there are some quirks on G1 X and possibly on some other cameras at high ISO.

You can use isoinc.lua (https://app.assembla.com/spaces/chdk/subversion/source/HEAD/trunk/CHDK/SCRIPTS/TEST/isoinc.lua background https://chdk.setepontos.com/index.php?topic=12165.0) to test if this method works on your camera.

Your script currently uses hook.count rather than hook set/ready/continue like rawopint. This makes it difficult to ensure the override is applied a specific point in the shooting process.
Don't forget what the H stands for.


*

Offline srsa_4c

  • ******
  • 3945
Re: M3 ISO strangeness
« Reply #4 on: 08 / August / 2019, 17:39:36 »
Perhaps worth to mention here that the M10 and (as far as I know) M3 suffer from a bug: CHDK exposure overrides become ignored when the camera is held in half-shoot for a longer time (1 second, maybe). Only exception is M mode.

Re: M3 ISO strangeness
« Reply #5 on: 09 / August / 2019, 01:25:17 »
@srsa_4c

Thanks for the bug warning. My script runs in M mode, so I hope I should be immune. But I'll keep a weather eye out.

Cheers

Garry

Re: M3 ISO strangeness
« Reply #6 on: 09 / August / 2019, 10:15:46 »
I'm surprised I'm not trying isoinc.lua with my M3...
This is the best way to test ISO behavior.
https://chdk.setepontos.com/index.php?topic=12165.0

I found a run with rawopint. The ISO values range from 100 to 3200. I cannot detect any abnormalities. Unfortunately, I no longer have EXIF values. However, the script runs in continuous mode. As seen with the G1x, this may look different in single mode.

M100 100a, M3 101a, 2*G1x (101a,100e), S110 (103a), SX50 (100c), SX230 (101a), 2*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

 

Related Topics