I was wondering if Nikon has an API available for developing 3rd party hardware like the Satechi Intervalometer that I am currently using. I've got some cool ideas for some 3rd party hardware add-ons for DSLRs but I cannot find any support on Nikon website. I found a place where I can apply to download an SDK but that is intended to develop desktop applications. What if I want to develop a hardware attachment? How are companies like Satechi doing it?


2 Answers 2


There are two way accessory companies get the information needed to connect to cameras:

  1. Most common, they reverse engineer the protocol - obviously this is quite difficult and not something a normal person can do alone, also, the protocol can change in subtle ways between models and you have no way of knowing it.

  2. Very rare, they pay the camera manufacturer lots and lot of money to license the communication protocol details.

So, you're out of luck.

However, if all you want to do is trigger the camera remotely, the wired remote port is usually very simple and you just have to short two pins to shoot and two other pins to focus (I'm not 100% sure about Nikon but I made a wired remote for my Canon DSLR from old junk I had in my home)

  • \$\begingroup\$ That is great info. I am not just looking for a wired remote. A brief backstory, I recently bought a Nikon D600 with the WU-1B WiFi adapter. It is horrible at best. I have some much better ideas based off of the WU-1B type hardware so being a programmer I started researching APIs. It looks like I am out of luck. \$\endgroup\$
    – motiver
    Dec 20, 2012 at 22:10
  • 6
    \$\begingroup\$ @motiver - Well, than I have 2 option for you - 1. you can easily sniff the network traffic from Nikon's app and send the commands from any other WiFi enabled device. 2. There's someone who is already working on reverse engineering the WU-1A,WT-4A and WT-5A WiFi adapters, you can contact him and see if he can help you - seen it on diyphotography.net/… \$\endgroup\$
    – Nir
    Dec 20, 2012 at 22:22
  • \$\begingroup\$ @nir - Epic followup comment, nice work! \$\endgroup\$
    – dpollitt
    Jan 11, 2013 at 5:09

The SDK does contain the information you need already.

For example, the Nikon D90 SDK (which just happens to be the first of the list I pulled from the SDK's I have on file) has D90UsbMtpE_01.doc which contains the MTP Specs which define what the camera can do and the messages you can pass via usb to make that happen.

  • \$\begingroup\$ That is sweet. I will take a look at the D600 API. I must have missed something. \$\endgroup\$
    – motiver
    Jan 3, 2013 at 0:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.