Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What APIs do new Sony cameras support i.e. A9 (ILCE-9), A7r2 (ILCE-7rm2), A7m3 (ILCE-7m3)?

I looked into Sony's developer website (3 March 2018) and while the design is changed, the contents seem to lag behind.

https://developer.sony.com/develop/cameras

I do not see any details of the APIs of A9 and 3rd gen A7 cameras.

I know these cameras have WiFi and indeed Bluetooth. They are inter-operable with the PlayMemories phone/tablet application. I also understand they removed the PlayMemories app support (the Android app support) from the cameras themselves.

I wonder if they expose the documented API? Are there improvements or new functions? Are there any limitations given that the platform has been changed?

Can the low power bluetooth be used to get some events from the camera?

Also, is there USB SDK for tether control?

like image 266
Kiril Avatar asked Mar 03 '18 13:03

Kiril


People also ask

What is Sony API?

Sony's Camera Remote API beta SDK allows you to control a number of Sony cameras, including Sony Action cams, Sony Alpha cameras and Lens Style cameras, wirelessly from another device.

How do I connect my Sony camera to my computer?

Connect the camera and computer using the supplied USB cable. Connect the camera and computer using Wi-Fi without passing through an access point. Select [PC Remote Function] → [Wi-Fi Direct Info.] to display an SSID and password of the camera.

Can you use a Sony camera as a webcam?

Imaging Edge Webcam lets you connect your Sony camera to your personal computer, and use the camera as a webcam with a livestreaming/web conferencing service.


1 Answers

Given that the A7iii / A7M3 / ILCE-7M3 is not part of the SDK and I got it recently I set to do my own exploration of the API. Good news is the API is similar to older cameras and developer knowledge can be put to immediate use.

It seems the API has different capability relative to older cameras that had API based in the Apps subsystem e.g. A6300, A7R2 etc.

Here is the full list of A7iii APIs I found using getAvailableApiList()

getAvailableApiList
getShootMode
getSupportedShootMode
getAvailableShootMode
setFlashMode
getFlashMode
getSupportedFlashMode
getAvailableFlashMode
setSelfTimer
getSelfTimer
getSupportedSelfTimer
getAvailableSelfTimer
getSupportedMovieQuality
startLiveview
stopLiveview
actTakePicture
startMovieRec
stopMovieRec
awaitTakePicture
getExposureMode
getSupportedExposureMode
getAvailableExposureMode
getSupportedFocusMode
setExposureCompensation
getExposureCompensation
getSupportedExposureCompensation
getAvailableExposureCompensation
setFNumber
getFNumber
getSupportedFNumber
getAvailableFNumber
setWhiteBalance
getWhiteBalance
getSupportedWhiteBalance
getAvailableWhiteBalance
getShutterSpeed
getSupportedShutterSpeed
getAvailableShutterSpeed
setIsoSpeedRate
getIsoSpeedRate
getSupportedIsoSpeedRate
getAvailableIsoSpeedRate
actHalfPressShutter
cancelHalfPressShutter
getSupportedProgramShift
getSupportedMovieFileFormat
setContShootingMode
getContShootingMode
getSupportedContShootingMode
getAvailableContShootingMode
getSupportedViewAngleMode
getSupportedNearModeInPF
setWirelessFlashSetting
getWirelessFlashSetting
getSupportedWirelessFlashSetting
getAvailableWirelessFlashSetting
getApplicationInfo
getEvent
getTemporarilyUnavailableApiList

There are couple of new APIs not available on A6300 previously

awaitTakePicture
getAvailableExposureMode
getAvailableFlashMode
getAvailableWirelessFlashSetting
getFlashMode
getSupportedMovieFileFormat
getSupportedMovieQuality
getSupportedNearModeInPF
getSupportedViewAngleMode
getSupportedWirelessFlashSetting
getTemporarilyUnavailableApiList
getWirelessFlashSetting
setFlashMode
setWirelessFlashSetting
startMovieRec
stopMovieRec

There are also few missing APIs that were present on A6300 and no longer in A7iii

getAvailableCameraFunction
getAvailableFocusMode
getAvailableLiveviewSize
getAvailablePostviewImageSize
getAvailableSilentShootingSetting
getCameraFunction
getFocusMode
getLiveviewFrameInfo
getLiveviewSize
getMethodTypes
getPostviewImageSize
getSilentShootingSetting
getStorageInformation
getSupportedCameraFunction
getSupportedContShootingSpeed
getSupportedLiveviewSize
getSupportedPostviewImageSize
getSupportedSilentShootingSetting
getSupportedZoomSetting
getTouchAFPosition
getVersions
setCameraFunction
setFocusMode
setLiveviewFrameInfo
setPostviewImageSize
setShootMode
setSilentShootingSetting
setTouchAFPosition
startLiveviewWithSize
stopRecMode

I saw startRecMode is not avaialbe or required to invoke on A7iii before sending other commands.

I do not seem able to enable frame info in LiveView so my live view looks a bit substandard i.e. not showing focus points. Also setTouchAFPosition() is gone and I cannot set focus point from my app. I am building a small Desktop/Laptop app that mimics Sony's PlayMemories phone app i.e. sort of wireless tethering tool.

A strange observation I made is that getVersions() returns list from 1.0 through 1.8. getMethodTypes() seems to only cover 1.0 through 1.3.

I hope this helps anyone that is trying to figure out if an app or script will run on the latest cameras.

PS After further examination I noticed getMEthodTypes returns coupe more API operations

actZoom
cancelTouchAFPosition
getAvailableFNumber
getAvailableFocusMode
getAvailableMovieQuality
getAvailableViewAngleMode
getFNumber
getFocusMode
getMethodTypes
getMovieQuality
getSupportedFNumber
getVersions
getViewAngleMode
setExposureMode
setFNumber
setFocusMode
setMovieQuality
setShootMode
setShutterSpeed
setViewAngleMode
startBulbShooting
startContShooting
stopBulbShooting
stopContShooting

I assume those will appear in the getAvaialbleApiList set when camera settings are appropriate e.g. continuous shooting or bulb mode exposure.

like image 193
Kiril Avatar answered Oct 04 '22 05:10

Kiril