For a more precise sync to integer seconds, you could poll the RTC (dryos.date) with a tighter interval. For syncing to shorter intervals, you could use dryos.ms_clock, which is derived from the internal microsecond timer (we call it "digic timer"), but that one will probably drift from the RTC a little (didn't test).
Also, since multitasking is quite tricky in our Lua implementation (and that's because of my very limited understanding of Lua internals), I prefer to keep the scripts single-threaded. From my limited tests (read: api_test.lua), event handlers appear to be working fine though.
I made some changes (
new version) last night -- leaving the
event.seconds_clock() function active was leading to semaphore errors. I'm now doing a timing loop at the beginning, and building a X.00 seconds offset from the average of 10 reads of
dryos.ms_clock, and then setting
event.seconds_clock() to
nil. I think I'm getting more consistent results with that approach, and the semaphore errors made me nervous.
If you want to take a burst of full-size images, and you have (or can borrow) a 5D3, my suggestion would be the 4K branch, as it can also record full-res frames
Heh. I bought a used 5DmkII body last week, as a full-frame sensor is a better match to the telescope I will be using. I don't think I could have convinced the wife that a mkIII was a good idea. As it is, I will likely sell it again in September -- my 70D is superior in most other ways that are important to me.
BTW, noticed this in the script:
Can you prepare a minimal example that crashes the camera?
I will see about reproducing the errors I am finding, and will post some example scripts. Right now I'm too focused on getting the results I'd like.

And I also have a question: how do you know what MinShutterSpeed and MaxShutterSpeed will give a reasonably good exposure during the eclipse?
The internet is amazing.

For virtually any need you might have, someone has already done the heavy lifting. From 3rd party camera
software to solar eclipse
exposure calculations... Living in the future is cool.
Side note: the Intervalometer Ramping module is probably capable of something similar (by ramping interval time according to real-time clock, and by enabling Advanced Bracketing with auto exposure range). Have you considered it?
I am looking to spend as little time fiddling with the camera during the eclipse, and during totality in particular. A standard intervalometer might work for each of the 3 segments, but the requirements for capturing the totality segment are vastly different than the other two. With the approach I'm taking, I can set up an hour before the eclipse starts, launch the script, and then not touch the camera again until 3 hours later.I'll have a look. It might well make more sense to reduce the script to a series of timed calls to the hard coded intervalometer.
And another incoming bugs that I will provide some sample scripts for in a couple of days.... Some of the reading I've done in the last couple of days pointed out that vibration caused by mirror slap could be largely reduced by shooting in LiveView. So I tried that last night, and ran into a number of issues. Flooding the camera with single shots with Live View active caused a crash. Also, while
lv.start() seems to work as advertised,
lv.stop() doesn't seem to disable it. These bugs were with the current May 01 5Dmkii lua_fix build -- the offhand comment from yesterday
may have been from the 70d beta build, not sure.
I think I may be uncovering issues because I am hammering the camera
hard. Totality in August will be around 2 minutes and 30 seconds, so that has been what I have been testing. I'm triggering a 14 frame
camera.burst(14), then doing a tight loop of setting a new shutter speed, calling
camera.shoot(false), then at the end of totality, another burst. So in that 150 seconds, I have been (in testing) taking upwards of 250 exposures.
Very much appreciate the ML software.
Thanks for your time.
Brian.