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.
ABUtilties2
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.
Donate
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.
- Connect the camera to the PC. Windows will search for the drivers on Windows Update but will not found any suitable driver.
- 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.
- Right click on “Canon Digital Camera” and choose “Update Driver Software…”
- Select “Browse my computer for driver software”
- Select the “Driver” directory from the distribution archive or from some other directory of your choice (here I copied everything to my desktop).
- 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).
- 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.
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”.
- http://www.makeuseof.com/tag/how-can-i-install-hardware-with-unsigned-drivers-in-windows-8/
- http://www.howtogeek.com/167723/how-to-disable-driver-signature-verification-on-64-bit-windows-8.1-so-that-you-can-install-unsigned-drivers/
- http://www.craftedge.com/tutorials/driver_install_windows8/driver_install_win8.html
- https://learn.sparkfun.com/tutorials/disabling-driver-signature-on-windows-8
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 (http://www.bloomingstars.com) for loaning me his Canon 5D.
33 commenti
Vai al modulo dei commenti
Ciao, Grazie per il lavoro, ma sfrotunatamente non funziona per me. Ho installaot il driver ma ABUtility dice solomante “busy” e non cambia. Anche, Canon Utility non vede la camera in PC Connection. Hai altre instruzioni che forse aiutano?
Autore
Non mi viene in mente niente. Però se anche il sw originale non vede la camera, potrebbe essere un problema della camera, magari sottoforma di qualche impostazione. Ah, e tieni presente che la camera è sempre BUSY se hai fuori il menù.
Hello! I tried to use this to somehow tether my Canon 350d to my Windows 10 x64 pc but when the camera is in “PC Connection” mode, it doesn’t detect it. When it’s in “Print/PTP” it does but I cant use the ABUtilities because the camera is “buSY”. How can I fix this?
Autore
Hi!
I’ve never tested the driver on a Windows 10 PC, but it should work fine. The camera must be in “PC Connection mode”. In “Print/PTP” it behaves differently and will not be detected by my code.
Did you install the driver as per the instructions? Can you send me an email with a “device manager” screenshot of your PC with the camera connected? It should be displayed under “Imaging devices”. I want to understand if the problem is on the driver side or it is in the application program.
Thanks!
Angelo
Have you looked into this issue since the previous comments. I’m having the same issues and followed your instructions to install the driver. I too am using windows 10
Autore
Not really.
I’d like to have a “device manager” screenshot of your PC when the camera is connected in PC mode (and powered up) to understand if the problem is from the driver or the application code, and start from there.
Other useful informations would be the exact camera model (I’ve tried only with european Canon 350D) and camera firmware revision.
Angelo
I too get a “busy error” using a 350D under windows 10
Below I’ve included the error dump from your ABUtilities program, let me know if you need more information, Thanks (sorry for the English) -Chris
——————————————————————————————————————————————————————————————-
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
at ABUtilities.Main.ModifiableItems_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4075.0 built by: NET48REL1LAST
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
—————————————-
ABUtilities
Assembly Version: 1.0.0.0
Win32 Version: 2.0.0.0
CodeBase: file:///C:/Users/kristi/Documents/Chris_Folders/Astro_Science/ABUtility/ABUtility/ABUtilities.exe
—————————————-
Microsoft.VisualBasic
Assembly Version: 10.0.0.0
Win32 Version: 14.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
—————————————-
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4042.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
—————————————-
System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4001.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
—————————————-
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
—————————————-
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
—————————————-
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4110.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
—————————————-
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
—————————————-
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
—————————————-
System.Runtime.Remoting
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3752.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
—————————————-
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
I’m trying to install your drivers and I keep on getting the message that Windows has determined that driver software for your device is up to date
MTP USB device
Any way around this ?
thanks
Autore
Yes. The camera is recognised as an MTP device if the “Communication” entry in the (“yellow”) camera menu is set to “Print/PTP”. Configure it as “PC Connection” and you will be able to install the camera as a WinUsb device and use my software.
Ciao
Angelo
Thanks, I got the drivers to install
Thank you! Works. I tried to make a small donation. The Donate button brought me to PayPal, but there did not seem to be a way to pay you. Did you complete the PayPal.Me link?
Autore
No, I did not. I wasn’t aware of the change in PayPal donate policy. Now I’ve updated the link! Thanks for reporting this problem!
Thank you, works great on Windows 10 Home 64-bit.
My thoughs, didn’t test yet if they exists, but please add keyboard control for optios.. Like aperture plus aperture minus, speed plus, speed minus etc?
Great software on Windows 10 for the 350D. I have been looking for ages for software to control the camera from Windows 10 because the camera has (almost) become obolete and was about to be thrown in the bin.
I would like to test the 350D with my telescope and Sharpcap software. Sharpcap (and other software) has the ability to use Camera folder input instead of communicating directly with the camera. As long as the camera can store images in the folder, Sharpcap can be used to stack the images and you can apply a display strecth on the image to improve what you can see in realtime.
A nice feature for ABUtilities would be an option to repeat capturing without having to click on the Camera button every time to take single images. So, some sort of loop (set with either a counter – “For i = 1 to CounterValue” – or an indefinite loop that can be canceled somehow). Unfortunately I don’t know how to make the changes in the software myself but maybe somebody that knows how will do it one day.
Much appreciated so far. I will keep you posted once I have tested it on my telescope and with Shapcap’s stacking.
Autore
I may add it in the future. For the next release of my library I’ve planned a rewrite of the ABUtilties program to use the new features I’ll add to the library, so I may add this one too.
Unfortunately, I don’t have a timeframe for this, since I’m pretty busy right now.
Ciao
Angelo
The 350D used to be my wife’s camera and it is my first time exploring a DSLR camera. After playing a bit with the 350D I have realised that there is a burst (or continuous shooting) mode built into the camera and when that is set, you can capture a burst of images by holding in the shutter.
The software actually displays the camera setting correctly as the DRIVE MODE (of the camera) and as the Me.PBDriveMode.Image. It also displays the available shots of the camera as Camera.RemainingShots (AvS). However, when set in this mode (on the camera) and the camera button is clicked on ABUtilities, only one shot is activated and not a burst of shots. Anything else that I must set to activation a burst of images from the software?
Alternatively: is there a parameter that must be sent with the Camera.Shoot() function of the software to activate the continuous shooting?
Best regards
Bert
Autore
Well… I don’t think that continuous shooting can be activated using USB shooting. The original EOS utility software behaves exactly like mine, in the sense that triggering a shot while in continuous shooting mode, a single shot is done. So I think that the limitation comes from the camera firmware and not from the PC software.
You may, however, trigger the shots with a remote trigger connected to the camera, though I’m pretty sure that as long as the image has to be transferred to the PC via USB, the continuous shooting will not be done. It should work, obviously, if you configure the camera to save the image to the CF only (and the remote trigger).
Hope this helps
Ciao
Angelo
Hi Angelo
Thanks for the reply.
I am by no means a VB or C programmer but have done some programming of database systems about 20 years ago (but never with event driven programming).
I have played around with your source code and with minimal changes managed to trigger continuous mode from my Win 10 PC (when the camera setting is in Continuous mode). If it is running in continuous mode, each image is downloaded to the PC’s capture folder before the next image is taken. It only triggers the next shot when the file is saved on the PC (so there may be a slight delay because of this). I’ve added a new button to stop the continuous shooting after which the user could for instance change any of the camera parameters and when changed the continuos process can be started again (without exiting the program) by clicking on the camera button. No remote trigger is required to make it work and also not necessary to save it on the CF card.
I know a good VB programmer would be able to do what I have done much better but for my purpose and needs it is exactly what I wanted from the software and camera.
If you want to have a look at the changes, please send me an email or dropbox detail and then I will forward it to you.
Best regards
Bert Kruger
Burt
This response is to your posting in October 2020. The description you provided of your modification to Angelo’s software sounds like it may be what I am looking for my astrophotography work. Are you able to use it Bulb mode where exposures may be over 5 minutes (300 seconds) long? In any event, if it is still available, I would like to try your modification out. Let me know how to best contact you.
Regards, Martin
Hi what a life saver just got an old canon 350 again having sold mine five years ago and wanted to get another one for astrophotography as I’m starting up again but then found out it’s got no 64bit driver then found this page. I’m still trying to get win 1o to let me load the driver after putting it into test mode but no luck so far but I’m sure with a bit more trying I can sort that out and try out your version of canons software. Thought my camera was doomed and I loved my 350d did all my imaging with it after I modded it in 2010 and ran it under xp my how things have changed. Thank you so much for this will let you know when I get it up and running on my win 10 laptop http://www.astrocasto.blogspot.com
Hi again, I managed to disable windows 10 from stopping me downloading the driver and once that was done had your utility up and running connected my 350d but no joy, so I replaced the cable and put in a new cf card hooray it works and I can now take a photo from my laptop with your utility. Its functions are limited but when you cant get backyard eos to connect to your 350d because your running a 64bit system then this little gem lets you take a shot and test the focus on the nice big screen. If you could do what canon refuses to do and get it working on backyard eos and other software packages I’m sure you would have many 350d owners jumping for joy. But for now, abutilitys is awesome thank you.
Autore
Happy that you made your camera work!
And you could also ask to the developers of your favorite softwares to use my DLL in their software. It’s free and the documentation is available in the developer version of the archive.
Thanks!
Cheers I did write to cannon but they just answered with the standard polite but not helpful reply as I expected them to but I have heard that the 350d works ok with a stellar mate so on a raspberry pi so might try that later on when I have upgraded my mount to go to.
Cannons reply
Date: 04/11/2020
Ticket: 1-89315825190
Dear Mr. Casto,
Thank you for your request and for contacting Canon.
We would like to inform you that we have never produced any drivers for the EOS 350D for 64-bit or 32-bit operating systems. That is the same for all of our cameras as there are no drivers needed for the camera to be detected by a computer.
Yours sincerely,
N. Bantras
Canon Services & Support
Hello, congratulation for your software. I had tried to put “bulb mode” in my Canon 350D but it´s not operative. I put “allow bulb seletion” in your software but the shoter button turn off. Thank you for your helping.
Best regart
Javi Perez
Autore
Thanks!
The problem is that “bulb mode” is not operable via USB. That’s a limitation of the camera firmware, not of my software.
You can still change all camera settings and any picture taken will be downloaded via USB, but you have to trigger the shot from the camera button or using an external trigger, via the 2.5mm remote shooting jack.
Ciao
Angelo
Thanks!
I have a long exposition cable for the cámara but the software no reconized it, i connected via the 2.5mm remote shooting jack.
Best regart
Javi
Autore
Hi!
Unfortunately, my software only supports the camera, not any long exposure cable.
You can anyway use the software that came with your long exposure cable to trigger the shot, which will then be downloaded by my software if it’s running.
Ciao
Angelo
Angelo
Thanks for this answer. I have your software running on a Win10 64-bit laptop. All is running great, up to 30 second exposures. If I understand correctly, your software (along with Canon firmware) will work for exposures up to 30 seconds duration. Longer, Bulb exposures require an external trigger source. Would it be possible to automate multiple exposures (e.g. 100+) by pairing and synchronizing an external electronic trigger with your software? It seems possible, but I may be missing some subtleties. Thanks for developing this, it is a lifesaver for a great many of us!
Regards, Martin
Autore
It is perfectly possible. You can trigger the exposure with an external device and let my software just download the images to the PC.
Just to be clear, my software will download any image taken, regardless of what triggered the exposure.
Ciao
Angelo
Thank you so much for this driver!!!!!!. Finaly got it to work with N.I.N.A and the file mode camera on my 350D.
Ciao Angelo.
Grazie per il vostro ottimo software. La mia fedele Canon Rebel 350d è tornata ed è fantastica.
Tutto funziona perfettamente. Per fare una donazione, il link al sito va ancora bene? E se riuscite a stare al passo con gli aggiornamenti di Windows e a continuare a sviluppare il vostro software, sarebbe davvero fantastico. Ad esempio, la creazione di un plugin per N.I.N.A. sarebbe ottima e apprezzata da molti asrofotografi e vi farebbe una bella pubblicità.
Grazie mille.
Stephane Louis.
Hello Angelo, ABCanonutility can’t handle the BULB mode is grey while all the other functions and modes are remote controlled from mom PC to the telescope microPC. I don’t understand why? can you explain? are mirror lift and bulb mode manageable with the software? The telescope microPC that manages the CANON350d is running win10 and everything works fine, except for buld mode and mirror lift, is this possible? Thank you for your help.
Stephane L.
Autore
Hi Stephane,
when either BULB or Mirror Lock are active it’s not possible to trigger the shot from an USB command. It’s a CANON limitation, there’s nothing I can do about it.
But if you use the remote trigger input to take the shot, the image can be downloaded to the PC via the USB interface.
Hope this helps
Ciao
Angelo