I own a Canon SX60 HS and would like to know more about the protocol which is used to connect it to the possible software counterparts:

My aim is to connect to the camera from a Linux machine, but for now, I just want to know, what kind of protocol is used.

The broadcast package of the camera in a local network looks as follows:

Standard query response 0x0000
A, cache flush SRV, 
cache flush 0 0 8615 SX60.local TXT, 
cache flush PTR _imink_http._tcp.local PTR MobileConnectedCamera._imink_http._tcp.local
  • 2
    \$\begingroup\$ That is a DNS lookup response. Nothing to do with the camera. \$\endgroup\$ Commented Dec 8, 2014 at 6:36

2 Answers 2


I've reverse-engineered the CannonConnect app to some extent. The G7X is using Upnp 1.0 to find a device that supports imink, which has no information available online but is a fairly simple but a little messy HTTP-based protocol used to transfer images and additionally enable the PTP/IP interface for remote operation over WiFi, and Bluetooth for those cameras supporting the latter. There's one older program on Github called wphoto, additionally there's my Python App and my, as of time of the answer WIP Android App.

The MDNS you've intercepted seems to not be used (on my camera), as Upnp will work as long as you're in the same subnet, you can probably use it once the device is registered though.


I am not aware of any formal name for it. I don't believe it is any standard, just something Canon's engineers cooked up. Your best bet is probably to packet monitor the traffic.

  • \$\begingroup\$ I added a wireshark output. You are probably right, as I am not able to find any projects dealing with this on the internet. \$\endgroup\$
    – Lukas
    Commented Dec 5, 2014 at 18:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.