DIYPhotobits.Com Camera Control 4.0 – Basic Bracketing

It is here, it is basic, but it works (somewhat) — Bracketing.  Once again I find myself either spending an hour I have available to work on the code, or publishing what I already have working, limited though it may be.

So here we have 4.0 – the Basic Bracketing version.


Expect bugs — that’s why the version is a .0 one!  However it should do you for some basic HDR or timelapse uses.


  • Only works in P, A or S modes as the bracketing is controlled by adjusting the exposure compensation. I’ll do M mode support later.
  • The package has the wrong version number (3.1) on the Start menu icon,but once you open the script itis the correct 4.0
  • Tested on D300 and D40 ok

92 Replies to “DIYPhotobits.Com Camera Control 4.0 – Basic Bracketing”

  1. Marcelo, can you check the Exif on the image files to see if they have different exposure compensation? They should.

  2. Raymond,
    Thanks for your answer. I checked Exif info and they have the same exposure compensation.
    I’m shooting raw with a Nikon D40, using Lightroom 2 running under Vista. ¿Any clue?.

  3. Raymond,
    I’ve been trying a little bit more. I discovered that I can switch Exposure Mode from the program, so I can’t switch from A mode to S or P mode for example. Even though if I switch it from the canera knob, the program doesn’t “know” the change. I have to switch it off and on again and close and open the program to make it “read” the change.
    Another thing is that I can´t set exposure compensation to negative values from the program. I have all the possible values in the list, but when I choose a negative one, it is not set in the camera.
    May be, these could be clues for you in order to know what is going on. Thanks in advance.

  4. Good clues but not sure what is happening; the list of possible values is extracted from the camera so that part at least is working. It does work with my D40. I will think about it more.

    You don’t have to restart the program to get the new settings; just click the “Select Camera” button again to reconnect and it should read the new status of the camera.

  5. Raymond,
    Yes, everything should work as you say but I can´t make it happen under Vista.
    So, I installed your program in a notebook running Windows XP and voilà… It works!.
    I could switch modes from the program, shoot tethered, bracketing, etc;. It’s a pitty I can´t make it work under Vista. If you have a solution or at least a workaround, it will be appreciated. Thxs.

  6. Marcelo, Try the 3.x version.
    I use it with vista, no problem at all. Works like a charm and I tether to LR2

  7. Michael,
    Thanks for your answer. I tried with 3.0 and 3.1 version. Sadly, I had the same results. There must be something wrong with Vista, I suppose. Did you tried 4.0 version under Vista?.

  8. Any chance, Raymond, that a version will be made available for Canon EOS (XTi) cameras?


  9. Gil, have you tried it with a Canon? I think it would work at least for jpg as nothing in the program is Nikon specific except for a few raw things.

  10. I will give it a go, thanks. Would it be a lot of trouble to make it work with Canon RAW as well?

  11. Okay, I just gave it a go, here’s my results (not much, I’m afraid).

    Connected the Canon XTi to the computer, Vista loaded up the necessary drivers automatically. I then ran the script at which point I made a “test” folder (not sure if/when LR2.3 should be started, so started it up and pointed to a new catalog in the “test” folder.
    Was able to SELECT the Canon XTi from the script, at which point the Shutter button on the camera and in the script, did nothing (in the script, it produced an error, on the camera it was no responsive.. no info on the back of the camera and no indicators inside the view finder.. it was like the camera was dead – except for the glowing power light on the top of the camera).

    The error in the script can be repeated, and in all fairness there was a warning saying that the script may not fire the camera from the Shutter Release button in the software, and that I would have to use the one on the camera. Tethered was selected and there was no exposure info coming from the camera to the script (not sure if this occurs AFTER the shot or is a live feed from the camera).

    Script error after the Shutter Release button in the software was activated:

    Line: 157
    Char: 2
    Error: Index out of range
    Code: 0
    URL: file:///C:/Program%20Files/


  12. Gil, thanks so much for testing that. I’m surprised and disappointed it went so badly. The script mostly uses only basic WIA/PTP commands which in theory all cameras support. Can you open the camera via Windows explorer and take a picture and transfer it like that? I’m wondering if Windows can see the camera properly at all.

  13. Okay.. so here’s the follow up.

    I connected my Canon Xti to the laptop, running Vista, and the laptop added the Canon as a Camera/Scanner device in the Control Panel Tool. All Okay so far…

    Then I opened the Canon Xti from the Control Panel Scanner/Camera tool, and it only gave me a properties view of the camera. Nothing special and no ability to take pictures from there.

    I was able to see the camera, from Explorer, as a CF card device (Rebel XTi), and was able to view files on the camera’s CF card.

    In order to take pictures with the Canon EOS XTi, I must load a Canon Utility called EOS Utility (funny enough)… That connected perfectly with the camera and allowed remote shooting and control over the settings like ISO and Aperture, etc.

    I will check Canon’s web site to see if there are any more updated drivers, but the XTi is not a current product anymore, with the XSi being at the bottom of the DSLR scale…

    The only updates I saw were for the DPP, and other included software packages (add-ons). No driver update for Vista.

    Was that any help?

  14. 2nd follow-up…

    I took a closer look at my Canon EOS Utility, and while it “seemed” that it only supported 2 of Canon’s applications, I decided to try something…

    In the application’s registration area, it wanted to know WHERE DPP.EXE was on my hard drive, and gave me a browse button to go find it. While it did not have an “other” application so that I could add more to the tool, I decided to see what would happen if I pointed it to “Lightroom.exe” instead…

    Well… it WORKED!

    The remote triggering of images in EOS Utility popped up Lightroom, and brought up the Import window where I could load them into the application!

    Obviously the EOS utility is triggering the import from CF card function, that’s in Lightroom, but ultimately, this was what I was looking for. And if it wasn’t for spending the time to try and get your script to work, I would have never found out this “hidden” ability of EOS Utility/Lightroom.


    If you ever do get a version that works with Canon EOS cameras, I’d be happy to give it another go…


  15. Raymond,

    I wanted to echo Marcelo’s comments and experience. I have a D40 and when using v4 on either a Vista Home Premium desktop or a Windows 7 RC laptop, I get:

    – everytime I hit Select Camera, I get a warning message about camera may not react to Shutter Release button (though the button does in fact work)
    – I periodically get Javascript error messages
    – the Exposure Mode selector has no affect on the camera, nor does Shutter or Aperature
    – ISO and White Balance does change the camera
    – Exposure Comp works on positive numbers but not negative numbers
    – Battery status works
    – Shutter Release works but Raw/JPEG options don’t
    – Download Immediately and Start Tether work as long as camera was set to JPEG
    – Time lapse works
    – Bracketing does take correct number of shots but makes no change to the exposure comp on the photos (checked the EXIF to validate)

    If I plug the same camera into an XP SP2 laptop, everything in the application works perfectly including bracketing and negative exposure comp values. Noteworthy is that Exposure Mode is never selectable but says Dial and the Sutter and Aperature fields are settable based on setting of the Dial.

    One thing that worked on XP that I haven’t tested on Vista/Windows7RC is the option to change preview size.

    Any chance something with WIA changed since XP? Or possibly a change in Javascript? I am inclined to suppect WIA but the other difference between the operating system is that the XP laptop has IE7 while the Vista and Windows 7 machines have IE8 and Chrome.

    This is a great tool and I’m very excited about it… just need it to work on a non-XP laptop.


  16. I think I’ve uncovered at least a part of the root cause of issues I and others have seen trying to use any version of Camera Control under Vista (or Windows 7).

    In Vista, MS implemented the Windows Portable Device API and then implemented a WPD driver that provides support for Windows Image Acquisition (WIA) API. It appears, based on testing I’ve done, that you get significantly different and reduced functionality with WPD->WIA on Vista vs. WIA on XP.

    Here are the properties reported by WIA under XP when I have my D40 connected:

    Compare that to the properties reported under Vista:

    Under Vista, properties like picture height & width no longer exist, and the values for properties like Exposure Comp are completely different (at least for negative values, which explains why Camera Control can’t set a negative exp comp value when running under Vista).

    Anyone up for learning the WPD API? 🙂

  17. Great detective work Nathan, would love to follow up on this but no time now. Just had our 3rd son born but he has some medical problems and is in hospital. I hope later in the year when he is well and other kids are back in school to return to this project!

  18. to have all 1/2 stops copy this and replace line 214 to 221
    in the set braket juste 20 for num and 1 for stop thas all
    If cbBracket.checked Then ‘ bracketing is on so have to adjust expo comp
    ‘ MsgBox (((int((ShotsToTake-1)/2) + 1) * CInt(tbBracketStops.value)) * 1)
    If abs(ShotsToTake) mod 2 = 1 Then ‘ odd vs even“Exposure Compensation”).Value = arExpCompTable (CurrentExpoCompOffset+(((int((ShotsToTake-1)/2) + 1) * CInt(tbBracketStops.value)) /2))
    Else“Exposure Compensation”).Value = arExpCompTable (CurrentExpoCompOffset-(((int((ShotsToTake-1)/2) + 1) * CInt(tbBracketStops.value)) /2))
    End If
    End If

  19. Thanks, Raymond. Congrats on the new arrival… hope he has a rapid recovery and is home soon.
    In the mean time, I may fiddle with this myself (if I can carve out some time around work and family).


  20. To fix the index out of range at line 57, edit the .hta file, and at line 175 (after the downloadOne function), insert this new sub (thanks to Fredledinque from

    Sub Sleep(MSecs)
    dim objOutputFile

    Set fso = CreateObject(“Scripting.FileSystemObject”)
    If Fso.FileExists(“sleeper.vbs”)=False Then
    Set objOutputFile = fso.CreateTextFile(“sleeper.vbs”, True)
    objOutputFile.Write “wscript.sleep WScript.Arguments(0)”
    End If
    CreateObject(“WScript.Shell”).Run “sleeper.vbs ” & MSecs,1 , True
    End Sub

    Then, insert the following code at line 157:

    sleep 50

    The error will go away and you will get the image preview. Time lapse will also start working.

    Raw will not show in the preview, so use an external viewer as mentioned earlier. Selecting JPG will not override the output of a D90, you need to use Qual to select the JPG image output if that’s what you want to do.

    Working with my D90 on Windows 7 x64. Looking forward to updates, thanks for the script!

  21. First of all, very nice program. I really love it. As I try to do some astrophotography it really helps me as I can make series of a couple of hundred photo’s.

    Still, got a question. Isn’t it possible to program shutter times above 30 seconds? It would be nice if I could say that it should be f.e. 45s or even a minute (or even longer 😉 ).


  22. Thanks! It works, kind of, with my D60 running with Vista. The software can fire the camera’s shutter, but no image gets downloaded from camera. When I fire the camera directly or using the Nikon remote, the images get downloaded! I have not been able to control the exposure settings via your software either. BUT just having the ability to shoot tethered is pretty cool.

  23. Update…I can in fact control the camera’s exposure from the software, but I have to follow a specific sequence: with camera disconnected from laptop, I set M or P or A or S modes. Then connect camera to laptop and turn on. Then I start software, and it sees the camera in that mode. I can then control settings. Still cannot use software to fire shutter. To change camera from say M to A modes, I have to disconnect camera and shutdown software and start from beginning again.

  24. @Jean-Pierre Lorge

    Thanks for looking at that, I really must package a new version with these types of corrections.

    @Nate Eaton
    Thanks, he is well now and doing the normal baby things (e.g. keeping us awake at night at occupying all our time).

    @Troy Simpson
    Nice piece of troubleshooting there. So it seems that the camera is taking too long to inc the item count after the release shutter method is called. Probably depends on the exact PC and camera specifications. I’ll think of a way of coding to allow that without unnecessarily delaying; as some set ups are able to respond fast.

    @Robin Geys,
    Sorry but no. Exposures more than 30 seconds are not possible with the scripting interface I have available (PTP) and I don’t have the skills to learn the SDK at the moment.

    @Ed in Cleveland
    I would have though just re-selecting the camera would work, not shutting down and disconnecting. But Vista is different from what I’m used to so I’m not sure. Someone else posted some of the differences between WIA in Vista and XP and when I have a chance I’d like to use that info to make a more vista-friendly verison of the script. Vista version of WIA is still more limited and would restrict the possibilities for the script, but at least it could not crash or do unexpected things.

  25. Anyone,

    Has anyone had success with Vista 64 bit? I’m using a D80 and all the functions work fine except for the actual capture of the image to the PC. I get a script error when the shutter is pressed (manually or the via the programs control button). I have Bridge open on the watched folder but no images are downloaded. I’ve tried version 4.0 and 3.1. Very frustrating to be so close!

  26. any way to use this script with a firewire? I have a sony cybershot that doesn’t seem to work at all with the usb and a panasonic that also doesn’t work with the usb, but it has a firewire too. any thoughts

  27. Type of connection cable shouldn’t be the problem, it is whether it is recognised as a camera by Windows that is what matters.

  28. Just got a Nikkor Macro lens and set up a test studio area for taking 1:1 shots of various items. Used this software to see the shots. I send all photos to a folder called “tethered shots” and use FastStone Image Viewer to look at the files as they load from the camera. Shooting in Aperture priorty mode, controlling aperture from the software just fine. Using Nikon wireless shutter release since the software will fire the Nikon 60 shutter but then doesn’t send the file. No biggie. I cannot adjust exposure +/- with the software either. But doing macro work tethered is really nice. Again, thanks for the software.

  29. Ed, glad it’s helping you. But you said it won’t download if you fire from the software? Do you have the “Start Tether” button depressed when you press the “Shutter Release” button? Maybe it’s a timing issue if you do. Please check out the new version 4.1 which improves on this part (slightly). Exposure comp not working means you are using Vista right? In Vista they changed the way that works and I don’t have Vista to try myself so can’t fix it.

  30. I have the “Start Tether” button depressed for sure, since that is required when I use the Nikon wireless remote as well. Just doesn’t send the photo to the software. But as I said, the software allows me to control the aperture just fine and using the external viewer FastStone to monitor the folder allows me to zoom in on the image, etc. Yes I’m running Vista. I’ll try your latest 4.1 version next chance that I get. But it’s quite usable for me as it is. Thanks again.

  31. I have downloaded this and I seem to be doing something wrong. When I hook my D 300 to laptop and turn it on what am I supposed to do next. n I press the shutter and then where am I supposed to find the file? I’m new to all of this so is there some place I can go to to get complete instructions as to how to use this program. Thanks.

  32. I watched a video podcast about how to use Adobe’s Lightroom 2 to shoot tethered and that works just great with your software since LR2 can watch any folder for photo import. The podcast is free on iTunes for those of you that have an iPod.

Leave a Reply

Your email address will not be published. Required fields are marked *