Free Tethered Shooting Script for Nikon

Update: This version is now obsolete,

download latest from here .

Update: The With Bridge version provides almost instant image viewing in Adobe Bridge without any keypresses.  If you use Bridge instead of Adobe Lightroom then download that version.  I’ve also made a video to show how to use this script.

If you’ve been keeping up with the blogs of various big photography bloggers out there you’ll certainly have been seeing quite a bit about tethered shooting recently. Not that it is a revolution or anything, but it certainly is a help to be able to see your images immediately on a big screen — and that doesn’t just go for those with failing eye-sight but basically the images you see on the LCD at the back of your camera are only the jpg preview, not the RAW (should you be shooting raw).

Even if you are shooting jpg just having to view them on such a tiny screen really makes it hard to tell if they are sharp or perhaps shaded as you are hoping. Sucking them right into your PC seems just so logical.

If you are a Canon shooter then no issue – the software comes with the camera (so I’m told).

If you are a Nikon shooter then it gets a little more difficult. If you are a Mac user you could use Aperture, but for Windows you seem to be stuck with Nikon Camera Control Pro. That’s a $160 or so software which does a lot more than just tethered shooting, but is probably overkill if like me you are a hobbiest just messing around.

So in true geeky DIY mode I thought it can’t be that hard to write a script that sucks pictures out of a USB connected camera and saves them onto the PC. And after a little poking around I find that actually it’s true, it isn’t that hard.

The thing that makes it practical is that most of what you need is built into Windows, another chunk comes as a standard optional microsoft download, such that the glue you need to pull it all together is just a few lines of code.

Part 1 is Windows Image Acquisition (WIA) – that’s built in

Part 2 is WIA Automation Layer

– a free download from Microsoft for Windows XP SP2 or higher

Part 3 is a script to tie it all together – which I present here

DOWNLOAD

This is now obsolete, use instead the free DIYPhotobits.com Camera Control 4.0

application.

Requirements:

  • Windows XP SP2 or higher
  • A Nikon DSLR (D40, D60, D200 and D300 tested ok)
  • USB cable

Installation:

Well nothing really, just unzip it and put it in a folder anywhere — I suggest c:\program files\tethered but anywhere would do.

Usage:

  1. Empty your camera card — that’s optional but a good start for reasons that will be apparent later
  2. Plug your camera in via USB — you should make sure USB in your menus is set to PTP
  3. If your PC pops up one of those windows wanting to download stuff, just cancle it
  4. Run “tethered.cmd” by double clicking on it
  5. Open your image viewer of choice – I use Bridge – and set it to look in the c:\tethered folder.  If you are using Lightroom then you’d want to set that to be a watched folder.
  6. You are now ready to start shooting.  Anything you shoot will turn into a file in a folder called c:\tethered within a second of you completing the exposure
  7. When you are done just close the Tethered window.

Notes:

  • All your images are also stored on your memory card so you have a backup without using a D3 and two cards
  • If you shoot more than 1000 images in one session it is liable to give an error as the filenames wrap around.  That’s why it is good to empty your memory card first so that you are starting at file number 000.
  • I’ve tested this with a Nikon D40 and it works fine, in theory it should work with any WIA compatible camera but the other Point and Shoot ones I have refuse to take pictures while the USB cable is connected so I can’t test them.  I’d be very pleased to hear from those of you who have tried it on other cameras and if it worked or not.
  • If you want the images stored somewhere other than c:\tethered then edit the .wsf file to change the location

166 Replies to “Free Tethered Shooting Script for Nikon”


  1. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    EdSan says:

    Hi Raymond. Thanks.
    I have a D60, Vista Premium OS laptop and it works.
    It even recognizes the NEF files too. I view the Nef files via Capture NX 2.

    I am really happy. God Bless.


  2. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    raymond says:

    @ Charles, glad it worked for you. Any recommendation is always appreciated, how about a blog post? 😉 I’m certainly looking at what more things can be done via this scripting interface and suspect I can do quite a lot – however I think I’ll stick to being a “script” rather than an application. My serious programming days are long gone!

    @Kev, thanks for the confirmation. Did you get Picasa to automatically advance to the most recent frame as it is shot?

    @Jim, I suspect bluetooth would be too slow – and doubt the camera could power an adaptor — but you never know! I need to turn that destination folder into a configurable item for those not interested in editing the code. Thanks for the reminder.

    @EdSan, that’s great, thanks for the feedback.


  3. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    ottzen says:

    Hey!
    This looks like an awesome alternative to Nikon’s CC, but unfortunately it won’t work for me?
    I get the following error when i merely start the .cmd:
    I:\Tethered\tetheredloop.wsf(2, 21) Windows Script Host: Cannot find the type library for this reference : wia.DeviceManager

    The cmd-promt closes immediatly after that.
    I’m running XP-64 on SP2, don’t know if there are any other interesting facts for you to know?
    I hope you can help me with this, it would be greatly appreciated!

    // ottzen


  4. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Jim says:

    power would be external but yes bluetooth definitely too slow @ 1.5Mbps transferring an 11MB NEF as ViewNX really waiting to display. Initially played with those cheap wireless keyoard mouse but had problems with the channel hop. Looking into wifi dongles just to avoid the WT-4. Again, thanks Raymond


  5. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    raymond says:

    @ ottzen, I don’t know if the WIA Automation layer is available for 64 bit windows. The one I’m supplying is for 32 bit and presumably doesn’t work. Try registering it manually though and see what happens.

    @ Jim, let me know how it goes!


  6. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    ottzen says:

    If by “registering it manually” you mean using “regsvr32 wiaaut.dll” then I’m sorry to report a failure there.
    Haven’t been able to find anything about wiaaut.dll on x64 systems. If there isn’t the possibility available from Microsoft, that just sucks.
    But as far as i understand wia is used for webcams and scanners to? These work on x64, though don’t they? My Logitech Webcam Pro 5000 at least works fine…why shouldn’t the wiaaut.dll…(surely its more complicated than that, I just don’t get it)

    Anyone got another tip or trick I could try? =S

    //ottzen


  7. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    raymond says:

    ottzen, yes that is what I meant. The dll is for WIA automation which appears to be a higher layer than WIA itself. So even though x64 windows supports WIA doesn’t mean it supports WIA automation.

    So far not been able to research any solution to this. I suspect WIA automation may be orphan as the new correct way to do this is DirectShow.NET but that is MUCH harder and not obviously scriptable.


  8. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Gary says:

    ITS AMZING!! well done!! works great with my D40.

    Any chance of getting it to do time lapse? in put your custom time etc?

    Not sure if this has been cover but any way of getting live view to work on the laptop screen? as the D40 doesn’t have it!

    Thank you again!
    Gary


  9. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Gary says:

    Forgot to say that my LCD screen still works when the camera is connected! but not for viewing images just camera settings! pretty cool!


  10. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    raymond says:

    Gary, time lapse is on my todo list. Live view is probably impossible on the D40, but a maybe for the D300 if I can get the Nikon SDK and the coding isn’t too hard for me (I’m not a real programmer!)


  11. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Tom says:

    Works fine with a D700, windows XP SP3, and straight into lightroom. Have used the official Nikon program a bit, and whilst it offers a little more sophistication it’s not £120 worth of extra sophistication!

    You’re a genius sir, long may you continue to bring out stuff like this!


  12. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    raymond says:

    Tom, thanks for the kind words and I’m glad to hear it works with a D700 for you as someone else reported that camera not working for them.


  13. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    bill g says:

    hi
    just managed to get tethered connection working works with D50 and D80 works with bridge and lightroom at same time


  14. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    raymond says:

    Thanks for letting me know bill g!


  15. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Osman says:

    I wanted to use this program with my D8O. I just don’t want to put out the money just for tether shooting if I don’t have too. Well, I downloaded the program into my computer, Windows Vista platform, and it’s telling me that it is not compatible. It’s also giving me an error message.
    Anyone there have any suggestion


  16. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Osman says:

    I am also using Photoshop Element for editing.

    bill g anything different you did when installing the software? I installed and reinstalled the software numerous time.


  17. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    raymond says:

    Osman, I’m sorry to say I’m not sure. Which version of the script are you using? Please try the 2.0 if you haven’t already. If you could tell me what the error message is that you see that might be a clue!


  18. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    emilio says:

    “Windows XP SP2 or higher” — does this include Vista Premium? Not working for me. After I [Select Camera] button in hta UI — I get message: “This device does not support taking new pictures” — I have a D200; I use Lr 2.1; thanks for your time.


  19. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    raymond says:

    emilio – theoretically I don’t see why it won’t work with Vista, the documentation for WIAAut is the same. But in practice some, but not all, Vista users say it doesn’t work for them. While all XP users seem to have no problem.

    Do you have a wiaaut.dll in your system32? Is it the same one that ships with the CC script? Does the WIA diagnostic tool run on your machine?


  20. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    osman says:

    Raymond—The first error was when I started the program with the D8O plugged in is ” This device is not supported” although it does show the D8O as the camera connected.

    second is when I switch to the RAW image in the control portion it immediately pop up an error message stating “An error message has occurred in the script on this page.”

    On the error portion within is saying that “The WIA device is not online.”


  21. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    osman says:

    I also have the 2.0 downloaded as well. I will remove it and reinstall it again.


  22. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    emilio says:

    raymond – I have a wiaaut.dll in system32, but it’s ver 6… while the dll that came with your ZIP file is 5… — where would I find the WIA diagnostic tool?


  23. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    raymond says:

    osman, I think you’re problem is different — Windows Vista is failing to fully recognise the D80. I’ve read of other people having that. Do you connect the camera directly to the PC (no hub)? Sometimes poor connections on hubs can cause USB hardware to not be fully recognised. You have to get the “This device is not supported” error fixed before my (or any other) software will work.


  24. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    osman says:

    Raymond—Well I did finally get it to work. I followed your video and it is very informative. step by step. The photo does download now to the tethered file you specified on the C drive. I can only see it to how big I can get it on the view option though. Is there anyway I can connect it to other view screen? I have my photoshop element, picasa, or may be explorer viewer? I can do a slide show but I have to press the next all the time?

    I want to thank you for this Raymond. Great script.


  25. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    raymond says:

    osman, that’s great to here. Do you know what fixed it? So we can suggest others with the same problem may try that same solution.

    As for viewing — external viewers are the only good choice now (I use Bridge, others say Lightroom works too). I need to work on that area more. I think explorer viewer would work; did you try the “push external viewer” option and open an explorer window?


  26. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    osman says:

    Raymond—I followed the video instruction that you have.

    on the image save location, it always shows the C drive. Is that the only place it usually save I guess?

    Thanks a lot.


  27. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    emilio says:

    I guess I’m SOL on this one. Downloaded diag tool, ran it & I got ‘No such interface supported’ with D200 on & connected via USB. FYI – diag tool comes with two files in RAR – exe runs while DLL is ‘corrupt’ & thus couldn’t extract; thx for your time & help.


  28. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    raymond says:

    I’m sorry it hasn’t worked out Emilio. I’ll keep trying and intend to put together some troubleshooting suggestions. My latest thought involves ensuring Nikon drivers are installed in Windows correctly first.


  29. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    john says:

    what about one for mac and aperture i cant get my d40 t6 connect t6 tether right.


  30. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    paul says:

    yyyyes, i am in love with this! thank you for making this!!


  31. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Tom says:

    Raymond, your program runs great and I have been having a ball using it with my Nikon D40. If I could donate some funds to you I would. I only have one thing on my ‘wish list’ though. I do a lot of nighttime work and use my camera on manual bulb mode. The settings in your program only allow a slowest shutter speed of 30 secs. Any possible way to add a bulb setting to that?


  32. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    raymond says:

    Tom, glad it’s working for you. Sadly I have not yet been able to work out how to do Bulb. It may be impossible via the PTP WIA interface I’m using. I’ll take another look but I’m not hopeful at this stage, sorry.


  33. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Tom says:

    Thanks for the quick reply Raymond. I was afraid of that. The trail copy of Nikon Camera Connect also only goes to 30 secs with no option for Bulb. This is still a great program. I just used it to take multiple 30 sec images of the sky last night then stacked the images. I’m not a rich guy so buying program after program for simple tasks is sometimes not an option. Thanks again for the work you have put into this program (script, or whatever you want to call it).


  34. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    raymond says:

    I sure hear you about not wanting to buy more software for occasional use.

    How do you stack multiple images? I’d like to try some night sky images, but the light pollution where I live is terrible.


  35. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Tom says:

    Raymond, there are several stacker programs out there and after using several I settled on DeepSkyStacker. It’s simple to use and it works great. Detects the stars in the photos and aligns them to match in all the stacked images then lets you do simple post processing. You just take as many pics as you want, tell DeepSkyStacker which photos to process then let it do its thing. It only takes my 2 year old laptop about 2 minutes to stack and display 15 to 20 images. Just be warned that any exposure over 30 seconds at wide angle will start to show a small trail rather than a pinpoint. I use another cheap fix for that – a simple ‘barn door’ or ‘scotch’ camera tracker. You can make one for a few bucks – it is hand operated and will allow you to easily track the sky for much better star photos. Just another fun area of photography and much easier in the digital age.


  36. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Tom says:

    Hey, your blog posts show the time at 5 hours later than here on the North Carolina coast. You must be in England or thereabouts.


  37. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    raymond says:

    Thanks Tom. I’ll have to try that. I’m in Hong Kong actually but by habit leave server time zone at GMT!


  38. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Brett says:

    Do you now anybody who has made a Tethered Shooting Script for Nikon for Mac users. Ether shooting into Lightroom or Bridge.

    Thanks,
    Brett


  39. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Claire says:

    Thank you SO MUCH for your generosity in making this available for us all- it works like a charm with my D300 on Vista, shooting only NEFs. You saved me a bunch of money, and gave me a great deal of satisfaction about the web community. Thanks again!


  40. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Claire says:

    Oh, I should also mention that I had to update LightRoom to make it recognize the imported NEFs, where it had not had a problem doing so with Nikon’s Capture Control. After updating Lightroom from 1.0 to 1.4.1 all was well.


  41. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    DK says:

    Raymond, your program runs great and I have been using it with my Nikon D80 ,vista and lightroom 2.0. No problems with installation exept it will not read RAW files.Other than that its great, thank You

  42. Pingback:
    Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Liveview your studioshots in Lightroom | PresetsHeaven

  43. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Arne List says:

    Hey, I use the Fuji S5 pro, Windows XP and Lightroom 2. First of all, when I download your script, I get no “tethered.cmd” to double click on. But I have a Camera Control.hta.

    It causes script errors, when the system is not set up i a certain order. Connecting the camera to the notebook, switching on the camera, let it detect by Windows, then start Camera Control, make som settings and then start Lightroom (which is configured to automatic import).

    I don’t know, if this is only an issue of the Fuji S5, but it has a buffer for 8 frames. When they are shot, the shutter is blocked, and the camera won’t shoot, until it is restarted (disconnected and switched off and on again).

    I was using it that way with Lightroom before, the only difference was, that I had to press the “Import” button and select the camera. Then I got the content of the mentioned 8 frame buffer.

    Now, Camera Control copys the images to the local folder, of which Lightroom can import, but after 8 frames, the whole thing stops. The following procedure takes more time, than just copying from the CF card.

    With other words: It works after a clean launch for only 8 frames. Then, it’s almost like rebooting Windows 🙁

    But I guess, Fuji is to blame. Any idea?

    Thanks in advance 🙂
    Arne


  44. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    sawsrocks says:

    I seem to have messed up a scripting component or I am missing a toolkit. Can you please tell me where to go from here.

    I get the following IE script error:

    ActiveX component can’t create object: ‘Scripting.Dictonary’

    URL: file:// … 202.1/camera%20Control.hta


  45. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    augiewren says:

    Nikon D40, Vista, Bridge….works great! Thanks!


  46. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    gpmaijer says:

    This app works GREAT! I use it with a XP platform on a D80 and use it with View NX. Pics pop up within seconds. I can then instantly see focus points and apply labels and ratings for easier processing later once finished.


  47. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Wayne says:

    Just hooked it up to my D50 (ok, enough snickering) and it works fine! I wonder what it would take to put together a unit that would have a 5″ screen and be able to run this program. I’m thinking of a stand alone unit that all you would have to do is plug in a USB cable from the camera (auto recognition) and start shootiong. Touch screen.


  48. Notice: Only variables should be assigned by reference in /home/diyphoto/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Randy Harris says:

    Thank you for the software. I had success hooking my Nikon D300 with my laptop running on Vista.


Deprecated: Function get_currentuserinfo is deprecated since version 4.5.0! Use wp_get_current_user() instead. in /home/diyphoto/public_html/wp-includes/functions.php on line 6031

Leave a Reply

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