A couple of general questions relating to precision sync:
First set of precision sync test results using uController LED based tester and A1200
Chart shows binned data for three test conditions :
1) No Sync (blue)
2) Normal CHDK sync method enabled (red)
3) vnd's precision sync method enabled. (green)
Timing is in milliseconds from the release of the 5V USB remote signal to image capture - remote=enabled, switch type=one press , control mode = normal. Shutter speed 1/2000, LED count rate = 500 mSec, LED encoding = gray code. Sample count = 25 per sync setting.
Preliminary Conclusions
- without any sync enabled, the time between USB remote release and image capture varies randomly by about 40 mSec
- with standard CHDK sync enabled, the time between USB remote release and image capture varies by about 20 mSec, with the majority of the captures being within 8 mSec
- with precision sync, the time between USB remote release and image capture varies by less that 4 mSec for almost all capture. However, there are occasional captures that are 30 mSec sooner
I think it might be possible to correct the third conclusion above by tweaking the precision sync code a bit. It looks like some shots are happening exactly one timing period early.
"In God we trust; everyone else must bring data".
With precision sync on A1200 that seems to be:
4 at 135ms
16 at 133ms
2 at 103ms
3 at 99ms
Total 25 shots with 16 at 133ms = 64% sub 1ms?
On the A1200, the time from USB release to shutter activation seems to vary less that 1 mSec for 98 out of 100 shots
There was a month between those two posts. Were there code changes or different testing technique (e.g. simply larger sample) that led to the apparent improvement from 59% to 98% in precision sync?
Also, are you deleting the sync delay code on the assumption it will no longer be needed ? Or might you still need it as a "coarse" adjustment if trying stereo with two different camera models ?
The implementation with delay loop is incompatible with this method.
Shorter delays can be just added to sync_time, longer can be implemented by counting the cycles.
A problem might be with translating msec to the units used by this counter, because different cameras have different base clock.
At a high level I mostly understand the normal sync process - but not yet this precision sync one. On a cursory review of that timing diagram it may seem related to a difference of 3 x 30fps timing periods to "normal" sync though.
Anyway, the possibility of, perhaps, synchronising 2 independent sets of cameras to two sequential studio flash events (via a single hardware switch) in, say, sub 4ms total (1/1000th shutter, with around 98/99% success) is, probably, worth further investigation.
Could it be a big task to build precision sync delay so that it became available in the chdk menu? the benefit being no necessity to build 2 independent hardware switches.