After a couple of IRC discussions with reyalp, the consensus is to add a Lua scripting function that disables the various #defined interlocks that decide if set_focus() actually gets issued or not. With all of your help, this will then be used to collect as much information as possible about what works and doesn't for each camera directly at the Canon firmware level.
I've attached a patch file that implements this. My preference would have been to put #defines around the changes so that they are only a build option for people doing new ports once these set_focus() tests are complete. However, luascript.c is a module and conditional compilation in modules is strongly discouraged by the CHDK devs.
I've also attached a reworked script that captures more information than the previous script. It can run without actually taking any pictures ( shoot_half only ) although there is an option to enable full shots. It also lets you run with interlocks disabled or enabled. And logging opens and closes with each write to preserve as much of the log as possible during testing if there is a crash.
The plan now is to update the unstable branch with some variation of this patch and then ask all the testers to load the new version and run the new test script. Be warned that with interlocks disable, some test steps will cause the camera to shutdown. Once that is done, a final determination can be made about how to finally fix CHDK's SD override functions so that they work consistently for all cameras.
I'd appreciate feedback on the script changes - for now you can run with the interlocks enabled and any current CHDK build. Post any MF_test.csv and comments here?
TIA