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?
There are two way accessory companies get the information needed to connect to cameras:
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.
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)
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.