The port for the EOS M3, along with reyalp's most excellent LUA hook functions, made we want to get back into CHDK programming again. This time, though, I'm only doing Lua scripting, no C code!!!
Over the last few years, I've done hundreds of time lapse videos using my Tlapser.lua script, and custom CHDK build. But I'm stuck back on version 1.3, so I hope to adapt Tlapser.lua for newer cameras, especially the M3.
I've attached a copy of my test script, Ctest.lua. The "C" stands for continuous mode, which my new time lapse script will require. I've also attached a combined log file from Ctest.lua that includes 2 runs on the G1X, and 2 on the M3.
One thing I discovered is that the ISO isn't saved into the EXIF data on the M3. The photos come out exposed correctly, however. So Ctest.lua includes an option to specify you're on an M3. If so, it saves sv into a new propcase I discovered that should be called:
PROPCASE_SV2 = 354 (on the M3)
If you have an M3, run Ctest with the eosm3 parameter unchecked, and another run with it checked. Set the ISO parameter different from the camera ISO, like ISO 800 or something. Then check the photos to see if they show the correct ISO or not.
====
You'll also notice that I wrote a logging function called:
function logger(s)
This delays the actual writing of the log file to the SD card until the end. That way, writing the log doesn't hang the script when the camera is busy writing photos (especially large RAW files). In my Tlapser.lua script, I found that writing every line to the SD card sometimes hangs for up to 7 seconds!
===
I also used reyalp's raw routines to log the black level, and the value of pixel (5,5). That pixel is in the masked area of the sensor where it doesn't get any light. Its value should be close to the black level.
Next I show the value of the pixel in the center of the active area, which varies. An overexposed image gives the white level.
Both the G1X and the M3 have 14 bit pixels, but the M3 black level is 2047, while the G1X is 511. That sounds like the M3 would have less range, but it's actually like having 13.8 bits instead of 14. Presumably, this helps to lower the noise level.
===
The logs also include timing data which I'm hoping to use to talk reyalp into adding a function like this:
set_next_shutter_open_time(tick_time)
That takes the precise timing of the shutter opening out of the script and puts into the shooting task, where it is more accurate. I discovered that I could sync 2 different cameras running Tlapser.lua by doing this, as well as a number of other advantages that speed up the maximum shot rate. I'll discuss this more in the future as I collect more data.
You can view the videos I've done with Tlapser.lua in the past few years here:
https://www.youtube.com/user/DrLapser/videos