If you want hardware precision sync for the second shot, it needs to be triggered by the remote.
Most of my recent, synced single shot, testing has concentrated on setting things up with multicam.lua then enabling the remote and subsequently turning off script and closing the ptp connection. Having taken the single shot (one or twopush), restart connection, restart script and download (aim being, hopefully, increased reliability).
A requirement to take two, synced, shots, in quick succession, on all cameras had mostly escaped me. With respect to that, the following is loosely described as I only vaguely understand what is or could be possible.
If I am reading correctly (shots=2), multicam.lua
function mc:shoot(opts) first causes cameraside preshoot (halfpress) followed by cameraside
function cmds.shoot_burst_usb_pwr() which provides maintenance of halfpress until after end of 2nd shot. That is not available in any two stage combination onepush/twopush remote operation (both contain an autofocus/autoexposure stage). Further, the cameraside
hook_raw.wait_ready will cause any 5V->0V transistions (after the first) to be ignored until
"after shot_histogram has built the raw histogram and DNG exif has been captured, but before any raw or DNG file has been written: http://chdk.wikia.com/wiki/Script_Shooting_Hooks". Only after the first
hook_raw.continue() does the second
press('shoot_full_only') /
usb_sync_wait(true) occur
. Of course, none of that is available in the remote one/twopush combination I have referred to.
However, what I do vaguely wonder is, without ptp connection or script running, if I first executed a remote onepush shot would I still need to wait (some maximum microcontoller provided fixed time) until
"after shot_histogram has built the raw histogram and DNG exif has been captured, but before any raw or DNG file has been written" before executing the first rising/falling edge of a subsequent twopush remote shot?
The aim being (if that wait, or some of it, was not required):
to have the autofocus / autoexposure (not relevant to me in M mode) associated with the second shot being worked on (or completed) while the camera is also doing "stuff" related to the first exposure in order that the second pulse of the second twopush can occur as quickly as possible after the end of the 5v->0V transistion of the first shot (whose exposure starts in a tight band around 132ms - 4 std periods - after that falling edge).
Hope that, sort of, makes sense?
fmi:
But with one push/normal/sync, the sequence is :
- CHDK detects the 0V - 5V transistion on the USB power pin
- CHDK sets the bit the makes the camera think that the shutter button has been pressed half way.
- CHDK waits for the camera to indicate the focus & exposure have been set.
- CHDK sets the bit the makes the camera think that the shutter button has been pressed fully.
- CHDK waits for the USB 5V line to change back to 0V
- CHDK detects the 5V - 0V transistion on the USB power pin
- CHDK clear sets the bits that makes the camera think that the shutter button has been half & fully pressed.
In this process, the actual shot is released at step 4 but pauses waiting for the USB 5V to go to 0V. It then occurs as quickly as the Canon firmware can do so.
So in the one push/normal/sync, there is no "half press" state that you can hold & maintain - CHDK goes from nothing to half press to full press as quickly as it can. AND IT FOCUSES AND SETS EXPOSURE DURING THE HALF PRESS JUST LIKE YOU OBSERVED.