Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.


An openFrameworks addon for interfacing with Canon DSLR cameras.



  • Photo taking
    • Blocking or Async (using C++11 std::future)
    • 8bit and 16bit
  • Live view capture
  • ISO / Aperture / Shutter speed settings (+ ofParameter support)
  • Lens information (+ events when lens is changed)
  • Stricter threading model
    • Ability to call functions in different threads 'remotely' without instruction queues.
    • std::future for async photo capture
    • Use it directly with your own threads, or use the Simple class to manage threads for you
  • Backwards compatability with ofxEdsdk::Camera



This addon is tested with:


Commit #1b28a71

IDE / Platform EDSDK v. Camera Machine Success
VS2019 13.12.31 EOS5DMkiii x86, x64 YES
VS2017 13.12.10 EOS7D x86, x64 YES
VS2017 13.12.10 EOS750D x86, x64 YES
VS2017 13.12.10 EOSM50 x86, x64 YES
VS2015 3.5.0 EOS100D x86, x64 YES
VS2015 3.5.0 EOS550D x86, x64 YES
XCode 3.5.0 EOS100D x86, x64 YES
XCode 3.5.0 EOS550D x86, x64 YES
XCode 3.9.0 EOS1DX x86, x64 YES

Note :

  1. More recent version of ofxCanon will break compatability with older versions of EDSDSK
  2. If you want to use earlier versions of EDSDK, then you will want to roll back to earlier versions of ofxCanon also (since there are breaking changes in the EDSDK API that we have to keep up to date with). I suggest that you check through the commit history back in time to the point where the version of EDSDK that you want to use is the top of the list (the same goes for earlier version of oF).


  1. Download the necessary libs from Canon (check the libs/context_??.txt file for your platform to see what files you need where)


  1. Use the Project Generator to add ofxCanon to a new or existing project
  2. Set your macOS Deployment target to be 10.8 or later

Optional : For 32-bit builds you can add the DPP.framework to your project if you want to use the EDSDK (rather than FreeImage) to develop RAW images and recover metadata from images. Note : if you don't definitely know you that need this then don't worry about it.

Visual Studio

Check instructions from ofxAddonLib or use the project generator.

ofxEdsdk compatibility

This addon began as a rewrite of the fantastic ofxEdsdk by Kyle McDonald + adding some features (although some may be missing).

Compatability with ofxEdsdk is provided by the ofxCanon::Simple class which has the same interface as ofxEdsdk::Camera (i.e. all the method names are the same and it should act as a drop-in replacement if you need it).

Some users of ofxEdsdk (myself included) have experienced issues with ofxEdsdk, and this addon is intended as a way to circumvent those issues. However, if ofxEdsdk is working well for you, then great! I'd suggest to stick with it and come back if you encounter an issue :).


openFrameworks addon for control and capture from Canon DSLR's via the EDSDK






No packages published