Sony QX10 mod for remote wire shutter trigger

The Sony QX10 is a nice lightweight 18 MegaPix camera for very little money (mine cost less than 100$ online, shipping included). It looks like a good one for aerial mapping missions. Unfortunately, it does not support USB cable remote triggering (unlike the much more expensive models in the QX family). Also, a smartphone app allows to trigger the camera via Wifi but that does not allow a direct shutter trigger control via Pixhawk, which was the purpose for getting this camera. Therefore I decided to modify my QX10 to see how trigger wires could be directly hacked on it...

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • Any review for mapping with this camera ?

    because there is no manual mode for adjust shutter etc.

    And i see a few UAV for survey using this cam. but i cannot find the review.

  • @stanley: unfortunately the quad crashed along with the camera. Never had chance to test Hugues suggestion to solder the Focus wire to the shutter wire but I'm sure that is the solution for my blurry image problem.

    If you already have the camera, go for the mods since it will not destroy any parts inside the camera if you do it right. If Hugues solution not working then you could remove the cable and sell the camera again to recover your investment.. please keep posting your result..
  • Waladi I was thinking of testing the same camera for aerial photos but your results in previous comment made me worried about the quality later on. Did you managed to increase the shutter speed?

    Thank you  

  • @Simon: I dont use external power, only replace stock battery with 2100 mah from 3th party brand.

  • 1/100 shutter speed is not nearly enough. With a canon s100 I can take excellent photos with 1/1000 shutter and IS0 100 on a non-cloudy day. 

  • @Waladi Are you applying external power to the camera? I think (IIRC) the camera will stay on indefinitely with external power.

    There are settings on my HDR-AS15 for controlling power off, but not seen these on QX10.

  • @Mauricio: No Sport mode available on this camera, as stated by @Simon

    @Hugues: I solder all 3 cables but only use 2 cables (Ground and Trigger only). I leave the Focus open. 

    Do I need to join the Focus and Trigger together into one pin and Ground on separate pin, since I don't know how my trigger board work on the 3rd pin...

    Have you tried to take picture while flown ?

    Mind to share your photo result? 

    @Simon: Interesting workaround, will try it as soon as I can get the camera back to me.

    Update on Self Auto Off: Camera will auto-off around 2.5 minutes after last action, so plan your mission to trigger before the camera shut-off.

  • Ignoring whether you should, you can force the ISO to influence the shutter speed - but you have to put the camera into "Program Auto" mode first, so that the get/setISO calls are available to use.

    simon@retrobox:~/sony_camera_api-git/src/example$ python
    Python 2.7.11+ (default, Mar 23 2016, 11:35:56)
    [GCC 5.3.1 20160320] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import pysony
    >>> search = pysony.ControlPoint()
    >>> cameras =
    >>> camera = pysony.SonyAPI(QX_ADDR=cameras[0])
    >>> camera.getAvailableApiList()
    {'id': 1, 'result': [['getMethodTypes', 'getAvailableApiList', 'setShootMode', 'getShootMode', 'getSupportedShootMode', 'getAvailableShootMode', 'setSelfTimer', 'getSelfTimer', 'getSupportedSelfTimer', 'getAvailableSelfTimer', 'setPostviewImageSize', 'getPostviewImageSize', 'getSupportedPostviewImageSize', 'getAvailablePostviewImageSize', 'startLiveview', 'stopLiveview', 'actTakePicture', 'startMovieRec', 'stopMovieRec', 'awaitTakePicture', 'actZoom', 'setExposureMode', 'getExposureMode', 'getSupportedExposureMode', 'getAvailableExposureMode', 'setBeepMode', 'getBeepMode', 'getSupportedBeepMode', 'getAvailableBeepMode', 'setCameraFunction', 'getCameraFunction', 'getSupportedCameraFunction', 'getAvailableCameraFunction', 'setStillSize', 'getStillSize', 'getSupportedStillSize', 'getAvailableStillSize', 'actFormatStorage', 'getStorageInformation', 'setTouchAFPosition', 'cancelTouchAFPosition', 'getTouchAFPosition', 'getSupportedExposureCompensation', 'getSupportedWhiteBalance', 'getSupportedIsoSpeedRate', 'actHalfPressShutter', 'cancelHalfPressShutter', 'getApplicationInfo', 'getVersions', 'getEvent']]}

    >>> camera.getSupportedIsoSpeedRate()
    {'id': 1, 'result': [['AUTO', '100', '200', '400', '800', '1600', '3200']]}
    >>> camera.getAvailableExposureMode()
    {'id': 1, 'result': ['Intelligent Auto', ['Intelligent Auto', 'Superior Auto', 'Program Auto']]}
    >>> camera.setExposureMode(["Program Auto"])
    {'id': 1, 'result': [0]}
    >>> camera.getAvailableExposureMode()
    {'id': 1, 'result': ['Program Auto', ['Intelligent Auto', 'Superior Auto', 'Program Auto']]}
    >>> camera.getAvailableApiList()
    {'id': 1, 'result': [['getMethodTypes', 'getAvailableApiList', 'setShootMode', 'getShootMode', 'getSupportedShootMode', 'getAvailableShootMode', 'setSelfTimer', 'getSelfTimer', 'getSupportedSelfTimer', 'getAvailableSelfTimer', 'setPostviewImageSize', 'getPostviewImageSize', 'getSupportedPostviewImageSize', 'getAvailablePostviewImageSize', 'startLiveview', 'stopLiveview', 'actTakePicture', 'startMovieRec', 'stopMovieRec', 'awaitTakePicture', 'actZoom', 'setExposureMode', 'getExposureMode', 'getSupportedExposureMode', 'getAvailableExposureMode', 'setBeepMode', 'getBeepMode', 'getSupportedBeepMode', 'getAvailableBeepMode', 'setCameraFunction', 'getCameraFunction', 'getSupportedCameraFunction', 'getAvailableCameraFunction', 'setStillSize', 'getStillSize', 'getSupportedStillSize', 'getAvailableStillSize', 'actFormatStorage', 'getStorageInformation', 'setTouchAFPosition', 'cancelTouchAFPosition', 'getTouchAFPosition', 'setExposureCompensation', 'getExposureCompensation', 'getSupportedExposureCompensation', 'getAvailableExposureCompensation', 'setWhiteBalance', 'getWhiteBalance', 'getSupportedWhiteBalance', 'getAvailableWhiteBalance', 'setIsoSpeedRate', 'getIsoSpeedRate', 'getSupportedIsoSpeedRate', 'getAvailableIsoSpeedRate', 'actHalfPressShutter', 'cancelHalfPressShutter', 'getApplicationInfo', 'getVersions', 'getEvent']]}

    >>> camera.getAvailableIsoSpeedRate()
    {'id': 1, 'result': ['AUTO', ['AUTO', '100', '200', '400', '800', '1600', '3200']]}
    >>> camera.setIsoSpeedRate(["1600"])
    {'id': 1, 'result': [0]}
    >>> camera.getAvailableIsoSpeedRate()
    {'id': 1, 'result': ['1600', ['AUTO', '100', '200', '400', '800', '1600', '3200']]}
    >>> camera.actTakePicture()
    {'id': 1, 'result': [['']]}
    >>> camera.setIsoSpeedRate(["3200"])
    {'id': 1, 'result': [0]}
    >>> camera.actTakePicture()
    {'id': 1, 'result': [['']]}

    3702254916?profile=originalAlso it looks like the mode and ISO are 'sticky' across a power cycle, so this should only need to be done once.



  • MR60

    @Waladi, normally the focus has its own wire to solder (one to shortcut for focus, the other for triggering). Did you solder three wires or just two ?

  • Of course pushing the sensor to 3200 is not a good idea.

    The QX10 is very very very similar to the wx220, wich is also automatic an laks manual modes.

    and I take very nice shots with it with a hexa on windy conditions.

    The  sony OIS is one of the best on that range of cameras.

    Maybe you have the HDR enabled....  try playing with other settings.


This reply was deleted.