SourceForge has been redesigned. Learn more.
Close

#430 capture-image support for Nikon Coolpix P330

None
open
None
5
2014-04-08
2013-08-05
No
1 Attachments

Discussion

  • Vladimir Fedorchuk

    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
  • Marcus Meissner

    Marcus Meissner - 2013-08-06

    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.

     
  • Marcus Meissner

    Marcus Meissner - 2013-08-06
    • assigned_to: Marcus Meissner
    • Group: -->
     
  • Vladimir Fedorchuk

    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

     
  • Vladimir Fedorchuk

    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
  • Marcus Meissner

    Marcus Meissner - 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.

     
  • Gleb Devyatkin

    Gleb Devyatkin - 2014-04-08

    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

     

Log in to post a comment.