9

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?

Darpan
  • 183
  • 2
  • 12
Kiril
  • 1,028
  • 1
  • 9
  • 23

3 Answers3

7

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.

Kiril
  • 1,028
  • 1
  • 9
  • 23
  • Kiril, thanks for this info. Did you use the "Smart Remote Control" app within the camera to expose the API? Or was it possible to connect from another menu option? – eskimwier Jun 21 '18 at 19:50
  • 1
    There is no app support in A7iii, A7Riii and A9. Instead there is menu to enable WiFi control. http://helpguide.sony.net/ilc/1710/v1/en/contents/TP0001661942.html – Kiril Jun 22 '18 at 20:50
  • Hi @Kiril! Have you attempted at all to implement contents transfer on the a7iii or similar models? I recently launched an app and a lot of users are having issues. I'm guessing due to the lack of a setCameraFunction method there must be another way to achieve this? – simonthumper Jan 07 '19 at 10:00
  • Does anyone here have a clue what is going on with setting the shutter speed with the a7iii, etc? I have tried every format I can think of, but setting anything from 0.5" and longer just returns an error. What I had originally with all the older camera was working fine and that was sending ["0.5"]. – Josh York Jan 31 '19 at 08:19
0

Thanks for your interest in the Sony Camera API! Sony does make many cameras with various features, but even if a camera does have wifi capability it does not necessarily mean that it will support the camera remote API. The list on the website is the most updated list so if a camera is not on that list then it is more than likely not supported.

https://developer.sony.com/develop/cameras/api-information/supported-devices

Also the website lists many of the supported features, https://developer.sony.com/develop/cameras/api-information/supported-features-and-compatible-cameras

but you will have to download the SDK to see the full API list. https://developer.sony.com/file/download/sony-camera-remote-api-beta-sdk/

Lastly the camera API unfortunately only supports control over Wifi, so you would not be able to use any other means to tap in to the API.

I hope that this helps. Please let me know if you have any more questions!!

pg316
  • 1,380
  • 1
  • 8
  • 7
  • Hi Robert! Can you provide any information about how Contents Transfer can be used on the latest models, given the setCameraFunction API is no longer available? – simonthumper Jan 07 '19 at 09:53
  • Hi @simonthumper. You should be able to call the endpoint "getContentList" to see all of the content available on your camera. You should then be able to use http file transfer to download your files. – pg316 Jan 14 '19 at 19:36
  • Hi @Robert, does that method no longer take uri as a parameter? Or require changing to the “Transfer Contents” function? I.e. I can now skip the call to getSchemeList and getSourceList? Any chance you could provide an example flow for this? It’d be great to get it working again! Just to clarify, I’m talking about the a7iii/a7riii/a9 here! – simonthumper Jan 14 '19 at 21:01
0

Since feb 2020 Sony has provided a new wirelessly remote SDK. The Camera Remote SDK is a flexible API that builds on commonly-used protocols such as HTTP and JSON. And you can develop apps for any operating system, such as Android, iOS or Microsoft Windows.

See Api Information for supported devices (notification 2020-09-15). Only ILCE-7C, ILCE-7SM3, ILCE-7RM4, ILCE-9M2 are supported now.

  • The new SDK is not wireless. It is USB SDK. On the page you link it clearly says `Supported interface: USB`. I suppose they may support WiFi mode as the Sony PC app can do the same over USB and WiFi. This said the functonality supported over USB and WiFi since ILCE-7RM4 (A7R4) seems richer than the former WiFi SDK on any camera. – Kiril Oct 06 '20 at 15:10