Hi!
Nikon Coolpix P330 can be remotely controlled only by PTP/IP (with Wi-Fi WU-1a device). Original Nikon software (WirelessMobileUtility for Andriod) can do this. But WirelessMobileUtility can do only single shots.
Gphoto2 says that "Sorry, your camera does not support generic capture
Error (-6: 'Unsupported operation')"
I am ready to provide any logs and conduct the necessary testing.
It does not seem to report any known capture opcode as available.
Either its not reported or they use another new one (there are some commands unknown to me in the opcode list).
Can you get a network trace between the windows software and the camera? Not sure how to do this with android, but perhaps you can sniff the wireless lan if not encrypted.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi!
Nikon does not provide a program for Windows only for Android and iOS. After numerous unsuccessful attempts to get the record of interaction between Nikon software and camera I finally managed to do it. I am rooted my Android device and use "WiFinspect [Root]" (I also tried the "Wi.cap. Network sniffer Pro" but it did not work at all). After that, I copied the logs in the Windows computer and analyzed them using Wireshark and the program's own writing.
Phase 1 does not contain commands shutter release. Basically just LifeView, which can not be turned off in Nikon WirelessMobileUtility. Event connection does not contain any significant than ping-pong packets every 21 seconds.
Phase 2 contains 6 clicks on shutter release button (may be more, but only 6 images now on memory card). After first click image (4.2 Mb) was autmaticaly downloaded to Android device. Then I turn of this feature. I think the shutter release is responsible for the command:
The camera may respond with OK or Busy (I think the camera records the previous frame on the memory card.) If it busy Nikon software repeats the command over and over again until the OK answer.
Each archive contains the original capture file, hex dump belonging to the connection packets (made by Wiresark) and partially decoded list of packets (made my own script).
Hi!
Nikon Coolpix P330 can be remotely controlled only by PTP/IP (with Wi-Fi WU-1a device). Original Nikon software (WirelessMobileUtility for Andriod) can do this. But WirelessMobileUtility can do only single shots.
Gphoto2 says that "Sorry, your camera does not support generic capture
Error (-6: 'Unsupported operation')"
I am ready to provide any logs and conduct the necessary testing.
BW, Vladimir
Last edit: Vladimir Fedorchuk 2013-08-05
It does not seem to report any known capture opcode as available.
Either its not reported or they use another new one (there are some commands unknown to me in the opcode list).
Can you get a network trace between the windows software and the camera? Not sure how to do this with android, but perhaps you can sniff the wireless lan if not encrypted.
Hi!
Nikon does not provide a program for Windows only for Android and iOS. After numerous unsuccessful attempts to get the record of interaction between Nikon software and camera I finally managed to do it. I am rooted my Android device and use "WiFinspect [Root]" (I also tried the "Wi.cap. Network sniffer Pro" but it did not work at all). After that, I copied the logs in the Windows computer and analyzed them using Wireshark and the program's own writing.
Phase 1 does not contain commands shutter release. Basically just LifeView, which can not be turned off in Nikon WirelessMobileUtility. Event connection does not contain any significant than ping-pong packets every 21 seconds.
List of used OpCodes:
0x1001 (1 time) GetDeviceInfo
0x1002 (2 times) OpenSession
0x1003 (2 times) CloseSession
0x1004 (2 times) GetStorageIDs
0x1005 (2 times) GetStorageInfo
0x1015 (42 times) GetDevicePropValue
0x2001 (330 times) OK
0x200A (1 time) DeviceProp Not Supported
0x5007 (16 times) F-Number
0x500A (1 time) FocusMode
0x500E (1 time) ExposureProgramMode
0x500F (1 time) ExposureIndex
0x90C1 (1 time) Unknown
0x90C2 (2 times) Unknown
0x90C7 (35 times) Unknown
0x90C8 (1 time) Unknown
0x9201 (1 time) Unknown
0x9202 (1 time) Unknown
0x9203 (234 times) NkonGetLiveView?
0x9504 (5 times) Unknown
0xD05D (1 time) Unknown
0xD0E1 (1 time) Unknown
0xD100 (18 times) Unknown
0xD101 (1 time) Unknown
0xD1A2 (1 time) Unknown
0xD1A4 (1 time) Unknown
0xD241 (1 time) Unknown
0xD244 (1 time) Unknown
0xD247 (1 time) Unknown
0xD250 (1 time) Unknown
0xD251 (1 time) Unknown
Phase 2 contains 6 clicks on shutter release button (may be more, but only 6 images now on memory card). After first click image (4.2 Mb) was autmaticaly downloaded to Android device. Then I turn of this feature. I think the shutter release is responsible for the command:
6_Cmd_Request [One] ID=368 Code=0x9207 (Unknown) Param1=0xFFFFFFFF Param2=0x00000000
The camera may respond with OK or Busy (I think the camera records the previous frame on the memory card.) If it busy Nikon software repeats the command over and over again until the OK answer.
Each archive contains the original capture file, hex dump belonging to the connection packets (made by Wiresark) and partially decoded list of packets (made my own script).
BW, Vladimir
List of used OpCodes:
0x1003 (1 time) CloseSession
0x1004 (3 times) GetStorageIDs
0x1005 (3 times) GetStorageInfo
0x1008 (1 time) GetObjectInfo
0x1015 (43 times) GetDevicePropValue
0x101B (5 times) GetPartialObject
0x2001 (326 times) OK
0x200A (2 times) DeviceProp Not Supported
0x2019 (16 times) Device Busy
0x5007 (13 times) F-Number
0x500A (1 time) FocusMode
0x500E (1 time) ExposureProgramMode
0x500F (2 times) ExposureIndex
0x90C1 (2 times) Unknown
0x90C2 (2 times) Unknown
0x90C7 (34 times) Unknown
0x90C8 (2 times) Unknown
0x9201 (2 times) Unknown
0x9202 (1 time) Unknown
0x9203 (222 times) NkonGetLiveView?
0x9207 (23 times) Unknown
0xD05D (2 times) Unknown
0xD0E1 (1 time) Unknown
0xD100 (17 times) Unknown
0xD101 (2 times) Unknown
0xD1A2 (2 times) Unknown
0xD1A4 (2 times) Unknown
Last edit: Vladimir Fedorchuk 2013-08-07
Thanks for the traces, very nice :)
The 0x9203 is indeed getliveview and reachable via
gphoto2 --capture-preview
in 2.5.2 and earlier releases.
The 0x9207 is a capture command, but i have only implemented after 2.5.2 (not in any release yet). You could try building the latest trunk libgphoto2.
Is it possible to do the same things via USB?
gphoto2 --list-config
/main/settings/datetime
/main/settings/fastfs
/main/settings/capturetarget
/main/status/serialnumber
/main/status/manufacturer
/main/status/cameramodel
/main/status/deviceversion
/main/status/vendorextension
/main/status/batterylevel
/main/other/5001
/main/other/5011
/main/other/d280
/main/other/d303
/main/other/d406
/main/other/d407
Device Capabilities:
File Download, File Deletion, File Upload
No Image Capture, No Open Capture, No vendor specific capture
Property 0xd280:(read only) (type=0x2) 1
Property 0xd303:(read only) (type=0x2) 1
Property 0xd406:(readwrite) (type=0xffff) ''
Property 0xd407:(read only) (type=0x6) 1