Ah. Dug in here and have the sync working with my half shoot held mode. I modified action_stack.c to add some new shoot scripts.
One of the nice features of working with CHDK. You have the source code and can do anything that you want!
The minimum "setup time" ie the time the remote needs to be in half_press state is now extremely short (I can't reliably measure it but I'd say 100ms tops, as we'd expect since in half shoot mode everything should be ready to shoot). I'm at 26 shots/minute now, so getting a lot closer to my 30 shots/minute target.
The minimum time after you assert the half_press state is a function of the time to focus and set exposure. So if you have a subject with lots of contrast and good lighting, that can be pretty quick.
I assume the delay between remote full state and shutter close is set by the sync code? Seems to be about a half second right now, which is not bad and a small part of my 2s/shot time budget.
Umm .. not exactly. It's set by the time the Canon code takes to get there. Not really anything to do with CHDK.
There seems to be still a fairly long time between the shutter close and when it is ready for the next trigger event (about 2s).
In my experience, that's almost entirely the time to process and save the JPG image to the SD card.
Much longer than when shooting in continuous mode.
From what I've seen, continuous mode buffers images in RAM and writes to the SD card asynchronously while the next shot(s) happen. At least until it runs out of RAM that is. If you have a camera that will shoot continuously in continuous mode, you will usually see the shot rate slow down after a while. In fact, IIRC we had to do a "minimum memory footprint" version of CHDK for someone a few years ago so that he could get enough RAM back to shoot continuously at all. I think there are other tricks the camera pulls - like saving in increased compression too.
Any ideas how I might trim this down? In my special action_stack shoot script I removed the retry functionality and the delay that was in there to wait for the jpeg to be saved. This helped, but I'm not sure where else to trim time out.
Like I said, you are fighting the Canon firmware and the limitation of low cost hardware here. But my kap_uav.lua script routinely gets 2 shots per second in continuous mode - i.e. with focus and exposure locked by a held "shoot_half" and the "shoot_full" toggled at 2 fps. This works better on some cameras than others.
If I can't get things working fast enough in this mode, maybe I should try to build a remote trigger mode that is based on continuous mode? I could just hold down full shot and then use the sync code to hold the shot between trigger events?
I don't see why not. That also works with my kap_uav.lua script although it does not seem to work any faster when tested with my S100.