Canon 5D and 350D/Rebel XT driver/library for Windows 7/8/8.1/10 64bit

Last update: 5 January 2021

I used the original Canon library (and in particular the Canon Utilities software) on my old Acer Ferrari PC witth Windows XP for nearly 10 years without any problem, and I was very happy about that. But a couple of years ago I moved to a more modern Windows 7 PC and have also in the meantime acquired a second 350D camera.

This prompted me to find a way to use both camera on the same PC at the same time.
Not having found a suitable solution I decided to write my own, and soon (well, not that soon), this library was born.
Since the kind of photography I normally do is (deep sky) astrophotography, this library has been designed and tested with that kind of use in mind. While other uses of this library are possible, these weren’t as tested as Manual mode.

Software packages

I’ve released two different software packages:

The first one (that can be downloaded here), is for users that just wants to use one or more Canon 350D/Rebel XT or 5D from the PC in WIndows 7/8/8.1/10. It contains only the WinUSB driver (and its .inf file) and my own clone of the Canon Utilities software (called ABUtilties2). No installation is required for the ABUtilties software, but it requires the .NET Framework 4.5 you can download from here if you don’t have it already installed (quite unlikely). For the driver installation see below.

The second one (downloadable here) is for developers who wants to use the Canon 350D/Rebel XT or the 5D in their own program with Windows 7/8/8.1/10. This archive contains the DLL with the C header files, the import library, the programmer’s documentation (in PDF), a command line example program (ABUTestDLL, with C sources, compiled with Open Watcom) and the VB.NET (2013) sources for my clone of the Canon Utilities software.


ABUtilities2 is my clone of the Canon Utilities software that came on a CD with my Canon 350D/Rebel XT in 2005. Only some basic functions are supported: remote shooting, shutter speed/aperture/ISO/white balancing and a few other things. Only pictures taken with the camera (either with remote shooting or with the shutter button on the camera) will be downloaded. You cannot download images from the compact flash. Also not implemented are the WB Shift setting, exposure compensation, the functions to set camera Date/Time and Owner’s name, image rotation and the shooting timer, all functions available in the original Canon software but not in my clone. Images can be downloaded to a directory of your choice and optionally shown with the program associated to the JPG and CR2 extensions (see the “Destination folder” in the “File” menu).
ABUtilities2 replaces ABUtilities distribuited in previous versions of this library. ABUtilities2 gains the shooting timer but loses Windows XP compatibility (because it requires .NET Framework 4.5). You can still use the old ABUtilities by copying it from older libraries if you want.

If you have more than one camera connected to the PC, a camera selection dialog will be shown before showing the main program window. You can also force the software to connect to a specified camera by using the “/sn=<SerialNumber>” command line switch.

A screen shot of the ABUtilities2 program. You can click on the various icons to change the image settings, just like the original Canon Utilities. Grayed out options are not modifiable. The “Timer” button in upper right corner lets you configure the shooting timer.

Note that I developed this software just to test the library and to provide a starting point for other developers who want to use my library from a modern language. It is not intended to be a completed and “production ready” software.


If you find this driver useful and you want to show your appreciation for my work you can help me with a little donation via PayPal


Driver installation

I’m sorry but all the screen shots are in Italian, because that’s what I have. I’ll try in the future to replace them with English versions.

  1. Connect the camera to the PC. Windows will search for the drivers on Windows Update but will not found any suitable driver.
  2. Open the Device Manager (in Control Panel click System and Security. You’ll find it under System). You will see the camera in “Other devices” with an exclamation mark.
  3. Right click on “Canon Digital Camera” and choose “Update Driver Software…”
  4. Select “Browse my computer for driver software”
  5. Select the “Driver” directory from the distribution archive or from some other directory of your choice (here I copied everything to my desktop).
  6. Since my install package is not digitally signed, Windows will display an alert. Continue selecting “Install this driver software anyway”. (The driver binaries are signed, though, since it’s the Microsoft generic USB driver, WinUSB).
  7. You will now find the Canon camera installed as “Canon 350D WinUSB Driver” (or “Canon 5D WinUSB Driver”) under “Imaging devices”. Driver installation is now completed.Inst6

Installation in Windows 8 or Windows 8.1 and 10 is basically the same as the installation in Windows 7, EXCEPT that unsigned packages are not normally allowed to be installed. So on step 6 you will not find the option to continue with the installation of an unsigned driver and installation will be aborted (“A digitally signed driver is required”).
So you have to disable “Driver Signature Verification” to install the custom Canon7.Inf file.

Follow one of these these procedures to disable the “Driver signature enforcement”.

You can also Google for “windows 8 unsigned driver” to find other tutorials.

Once you have this option disabled, you can install the driver as in Windows 7. Note that restarting Windows after having installed this Canon driver will enable this driver signature check again, but the WinUSB/Canon driver you have installed will remain installed.

Driver revision history

  • v1.00: Initial release
  • v1.01: Handled notification for changes in the custom options, added ABCanonGetCustomOption() function
  • v1.02: Added ABC_OPTIONS_HANDLE_THREAD_BUSY option, fixed crash if neither ABCanonSetSaveFilenameW() nor ABCanonSetSaveFilenameA() were ever called, changed return values for the ABC_EVENT_JPG_READY and ABC_EVENT_CR2_READY events. Now these events are more consistent with the return values of all the other events.
  • v2.00: Added Canon 5D support, ABCanonGetCameraType() and ABCanonGetCustomFunction() functions.
  • v2.01: (19th March 2017) WINUSB.DLL is no longer implicitly linked but it is explicitly loaded during ABCanon7 initialization. This allows a third party program to implicitly link ABCanon7.DLL and start execution even if no WINUSB.DLL is installed in the system.
  • v2.02: (17 February 2020) Fixed an issue that could cause excessive CPU usage, added the ABCanonGetPQImageCount() function, added a new download mode and fixed a problem that prevented the library to work with Windows 10. Note that the problem with Windows 10 is NOT related to the USB driver, so you don’t need to update the driver installation, just the application and the ABCANON7.DLL library.
  • v2.03: (5 January 2021) Added a couple of new events (ABC_EVENT_BUSY – with automatic busy polling, ABC_EVENT_ALL_DONE), added few more information to the ABC_EVENT_DOWNLOADING event and moved some notification to a new thread to avoid deadlocks. The ABUtilities sample program has been now replaced by ABUtilities2, losing Windows XP compatibility but gaining hotkeys and a shooting timer.

The future

After having implemented the support for both the 5D and the 350D/Rebel XT, the only remaining camera to support with the old Digic2 processor are the Canon 20D, 30D and 400D, which I may work on in the future.

Final words

This freeware software may be freely used and distributed, but may not be modified without the author’s permission.
These programs are provided as is without any guarantees or warranty.

Although I’ve attempted to find and correct any bugs in these programs, you agree that the use of the software is done at your own discretion and risk and with agreement that you will be solely responsible for any damage to your computer system/camera or loss of data that results from such activities.

I’d like to thank Emmanuele Sordini ( for loaning me his Canon 5D.


Leave a Reply

Your email address will not be published.