I uploaded version 0.23.
This adds ND filter control for cameras that have both and adjustable aperture and ND filter. I also added a hysteresis option for the ND filter control, to reduce the risk of "flapping" around the the ND threshold.
Note I haven't done much real world testing with this, so I'd encourage you to test before going out to take a real timelapse.
Unfortunately, some CHDK limitations make ND control more complicated than I would have liked, so there are two new ND confusing options that may need to be used for best results:
1) ND value.
This is the APEX96 value of the ND filter. Unfortunately, this cannot be determined by the script on cameras that have both an ND and adjustable aperture, and can only be determined on other cameras if the Canon firmware used the ND on the first shot. The value is always around 3 stops, but varies enough between cameras that using 3 will cause a noticeable jump in exposure. In my experience, if the correct value is used, ND transitions are virtually undetectable.
Known values
* Ixus 140 / Elph 130 276
* D10 283
* G7 X 293
Finding the correct value
* On cameras with only an ND filter (most ixus/elph/SD, many A series) subtract the value of the MIN_AV propcase from the value of the AV propcase after half pressing in a scene were the Canon firmware would use the ND. You can also get it from the with / without ND values of the AV table in platform/shooting.c, if they are set up correctly.
* On cameras with an ND filter exposed in the Canon UI (many G and S series), there are one or more currently unnamed (not defined in propsetN.h) propcases that gives the value. This can be detected by comparing propcases values with / without the ND filter enabled and looking for one that changes by ~3 stops. On G7 X, propcases 85, 93 and 94 contain the value. 85 is associated with the string GetDeltaNDResu and 93 is associated with PCH_DELTAND_MEASU
* For cameras with a "hidden" ND (see description in the following option), I don't know if the value can be obtained from propcases. You could compare raw meter values with/without under stable lighting. It's possible there are propcases that expose these values, but I don't have a camera like this to test.
2) Force initial ND.
On cameras like sx260 which have a "hidden" ND filter (adjustable aperture + an ND filter which is NOT controllable using the Canon UI), CHDK script cannot determine the initial state of the filter. That means that if the canon firmware initially had the ND filter in, ND control will not work. The "Force initial ND" option can be used to set the ND to a known state, however, the initial Canon auto exposure does not account CHDK overrides, so if the Canon firmware chose a different ND state than the force option, the initial exposure will be off by ~3 stops. The script should settle down to normal exposure values after a few tens of shots.
I will start a separate thread in the development forum about addressing some of these issues in CHDK code.