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.

Topics - garry23

Pages: [1] 2 3 ... 11
General Chat / Another 645 example, with the help of ML
« on: September 01, 2019, 03:05:48 PM »
If you are interested in taking 645 images, with the help of ML, you may be interested in my latest post:

Share Your Photos / Dual-ISO shows its value...again ;-)
« on: August 29, 2019, 02:40:21 AM »
I thought some may be interested in my latest FB post, showing the value of Dual-ISO.

General Development Discussion / Realtime Histogram
« on: July 06, 2019, 06:23:47 AM »
We are beginning to see new functionality in cameras that seems to hint at new/additional ML features.

One that got my attention is the Olympus OM-D EM1 Mk II, which shows a histogram of the realtime development of a LE image. For example
My 'obvious' question is: with the power of ML and the inginuity of the developers, could ML deliver a similar functionality?

Even if it was not continuous, it would be a game changer to show the histogram at discrete time points in the LE.

Feature Requests / Keypress event handler in Lua
« on: June 25, 2019, 09:35:29 AM »
The current event handler either blocks or allows processing of a key.

Would it be possible to also include the ability to switch keys, eg key_1 pressed, but key_2 processed.

I know I can do it via scripting  ;)

General Help Q&A / 5D3 Red Light ;-)
« on: May 30, 2019, 08:04:48 AM »
It may be me, as usual, however, I've just seen a strangeness associated with my 5D3 red light (bottom right at the back).

Running latest Lua Fix.

Switch on: light flashes as expected a few times.

Switch to LV light comes on an stays on.

Switch out of LV light stays on.

I've tried this with no scripts loaded and it's the same.

I've reformatted the CF card and removed the SD card: it's the same.

Does anyone have any insight.

Resolved: Although I was in photomode, I switched between video and photo mode a few times, and 'problem' has gone away.

General Chat / $64
« on: May 20, 2019, 06:49:09 PM »

Share Your Photos / Focus Stacked Flax Field
« on: May 19, 2019, 04:48:57 PM »
Needed a break from working in our garden, so popped out to the flax field just up the road.

5D3, f/8, 1/200s, Dual ISO 100/1600.

Captured using my auto focus bracketing script: three images.

Processed in PS using simple layer masks.

Scripting Corner / Bracketeer: perfect manual focus brackets
« on: May 14, 2019, 09:56:28 PM »
For those that are seeking perfect manually set focus brackets, you may wish to look at my latest script: Go here to download and read about the script:

I wrote this to complement my automatic focus bracketing script.

The two may be loaded together as they have been scripted to 'respect each other'.

As usual I welcome feedback and suggestions to make the script better.

General Development Discussion / Focus distance strangeness
« on: May 04, 2019, 10:10:57 AM »
I’ve spent a long time trying to understand Canon focus reporting, which is what I believe ML reports. That is the distance between the subject and the sensor plane.

In EXIF data, the Canon maker info reports upper and lower figures for focus distance, and these don’t seem to match the ML reporting well.

I just did the following test on a 24-105 F/4L.

Set the lens to 105mm, ie where one gets the max magnification and focused on a subject  (a test card) at about 2m away. I used auto focused and manual focus and always got a reasonable match to the ML reported focus distance.

I then changed focal length to 24mm and refocused, both trying auto and manual, and the ML focus distance now does not match the actual distance, which hasn’t changed from the first test. It is reported well short.

Something is not right.

My simple conclusion is that the ML, Canon, focus distance reporting is only ‘right’ at the long focal length of a zoom lens. After all this is where Canon reports their maximum magnification in the spec.

Does anyone else have any insight here?

General Help Q&A / LV Problem
« on: April 22, 2019, 10:45:57 AM »
Does anyone know why I get the following error stream?

It's driving me nuts!

Scripting Q&A / Press question
« on: April 19, 2019, 10:28:40 AM »

If I want to trigger advanced bracketing in a script, I need to simulate a shutter press. The question is, what is the best way.

Do I need to do a full sequence, ie press(half), press(full), press(unpressfull), press(unpresshalf)?

Or some other sequence.

How do I pause the script to wait for advanced bracketing to finish, eg before I refocus etc.

Hope you can educate me.



Scripting API suggestions / Additional camera.x classes
« on: April 19, 2019, 07:08:02 AM »
Currently camera.aperture has .min and .max, allowing lens specific testing and setting.

Would it be possible to include .min and .max for shutter and ISO, so you can test/set the camera's min and max ec, shutter speed or ISO, which varies over cams.



Scripting Corner / Managing mode change
« on: April 17, 2019, 07:48:22 PM »

I’ve stumbled again  :-[

What I’m trying to do is enter my script in any mode, ie M, Av or Tv, and in the script change/control both aperture and shutter speed, ie run the script in M mode.

Is there a way to switch modes in Lua?

If there is, I can’t find it.

The alternative being to force the script to only run if in M mode.

As usual I’m hoping you have the answer  ;)



Scripting Q&A / lens.focus problem
« on: April 16, 2019, 07:24:52 PM »

As usual, I hope you can help.

I'm writing a new script and trying to use lens.focus.

I'm in LV but I get a console error saying lens.focus needs to run in LV.

Here is the area of the script that throws the error:

Code: [Select]
function set_focus(x)
    local current_x = lens.focus_distance
    if x == current_x then return x end
    if x > current_x then
        while lens.focus_distance < x do lens.focus(1,2,true) end
        while lens.focus_distance > x do lens.focus(-1,2,true) end
        while lens.focus_distance > x do lens.focus(-1,2,true) end
        while lens.focus_distance < x do lens.focus(1,2,true) end
    return lens.focus.focus_distance -- final focus distance, ie may not be extactly x ;-)

I simply can't work out what's happening.

Am I missing something?

BTW I'm on a 5D3 with the latest Lua fix.



Scripting API suggestions / set_focus()
« on: April 14, 2019, 08:11:53 AM »

Over at CHDK I can use set_focus() in Lua, see my post here

As the G1X is an APS-C class camera, this is my preferred camera when doing deep focus landscape shots. For example this test image attached that I actually took with my G7X.

I see in the latest Lua fix experimental that you reference unlocking rack focus for EF lens, at least.

But to get the full power out of controlling the focus one needs to control focus position in Lua, which is currently only available by moving a fixed amount and looping until you have converged to your required focus position. I’m sure if I can do this in Lua, and I can and have, it would be more stable and faster doing in in C and having something like this:

set_focus (the current focus distance in mm)

get_focus may also be used directly in an expression where its numerical value might fit: set_focus ((3 * get_focus) / 2) would set a new focus distance 1.5X farther than the current distance.


Assuming you think it can be done (technically and your time), may I request you consider adding set_focus() to the next Lua fix update.



Scripting Q&A / Managing script to script conflicts
« on: April 01, 2019, 05:53:54 PM »

I’m looking to refactor my scripts so they work better together.

The issue I usually face is that script A looks to use a key 1, but so does script B.

I’m therefore looking to somehow use my cycler script as a master control script, ie to manage event.keypress and event.shoot_task, ie to deconflict scripts.

What I don’t fully understand is how the keypress event is handled, ie does it pass through each script in turn?

When you have a spare moment, I hope you can throw some education my way  ;)



Scripting Corner / Key management question
« on: March 27, 2019, 08:43:33 PM »

Hope you can quickly help and put me out of my misery.

‘All’ I’m trying to do is use event.keypress to look out only (sic) for a half shutter press and not a full shutter press.

My question is, when you do a full shutter press, does the key event handler go through the full sequence, ie halfshuuter, fullshuuter, fullshutterunpress, halfshutterunpress, or some other logic.

Thus if I look for and halfshutterunpress and a key.last == fullshutterunpress I should be ok. But when I try this, it doesn’t seem to work.



Scripting Corner / Cycler
« on: March 18, 2019, 11:07:34 PM »
Previously I published a script I called ‘The Toggler’; the idea being to gain quick access to various ML states without using the ML menus.

Although The Toggler worked, I believe it was a little too complicated, eg you would toggle forwards and backwards using various ‘hijacked’ keys.

I’ve now revisited The Toggler and simplified it, and, in the process, renamed it Cycler. Which can be downloaded here:

The idea remains the same, ie quickly gain access to various ML states. The rationale being some ML features, eg ETTR and Auto Bracketing, not work together, ie one needs to be switched off or set up correctly.

Unlike The Toggler script, Cycler only needs one button. In the published script I have used PLAY. In the version I use on my EOSM, I cycle through the following ML states by simply double pressing [PLAY]:
   1.   Null: switch off all menus under control
   2.   Switch ETTR on
   3.   Switch off ETTR and switch on Auto Bracketing
   4.   Switch off Auto Bracketing and switch on Focus Zoom
   5.   Switch off Focus Zoom and switch on Dual-ISO

Note that Cycler requires you to handle additional sub-menus, ie ‘all’ it does is switch on or off a particular ML main menu. But note you could add in sub menu changes as well.

The script ‘hijacks’ the PLAY button by looking out for double presses in the following way:
   •   [PLAY]+(<1000ms)+[PLAY] = cycle to the next ML state
   •   [PLAY]+(>1000ms)+[PLAY] = [PLAY] functions as normal

Cycler only moves through the states in one (circular) direction. The time delay can be adjusted in the script.

The script is relatively simple and additional states can be added easily. All one has to do is manage switching on/off the previous state. Just follow the script’s template.

Note, you can cycle between complex states, ie with multiple menu set calls.

Bottom line: Cycler is a simple script, that I personally find of value, especially on the EOSM with its limited buttons and when there may be clashes, eg access to the SET button or when using ETTR vs Auto Bracketing: I hope others find it of interest as well.

Finally, as usual, I welcome any feedback on the script.

Scripting Q&A / Lua playing up?
« on: March 17, 2019, 08:22:19 PM »

I've reached a point where I believe there may (sic) be a Lua issue, ie rather than my bad programing ;-)

Here is the code:

Code: [Select]
Version 0.1
Garry George April  2019

config = 1
max_config = 5
-- Change the Cycler button to your choice, for example
-- B1 = PLAY and B2 = INFO on an 5D3, and B1 = INFO and B2 = PLAY on a EOSM
button_1 = KEY.INFO -- imode switch and set
button_2 = KEY.PLAY -- used to go forwards in imode
button_3 = KEY.MENU -- used to go backwards in imode
cycled = true
timer = dryos.ms_clock
timer_running = false

menu.set("Expo","Auto ETTR",0)
menu.set("Shoot","Advanced Bracket",0)
menu.set("Overlay","Magic Zoom",0)

function reset(k)
    if cycled then
        if config == 1 then
            -- normal play function, so reset everything
            menu.set("Expo","Auto ETTR",0)
            menu.set("Shoot","Advanced Bracket",0)
            menu.set("Overlay","Magic Zoom",0)
        elseif config == 2 then -- switch on ETTR
            menu.set("Expo","Auto ETTR",1)
        elseif config == 3 then -- switch on bracketing
            menu.set("Expo","Auto ETTR",0)
            menu.set("Shoot","Advanced Bracket",1)
        elseif config == 4 then -- switch on Magic Zoom
            menu.set("Shoot","Advanced Bracket",0)
            menu.set("Overlay","Magic Zoom",1)
        elseif config == 5 then -- switch on Waveform
            menu.set("Shoot","Advanced Bracket",0)
        cycled = false
        -- do nothing
function test4reset(k)
    if k == button_2 then
        if timer_running then
            if dryos.ms_clock - timer < 500 then -- normal button action
                timer_running = false
                cycled = true
                return true
                config = config + 1
                if config > max_config then config = 1 end
                cycled = true
                timer_running = false
                return false
            timer = dryos.ms_clock
            timer_running = true
            cycled = false
            return false
    cycled = false
    return true

event.shoot_task = reset
event.keypress = test4reset
    name = "Cycler State",
    value = "",
    priority = 100,
    update = function(this)
    this.background = COLOR.WHITE
    this.foreground = COLOR.BLACK
        if config == 1 then
            this.value = "PLAY"
        elseif config == 2 then
            this.value = "ETTR"
        elseif config == 3 then
            this.value = "Auto"
        elseif config == 4 then
            this.value = "Zoom"
        elseif config == 5 then
            this.value = "Wave"

The problem occurs when you cycle through the options and reach the waveform option.

All this state does is switch off the previous ML state, ie Magic Zoom, and switch on waveform.

All other state changes work fine.

At the waveform state change, the cam (EOSM) freezes.

As I say, it may be my programing, but I don't believe so.



Tutorials and Creative Uses / Reflections on ML & CHDK
« on: February 28, 2019, 08:08:04 PM »
I thought I would write a few words on my experiences related to CHDK, as Magic Lantern and CHDK are ‘close cousins’.

In particular, as a stills photographer, I wanted to flag up that some of the Canon P&S cameras are pretty good when you wish to travel light; and, therefore, having ML and CHDK, together, is a killer combination.

Yes, we have the (mirrorless) EOSM in our ML world, but this still needs lenses; and, when it comes to controlling focus, it suffers from the same limitations as other ML-EOS cameras, ie not being able to fully/robustly control focus position via Lua, compared to CHDK that is.

BTW this lack of (ML) focus control is why I wrote the DoF Bar script as a manual aid when focus stacking: that is, giving you more info than on the lens’ DoF scale.

So I decided a few months ago to reacquaint myself with the CHDK P&S options. I had previously dabbled in CHDK when I purchased a pocketable S95 some 8 years ago: a very small ‘footprint’, but, of course, a very small (12-bit output) sensor. I then moved on from a 50D to a 5D3 and three EOSMs (vis, IR and 645), got into ML-Lua and ‘forgot’ about CHDK.

So, as a present to myself last Christmas, I bought two second hand Canon P&S cameras, with the largest sensors I could. Namely the G7X (1” sensor) and the G1X (APS-C class sensor).

I wasn’t trying to emulate ML’s full functionality, eg Dual-ISO, but I did want to see how far I could push the G1X and G7X as ‘tripod-based’ travel cameras: and potentially see what CHDK could do beyond ML. I also wanted a movable LCD for my low-level photography :-)

I thus set about writing a Lua script in CHDK to do something that I have failed to do with the ML and my interchangeable lens EOS cameras. That is write a robust (auto) bracketing script that worked from close-up, ie ‘macro-like’, to landscape, and automatically handled exposure and focus bracketing together.

The result is a Landscape Bracketing Script I have published on the CHDK forum:

The script has the following functionality/features:
•   Seamless focus bracketing from the camera’s minimum focus to a blur-defined infinity, ie specified as a fraction of the default/assumed defocus CoC;
•   Focus brackets can have one of four overlap options: None, ie the focus brackets touch at a defocus blur of the camera’s CoC; 2/3 the CoC; half the CoC or at a diffraction aware blur that ensures the diffraction and defocus blur, taken in quadrature, equals the camera’s CoC. BTW the CHDK default CoC is the classic crop-adjusted from an assumed FF 30 microns;
•   The script allows the user to select one of several focus stacking options, ie: from the current focus to a delta (mm) distance, useful for close up photography; from the current focus to the blur defined infinity; from the camera’s min focus to the current focus; from the camera’s min focus to the blur defined infinity, ie a full focus coverage. The script automatically ‘finds’ the camera’s minimum focus;
•   Because focus stacking can result in many brackets, the script allows the user to identify a maximum number, ie as a warning. This can be switched off, ie max number of focus brackets = 0;
•   At each focus step the script also allows several exposure bracketing options, eg: two additional exposures at 1, 2 or 3EV and using a -/+, +/++ or -/-- logic; one additional bracket at an ISO 800 or ISO 1600, ie to capture a single ISOless-zone additional bracket, which may be useful if handholding (but note that many P&S camera can be assumed to be ISO invariant from the base ISO, unlike the EOS cameras); or a ‘zero-noise’ time bracket at +4Ev, ie to cover the shadows (but with increased blooming risk);
•   The user can select the blur-defined infinity where the focus bracketing will stop, ie at either CoC/2, CoC/3 or at CoC/4; which equates to 2H, 3H or 4H distances, where H is the hyperfocal distance (note an infinity blur of CoC/3 is about the limit, as going smaller than this means you risk pushing into the less than 2-sensel zone);
•   The script will, if requested, put a dark-frame bookend at the start and end of the focus-exposure bracket set. Useful in post to differentiate a bracketing set;
•   Finally, the script, if requested, will add a log entry in a log file, with the focus distance info for each focus.

As an example of what the script can do, I attach a few images that I took with my G7X.

The cathedral examples were taken using the +/++ exposure option and by focusing on the nearest point of interest. The garlic head is a ZN example where I focused on the front of the head and specified a 30mm delta from there.

As to using the script: my personal preference for landscapes is to use the CHDK log-based histogram to ETTR for the highlights and use the +/++ exposure bracketing or the Zero-Noise one.

I’ll stop here as I think I’ve achieved what I wanted: that is alert the EOS/ML stills photographers out there, that there are some pretty good travel options in the CHDK world, eg the G7X and the G1X. That is as long as you are not looking for ML-specific ‘stuff’ such as Dual-ISO and RAW video; these are pretty good alternatives to, say, the EOSM.

As usual I welcome feedback, especially from others that have explored the Lua-based ‘cross over world’ between ML and CHDK.

Tutorials and Creative Uses / Non ML dual ISO
« on: February 20, 2019, 09:35:48 AM »
Forgive me if you have seen this before

I just came across the following channel, that I thought I would share.

Yes I know it’s not Canon based, but some of the videos address genetic video/photography matters.

For example this one: 

General Development Discussion / This may be of interest to some
« on: December 21, 2018, 10:10:42 AM »
I’m always looking for ways to get more out of my scripting experiments and came across this, which seems to hint at an alternative exposure bracketing approach.

Any thoughts?



General Help Q&A / Scripts vs Modules
« on: December 02, 2018, 09:25:23 AM »

In the past I toyed with the idea of learning C and how to compile ML etc, but with Lua scripting I simply don’t see the need.

So, my question is, am I missing anything by restricting my work to Lua?

What would a module, say, of my DoF Bar, give me that a script wouldn’t?



Pages: [1] 2 3 ... 11