3

I am using EDSDK in my app, its working with camera via usb well, but official Android/iOS application from Canon ( in official SDK there is no network support, they used some inaccessable stuff for us) and third-party android-software "DSLR Controller" (How they did it!?) can operate camera via network. Is there a way (or workaround) to connect to Canon EOS camera using via network? As a result of using the official SDK connection to the camera is transparent and USB-only...

2 Answers2

2

Only a limited number of cameras can be used with Wifi (e.g. the 6D) with the SDK. But those supported can be controlled with the official SDK (on Windows and Mac OS X only, though).

I do not know what the official apps use but as far as I know there is no SDK publicly available for that. The ED SDK certainly does not support neither Android nor iOS.

The DSLR Controller app is, as far as I know, using a custom implementation that has been reverse engineered. Therefore it is not dependent on the SDK and can be used wherever they choose to implement it.

Johannes Bildstein
  • 1,069
  • 2
  • 8
  • 20
  • In an official SDK, I found nothing about the wi fi, network .... only PTP via USB. Given that there is no support for OTG Background on Windows platform and I have 6D I want to try to befriend them via WIFI. You said that the 6D can be controlled via the WIFI... I tried everything available to me through the Digital Imaging Developer Program and have not found anything ... what I missed? – Dmitry Tsyganov Mar 02 '16 at 14:01
  • @DmitryTsyganov yeah, the documentation is not really up to date and you can't rely on it completely. Have you tried to use the EOS Utility with a Wifi camera? It uses the SDK as well so if it works there you should be able to replicate it with your own code. – Johannes Bildstein Mar 02 '16 at 16:43
  • sorry, I'm not quite correctly wrote. I want to create an application for Widows Phone, so experiment with EOS Utility hardly give any result... – Dmitry Tsyganov Mar 03 '16 at 07:21
  • There is no way to connect camera to Windows Phone device via usb and i have 6D. I tried to listen traffic between Android device and my 6D. They create UPNP chat, but I have yet got to listen to the traffic service, serving this chat. About what is happening inside it is still unknown, but probably will learn later. Now there are 2 options. The first - with SDK to generate commands for the camera and try to connect with the camera and send them via WIFI insted of USB. Second - take Android device, catch all network traffic on each event and try to reproduce on WP. What can you advise? – Dmitry Tsyganov Mar 03 '16 at 07:21
  • 1
    @DmitryTsyganov, oh I see. You'll have to reverse engineer the commands then but I can't help you there. But as a start, Canon uses PTP as a basis (at least for USB connections) https://en.wikipedia.org/wiki/Picture_Transfer_Protocol – Johannes Bildstein Mar 07 '16 at 12:04
  • you said that documentation is not up to date. In documentation there is nothing about wifi... May be there is a undocumented way to connect camera via wifi to PC using canon SDK in C# custom application? (or with optional wrappers...etc..) – Dmitry Tsyganov Mar 30 '16 at 17:12
  • @DmitryTsyganov, none that I know of, sorry. – Johannes Bildstein Apr 04 '16 at 22:00
0

What you can do is to download the Canon's official Camera Connect APK, extract shared libraries (.so files) form it, since APK is a zip package. Then you can try to create a wrapper around those libraries, since they provide static methods with same name as in the official Canon EOS SDK, for example EDSInitialize, EDSRelease

I was able to successfully call EDSInitialize and EDSRelease methods, but failed to enumerate connected (via OTG cable) camera.

Ladislav
  • 320
  • 3
  • 10
  • Hi @Ladislav, Do you know if CCSDK works with the Canon EOS 6D over wifi or does it work only with the PowerShot SX70 for now - trying to connect from a windows system ? – aviimaging Apr 11 '19 at 19:06
  • Hello @aviimaging! Unfortunately the new API SDK by Canon will work only with SX70 and all their new future models. They do not plan to support any older models. I simply know, because I asked them and the answer was clear: NO. But you still can try MSYS2/MinGW with GPhoto2 on Windows to programatically access Canon camera features - just google for it ;) – Ladislav Apr 12 '19 at 20:56
  • @Ladislav were you finally able to make this extarcted so wrapper working on Android? – cubesoft Nov 29 '19 at 14:57
  • @cubesoft no, not really. When I call the EDSSomethingXXX method, which should return the number of connected cameras, it returns 0 even if have connected my camera. I also asked the authors of some DSLR applications available on Play Store whether they plan to publish their stuff as an SDK library but they answer was again NO. – Ladislav Dec 02 '19 at 10:05