I'm working on a program in Windows 10 using the Canon EDSDK (EOS DSLR Software Development Kit) with the goal of controlling fairly complex sequencing for two Canon EOS R cameras. I want each of them to take single shots at regular intervals during the partial phase (likely every 10 seconds), then manually remove filters and automatically switch the cameras to high-speed bracketed exposures for bracketed bursts at (probably also the same) intervals during totality, then manually replace filters and automatically switch cameras back to single shot after totality until the end of the eclipse.
So far I've successfully computer controlled the Shooting Mode selection (this is important for my plan, but only some of their cameras allow this - the R does, and it looks like the R5 does, too. See below), shutter (Tv), ISO, lens aperture (Av), and duration of time the shutter is fully (or partially) pressed. Exposure compensation value can be read but not set remotely (also see below). [Edit: this was not correct; exposure compensation can be read and set in modes where it is allowed (but not Manual mode, which I will be using for the eclipse, so it really doesn't matter).] I've just begun to work on the automatic sequencing portion of the project. I have not messed with Live Mode viewing or downloading the images as they are acquired - I intend to save images to the SD card and monitor using a small external 12V HDMI monitor to simplify things. This may change depending on how other facets of the project go.
I have not found a way to directly control, or even read, exposure bracketing range or number of exposures from the computer using documented SDK functions, although bracket step size can apparently* be read remotely. A workaround for the inability to change the bracketing settings that I have devised is to pre-program the desired bracketing parameters - Manual shooting mode, HS Burst shutter mode, desired ISO, desired center-of-range exposure time, step size (up to 3 EV per step in multiples of 1/2 or 1/3 EV, giving as much as ±6 EV total range) and number of exposures in the sequence (2, 3, 5, or 7) into one of the "Custom" modes C1, C2, or C3, then select among M, C1, C2, and C3 as needed during the sequence. I am intending on using Manual (M) mode for the partial phases and one of the C modes for the bracketed sequences (or possibly more than one if I have separate brackets for Baily's Beads /diamond ring, and totality - we'll see). This is why the ability to change mode remotely is important.
I have found the EDSDK documentation to be pretty good for the camera-related functions once I got used to its organization and how the information is presented. One place where it could be vastly improved is where they give a very cursory discussion about how to use it from multiple threads in the same Windows C++ program. What I've tried so far (not much) based on their very brief treatment of the subject doesn't work. At all. I'll need to be able to do this to adequately control more than one camera at the same time, but may have to fall back on something like running two instances of the program on the same computer - if that's possible - or controlling each camera from different computers if necessary. Don't know yet.
One important matter I have not seen discussed is camera power. I discovered while practicing for the annular eclipse last October that the internal battery was barely adequate for a cadence one exposure per minute for the duration of the eclipse (about three hours). Because of this it was necessary to change to a fresh, fully-charged battery right before the beginning of the eclipse, then watching the charge indicator like a hawk as it progressed. I also practiced swapping batteries during the dead time between shots, but doing so meant also having to restore some settings on the control program (Digi Cam Control) before the next shot, but fortunately I didn't need to do that.
My total eclipse plans will involve many, many more exposures than I took for the annular eclipse, so expecting a single camera battery to be sufficient, and changing batteries in the few seconds between exposures are both clearly non-starters. To avoid the problem, I will use a high-capacity external battery Onsite Relay C coupler bundle with the correct "coupler" (battery adapter) for each camera. You'll also need a battery (and maybe charger) if you don't already have something suitable. The Relay C has input power via two USB C plugs and allows the external battery to be powered by more than one source, so a battery can be hot-swapped if needed - I don't think their Relay A system (USB A input) can do this. I'll be exercising these in the upcoming weeks to see how well they perform in realistic scenarios. Other power options, batteries, chargers, and accessories from Tether Tools are available. Not cheap, but how much of this stuff is?
* This is not explicitly documented, but reading exposure compensation when in Manual mode returns the bracket step size, at least for the R. Compensation is not a thing in M and always returns 0 if exposure bracketing is not active.
Edited by SkipW, 26 January 2024 - 12:19 AM.