Understanding Canon's EOS Digital SDK

Discover how the remote shooting possibilities of EOS and PowerShot cameras can be unlocked using Canon's innovative Software Development Kit.
In a studio, a Canon EOS camera on a tripod faces a glass table with a single red trainer on it. A man is viewing the image of the shoe in software on his monitor.

Canon's Software Development Kit unlocks a range of remote control features for Canon EOS and PowerShot cameras, such as the ability to change camera settings, take pictures and record videos, transfer and delete files from the memory card and (on compatible PowerShot cameras) operate the zoom.

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.

"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?

Do you own Canon kit?

Register your kit to access free expert advice, equipment servicing, inspirational events and exclusive special offers with Canon Professional Services.

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."

In a studio, a man adjusts a studio light pointing at a handbag while a colleague seated at a desk views the image of the handbag in software on a monitor.
A view of SpinMe's custom software, showing the extensive camera control capabilities.

Canon's EDSDK makes it possible to control an extensive range of camera functions from within your own software. To access the Canon SDK download, register your interest via the Canon Developer Programme, and once you are approved you will be able to download the application library files. Technical support for the Canon SDK is available in countries in the EMEA region, and there's also a forum where developers can discuss questions with each other.

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.

A model in sunglasses and a blue coat being photographed in a StyleShoots photography machine.

The five greatest challenges in fashion product photography – and how to overcome them

The images need to work harder, and workflows need to get smarter. Hear from the experts how fashion product photography is changing, and how the Canon SDK can help.
A man in a photography studio adjusts a Canon EOS camera pointing at a red trainer on a glass table in the foreground.

Once your hardware is set up, shooting can be controlled through software. Within the Canon SDK package, users get a live function library which they can call into their main application. There are also example programs demonstrating how to construct a procedure to carry out the camera control. The kit works with long-established programming languages, including C, C++, C#, Objective-C and Swift.

A man adjusts a Canon EOS camera on a tripod in a photography studio, with an external power supply connected and a tethering cable running from its USB port.

Canon's EDSDK (EOS Digital SDK) requires a physically tethered camera (like this one, which also has an external power supply connected), while the CCAPI (Camera Control API) works wirelessly over Wi-Fi.

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."

Two colleagues in a photography studio, one seated, one standing, look at an image of a long-sleeved blue top on the computer screen in front of them.

Approximately 95% of SpinMe's clients take advantage of Canon EOS cameras and the SDK, and the company says the software is "intuitive" to work with.

A man adjusts a studio light shining on a handbag on a mechanised display stand.

Setting up and lighting a studio shoot still takes some work, but SpinMe has worked with robotics providers to automate the capture of images for 360 spins, a process made possible with the help of the Canon SDK.

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."

Marcus Hawkins

Related Articles

3D photogrammetry: turning photos into 3D models

Find out how arrays of Canon EOS cameras are being used to create lifelike 3D models for video games, movies, manufacturing and art.

Delivering perfect pitches with 4K projectors

How three Canon XEED 4K600STZ projectors have revolutionised the sales approach at a German video technology provider.

Designing the latest Canon tech

Discover the design concepts and tech behind some of the latest Canon kit, with insider insights from members of Canon's design teams.

The best kit for product photography

An indispensable guide to the best Canon EOS cameras and lenses for product photography – whether you're shooting macro, lifestyle or large volumes of fashion shots.

Get the newsletter

Click here to get inspiring stories and exciting news from Canon Europe Pro