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

Views: 8013

Comment by Martin on June 13, 2016 at 12:14pm

Increasing the ISO is not a very good idea. The sensor is small as it is. Cranking the ISO will make the images very noisy. Your experience only reinforces my point that the camera is not suitable for aerial photography except when you have a vibration free airframe and slow moving target/aircraft.

Comment by Mauricio García on June 13, 2016 at 2:10pm

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.


Comment by Hugues on June 14, 2016 at 8:04am

@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 ?

Comment by Simon Wood on June 14, 2016 at 9:06pm

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': [['']]}

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



Comment by Waladi on June 15, 2016 at 12:05am

@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.

Comment by Simon Wood on June 15, 2016 at 2:23pm

@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.

Comment by Martin on June 15, 2016 at 10:15pm

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. 

Comment by Waladi on June 17, 2016 at 10:42am

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

Comment by Stanley Anak Suab on July 27, 2016 at 8:57pm

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  

Comment by Waladi on August 6, 2016 at 4:41am
@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..


You need to be a member of DIY Drones to add comments!

Join DIY Drones


Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service