Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - chris88

#1
Hello everyone,
I had an idea this morning which is about "exposure offset correction".

Introduction:
For my taste the Canon 6D which I own often produces slightly underexposed images. So I often adjust my exposure to +1/3EV by standard. As I do so nearly every time, I am not using my light meter in the viewfinder like intended. Instead of setting it to "zero" to get the right exposure I need to set it to +1/3 EV every time. This is not the worst thing ever, but it feels slightly irritating doing so. Therefore the best thing which I could think of is to be able to offset adjust the exposure measurement to my taste.
Now, since some weeks I have bought a third party focusing screen and noticed that the pictures are looking even darker with the new focusing screen. In the Canon menu I can adjust my cameras exposure perception by  the customer function C.Fn III where I can choose between three presets for the following Canon focusing screens: Eg-AII, Eg-D, Eg-S. But none of those three presets seem to really fit to my third party focusing screen. So again, the best thing which I could think of is to be able to offset adjust the exposure measurement to my taste.

The Idea:
Can't we use the same way as the customer function for focusing screen selection uses to set exposure offset corrections to set our own "exposure offset"?
So, is it possible to identify which registers are modified by the customer function for focusing screen selection and then write down our own values in there?
This way we might be able to tune our cameras to an exposure perception which also fits our own, very individual taste.

What do you think?
Would this be possible?
And if yes, who is willing to help developing such a functionality?

Many thanks is advance and best regards,
Chris
#2
I would suggest to make the GPS Power Safe feature more customizable and therefore usable.

Introduction:
There are several modes:

Mode 1: Normal Operation
Mode 2: Auto Power Off (timer)
Mode 3: Power Off (by physical pĆ³wer switch)

And between the modes there are several possible transitions.

Transition Mode 1 -> Mode 2 is timer based
Transition Mode 2 -> Mode 3 is done by the power switch
Transition Mode 1 -> Mode 3 is also done by the power switch

And also important, the "reactivation" transition from standby back to normal:
Transition Mode 2 -> Mode 1 can be done by pressing e.g. the shutter button


Current ML functionality:
Currently GPS Power Safe can be switched ON or OFF. If "on" then the GPS works like this:

Transition Mode 1 -> Mode 2 is timer based, GPS is switched OFF
Transition Mode 2 -> Mode 3 is done by the power switch, GPS is switched OFF
Transition Mode 1 -> Mode 3 is also done by the power switch, GPS is switched OFF

BUT when switching from standby back to normal:
Transition Mode 2 -> Mode 1 can be done by pressing e.g. the shutter button, GPS is turned back on but needs some time (~30-60s) to find the satellites. Until the satellites are found, no GPS data is written to the image files. This means that after waking up the camera you have to wait 30-60s to be able to shoot geotagged images - this is a no-go!


Solution:

Adding a new GPS Power Safe mode which works like this:

Transition Mode 1 -> Mode 2 is timer based, GPS still remains ON
Transition Mode 2 -> Mode 3 is done by the power switch, GPS is switched OFF
Transition Mode 1 -> Mode 3 is also done by the power switch, GPS is switched OFF

This way switching from standby back to normal will be no problem:
Transition Mode 2 -> Mode 1 can be done by pressing e.g. the shutter button, as the GPS is still active it does not need any initialization time to find the satellites. Therefore there is no delay when taking geotagged images. This is how it should work!


The Canon-Way
Switching the original Canon GPS functionality to "on" means:

Transition Mode 1 -> Mode 2 is timer based, GPS remains ON
Transition Mode 2 -> Mode 3 is done by the power switch, GPS remains ON
Transition Mode 1 -> Mode 3 is also done by the power switch, GPS remains ON

Therefore it is no solution to use the Canon way because GPS remains on during the transitions 2->3 and 1->3 and therefore depleting the battery even if the camera is switched off by the power switch.


Remark:
Normally you should switch the camer off by using the power switch. Then also the GPS functionality should be off. But during a shoot, or e.g. if you are on a city trip, you might want to use the power off timer to safe some battery power, but at the same time be able to quickly get back to active mode to take a picture. In this situation GPS should (as mentioned above) not be switched off.


Best regards,
Chris
#3
Hello together,
I am totally new to LUA scripting, but my goal is to write a script which is able to skip several ISO values when setting the ISO values via the canon scroll wheel (pressing ISO button + selecting ISO via scroll wheel). I started by trying to alter the copy2m.lua script. config.lua is also present in the script directory. Currently I have this code which does not run yet. I try to dig deeper. But I think currently I'm struggling with the handler concept. I do not know what the handler values can be and how I could find out this. Maybe someone could help me a little bit with this. my preferred way would also be to set the camera.iso.value istead of .raw, but I think the handler maybe in raw format. I don't know.
For the Canon 6D I read out the ISO RAW/VALUE/APEX data, which you could see below. When trying to read out property.ISO and property.ISO_AUTO it only displays "table: p" but I do not know how to look into the values of this table.


--copies the shutter, aperture, and iso of the current mode when switching to M mode
require("config")

--class to keep track of property values using prophandlers
prop_value = {}
prop_value.__index = prop_value

function prop_value.create(...)
    local pv =
    {
        value = 0,
        previous = 0,
        time = dryos.ms_clock,
        props = {...}
    }
    setmetatable(pv,prop_value)
    return pv
end

function prop_value:enable()
    for i,v in ipairs(self.props) do
        function v.handler(prop,value) self:set(value) end
    end
end

function prop_value:disable()
    for i,v in ipairs(self.props) do
        v.handler = nil
    end
end

function prop_value:set(value)
    if value ~= 0 then
        self.previous = self.value
        self.value = value
    end
end

function prop_value:get()
    --ignore value if we've been in the current mode for less than 1 sec
    if dryos.ms_clock - self.time < 1000 then
        return self.previous
    else
        return self.value
    end
end


local iso_value = prop_value.create(property.ISO,property.ISO_AUTO)

--will be set as the prop handler for property.ISO, when enabled
--
--                     RAW     VALUE   APEX
-- ISO Automatic       0       0       -40
-- ISO L               64      50      40
-- ISO 100             72      100     50
-- ISO 125             75      125     53
-- ISO 160             77      160     56
-- ISO 200             80      200     60
-- ISO 250             83      250     63
-- ISO 320             85      320     66
-- ISO 400             88      400     70
-- ISO 500             91      500     73
-- ISO 640             93      640     76
-- ISO 800             96      800     80
-- ISO 1000            99      1000    83
-- ISO 1250            101     1250    86
-- ISO 1600            104     1600    90
-- ISO 2000            107     2000    93
-- ISO 2500            109     2500    96
-- ISO 3200            112     3200    100
-- ISO 4000            115     4000    103
-- ISO 5000            117     5000    106
-- ISO 6400            120     6400    110
-- ISO 8000            123     8000    113
-- ISO 10000           125     10000   116
-- ISO 12800           128     12800   120
-- ISO 16000           131     16000   123
-- ISO 20000           133     20000   126
-- ISO 25600           136     25600   130
-- ISO H1              144     51200   140
-- ISO H2              152     102000  150


function iso_mode_handler(self,value)
    if value ~= 0 then
        local i = iso_value:get()
        if i == 72 then camera.iso.raw = 77 end -- ISO 100 gets ISO 160
        if i == 75 then camera.iso.raw = 77 end -- ISO 125 gets ISO 160
        if i == 80 then camera.iso.raw = 85 end -- ISO 200 gets ISO 320
        if i == 83 then camera.iso.raw = 85 end -- ISO 250 gets ISO 320
        if i == 88 then camera.iso.raw = 93 end -- ISO 400 gets ISO 640
        if i == 91 then camera.iso.raw = 93 end -- ISO 500 gets ISO 640
        if i == 99 then camera.iso.raw = 101 end -- ISO 1000 gets ISO 1250
        if i == 107 then camera.iso.raw = 109 end -- ISO 2000 gets ISO 2500
        if i == 115 then camera.iso.raw = 117 end -- ISO 4000 gets ISO 5000
    else
        iso_value.time = dryos.ms_clock
    end
end


skipbadiso_menu = menu.new
{
    parent = "Expo",
    name = "Bad ISO skipping",
    help = "Skips bad ISO values",
    choices = {"OFF","ON"},
    value = "OFF"
}

function skipbadiso_menu:select(delta)
    if self.value == "OFF" then self.value = "ON" else self.value = "OFF" end
    skipbadiso_update(self.value)
end

--start/stop the prop handlers to enable/disable this script's functionality
function skipbadiso_update(value)
    if value == "ON" then
        iso_value:enable()
        property.ISO.handler = iso_mode_handler
    else
        iso_value:disable()
        property.ISO.handler = nil
    end
end

config.create_from_menu(skipbadiso_menu)
skipbadiso_update(skipbadiso_menu.value)



The idea behind:

When ISO is set to auto or any value not mentioned in the code above the camera will stay at this ISO value. But if the ISO is set to 100,125,200,250,400,500,1000,2000 or 4000 it will switch to another ISO value by it's own.
#4
My suggestion:
A possibility to deselect the ISO levels one do not want to use.
e.g. on a 6D with 1/3 ISO steps the ISO sequence when setting via the ISO button on the camera is:
100  > 125 > 160 > 200 > 250 > 320 > 400 > 500 > 640 > 800 > ...

Now it would be nice to have a possibility to deselect some ISO levels. e.g.:
125 / 250 / 400 / 500 / 640, so the new ISO sequence when setting via the ISO button on the camera is:

100 > 160 > 200 > 320 > 800 > ...

Would this be possible?