When you need to control a Canon EOS camera remotely, there are numerous options available – from tethered shooting using EOS Utility on Windows and Mac, to working wirelessly with Canon's Camera Connect smartphone app. But what if you need a more advanced or robust solution? What is the best option if you have to generate a high volume of imagery day in, day out, or you want to integrate Canon cameras into an automated workflow? Enter Canon's SDK (Software Development Kit), which enables software developers and computer programmers to create customised digital solutions for controlling Canon cameras.
There are essentially two parts to the Canon SDK: EDSDK (EOS Digital SDK) and CCAPI (Camera Control API). Both offer the same core functionalities – remote shooting, image transfer, camera setting and Live View monitor – but the EDSDK requires a wired connection and the CCAPI offers wireless camera control.
"They're both ways of interacting with the hardware via software, and the gateway to controlling a camera remotely," says John Maurice, European Product Marketing Manager at Canon Europe. "The reason you come to the EDSDK or the CCAPI is that you have a problem that you need to solve by remote camera control. The ability to do this and integrate it with software has benefits for organisations across industries and across use cases.
Understanding Canon's EOS Digital SDK
"For example, if you're an e-commerce company and you need to quickly take lots of images of lots of products, then you need a repeatable, reliable process. You need the camera to perform day after day, and you need the software to accurately control the camera and acquire each image so that it goes to your editing workflow.
"Photo booths for corporate events are another example of where you might choose an automated photography solution," John continues. "Maybe you want to take pictures of the attendees in order to create souvenirs of the event, or to add their pictures to a database for ID cards. So you might have a software application that is controlling that."
Do you own Canon kit?
Canon's SDK can help when industrial problems need to be solved through imaging, too. "You might want to carry out an inspection process to ensure that your equipment is working properly or some facilities are operating okay, and you need to do that remotely. Or you might need to use 3D photogrammetry to physically document an object from multiple angles in order to create a 3D model.
"So, users can be very big companies or small companies, but what links them is that they've got some sort of imaging need that interacts between the camera control and their software process."
Canon EOS Digital SDK vs CCAPI
Launched in September 2006, the EDSDK is an established solution that requires the camera to be tethered via USB to a Windows or Mac computer. The EDSDK uses PTP to communicate between devices. "It's an older protocol," says John, "but one that's tried and tested, with solid reliability.
"There are a wide range of Canon cameras that you get to choose from when you use the EDSDK, and it's across the range as well, from the EOS-1D X Mark III down to the EOS 2000D. Despite the name, the EOS Digital SDK also supports selected PowerShot cameras, as well as EOS DSLR and mirrorless bodies.
"PowerShot models can provide a zoom function that can be controlled through the SDK, which is useful if you need to change the framing for your application," he continues. "The PowerShot SX70 HS, with its 65x optical zoom, can be a practical option for surveillance or monitoring away from a location, for example."
Canon's CCAPI is a more recent addition to its SDK family, released in 2019. "It's essentially a mobile version of the SDK," John explains. "If a developer wants to create a mobile app that will work on platforms such as Android and iOS, the CCAPI makes that possible. It uses a web-based HTTP protocol to communicate over Wi-Fi, and it will run on Android, iOS, Linux, Windows, Mac and so on."
Compared with the EDSDK, the CCAPI currently supports fewer camera models and the image transfer speeds aren't as fast. Like the EDSDK, it enables the control of multiple cameras at the same time, but does so without cabling, helping keep studios less congested and reducing potential trip hazards.
The five greatest challenges in fashion product photography – and how to overcome them
Using Canon's SDK in automated photo studio workflows
SpinMe, a digital workflow solutions company headquartered in the UK, is a long-time user of the Canon SDK. It offers both the EDSDK and CCAPI as solutions to clients of its SpinMe Studio workflow software, "but predominantly it's the former," says CEO David Brint, "because most clients want to use one camera at a time.
"Thanks to the interface, the reliability and the way that it just plugs straight into our software so that clients can control the camera settings directly, it just makes everything seamless."
SpinMe's R&D Director Scot Warner says that the versatility offered by the SDK is important. "We've used several different aspects of it," he explains. "For example, we bring in most of our imagery through tethering. We also make use of the Live View display. There's a feature where you can take reference images that are buried into the software database and you can superimpose those on top of your Live View image. It comes in very handy when uniformity between images is paramount."
Scot explains that some clients also want to unlock the autofocus capabilities for remote capture. "There's a click-focus feature in the SDK that we make use of. It's good for people who are using computers because they don't want to be moving back to the camera all the time."
Many of SpinMe's clients need to shoot imagery for 360 spins, a process that can be automated with the help of SpinMe's software and the Canon SDK. "We do integration with robotics providers," says Scot, "where there will be a number of images that you set into the software – 36, 48, or whatever it may be for a spin – and then that sequence of photos will be triggered one after the other without the user having to do multiple button clicks.
"Having said that, there are a lot of clients who work with just single images rather than 360 images, so they will either trigger those via the camera itself or while they're at their computer. There's a lot of variation between different retailers as to how they handle imagery, so we just try to fit it into that and to give them the workflow that they're after."
Recently, SpinMe has been testing out the potential for using the CCAPI in busy Wi-Fi environments, Scot reveals. "The last test we did with the Canon EOS R5 proved that it can be a viable option for shooting and transferring stills under these conditions. With 360 spins, I think it could be a little bit more of a challenge, purely because of the number of images that are coming in, the time lag that still happens with Wi-Fi and bandwidth constraints – even in the best circumstances, it's not necessarily going to be enough for 30 camera rigs running at the same time. But it is getting much faster, and in the long run I think it will be more widespread."