- This topic is empty.
-
AuthorPosts
-
December 19, 2016 at 7:04 pm #680
Kai
ParticipantHello,
I would love to be able to download images from my Canon EOS M5. My setup is as follows:
- WiFi router
- Desktop PC (Linux) – connected to router via Ethernet cable
- EOS M5 – connected to router via WiFi
The M5 gets an IP address (192.168.1.4) assigned via DHCP. The program output is as follows:
kai@blackbox:~/apps/airnef$ ./airnefcmd --ipaddress 192.168.1.4 --action getfiles --logginglevel debug airnef v1.1 - Wireless transfer of images/movies for Nikon cameras [GPL v3] Copyright (c) TestCams.com, Time: 12/19/16 19:42:02, Py: 2.7.9, OS: Linux [...] A device at 192.168.1.4 responded but the connection was refused. This is likely because you are connected to a normal Wifi network instead of your camera's network. Please confirm that your camera's Wifi is enabled and that your computer is connected to its network.
Any thoughts about that?
Regards
KaiDecember 19, 2016 at 10:13 pm #681Adam
ParticipantHi Kai,
It sounds like the camera is in one of the image transfer modes that isn’t specific to sending images to the computer, which means it’ll refuse the PTP-IP connection that Airnef is attempting to establish. I looked through the M5 manual and it has a ton of connection options and it’s not clear exactly which you need to use – I don’t have my 6D anymore so I don’t recall which I used on that body with Airnef. Can you try the various methods and see if any work and report back? Thanks!
December 20, 2016 at 5:27 pm #682Kai
ParticipantHi Adam,
thanks for your reply. I re-read the manual and I think that the only valid mode to connect to airnef is the strangely labeled mode “Smartphone”. The other modes are “Web service” (i.e. Canon Image Gateway), “Media player” (i.e. DLNA), “Printer”, and “Another camera”.
Ok, so I tried to create a new “Smartphone” connection using the previously configured WiFi-router as access point. What happens is this:
– Camera successfully connects to airnef and shows “airnef” on the display
– Camera asks for permission to serve images (all images, today’s images, …). I select all images.
– Camera shows “Connection failed” and airnef shows the debug oputput below.Connection established to 192.168.1.4:15740 sendInitCmdReq(): Sending MTP_TCPIP_REQ_INIT_CMD_REQ 0000: 01 00 00 00 00 11 22 33 - 44 55 66 77 88 99 00 00 ......"3 - DUfw.... 0010: 00 00 00 00 61 00 69 00 - 72 00 6e 00 65 00 66 00 ....a.i. - r.n.e.f. 0020: 00 00 00 00 01 00 ...... sendInitCmdReq() response: 0000: 02 00 00 00 6a 5a 00 00 - 5c d6 d3 0a 46 e4 56 7a ....jZ.. - \...F.Vz 0010: 15 43 3b a5 ad c8 46 25 - 43 00 61 00 6e 00 6f 00 .C;...F% - C.a.n.o. 0020: 6e 00 20 00 45 00 4f 00 - 53 00 20 00 4d 00 35 00 n. .E.O. - S. .M.5. 0030: 00 00 00 00 01 00 ...... Session ID = 0x00005a6a openConnection(): Attempting connection to 192.168.1.4:15740 sendInitEvents(): Sending MTP_TCPIP_REQ_INIT_EVENTS 0000: 03 00 00 00 6a 5a 00 00 - ....jZ.. - sendInitEvents() response: 0000: 04 00 00 00 .... sendProbeRequest(): Sending probe request 0000: 0d 00 00 00 .... Socket Error: timed out openConnection(): Attempting connection to 192.168.1.4:15740 >> Connection Failed << There was no response at 192.168.1.4. Please confirm that your camera's Wifi is enabled and that you have specified the correct IP address.
Regards
KaiDecember 23, 2016 at 6:03 am #683Adam
ParticipantThanks Kai. Based on the log the camera is either rejecting/not-supporting the ‘Send probe request’ or is the point at which further PTP-IP communication fails, with that being the first command. One thing we can try is to disable that specific command and see if Airnef gets further. If your comfortable with a bit of tech the easiest way to do this would be to download the source and modify it, then run it under the Python runtime which is also available online for free.
Here’s the link to the Airnef 1.1 source and the Python runtime (I would use the latest 2.7.x release):
Airnef v1.1 source
Python downloadTo disable the ‘Send Probe’ command, just insert a # in column 1 of line 1137 of the source you downloaded, so that it looks like this:
# mtpwifi.sendProbeRequest(g.socketEvents)
You can then run Airnef from your downloaded+modified source copy by either double clicking on the airnef.pyw file or by entering a command window and typing ‘python airnef.pyw’
-
This reply was modified 6 years, 3 months ago by
Adam.
December 23, 2016 at 6:17 pm #685Kai
ParticipantHello Adam,
commenting out the probe request did the trick! The process went on and the images were downloaded successfully.
Here is the log of the successful process.
Regards
KaiopenConnection(): Attempting connection to 192.168.1.4:15740 Connection established to 192.168.1.4:15740 sendInitCmdReq(): Sending MTP_TCPIP_REQ_INIT_CMD_REQ 0000: 01 00 00 00 00 11 22 33 - 44 55 66 77 88 99 00 00 ......"3 - DUfw.... 0010: 00 00 00 00 61 00 69 00 - 72 00 6e 00 65 00 66 00 ....a.i. - r.n.e.f. 0020: 00 00 00 00 01 00 ...... sendInitCmdReq() response: 0000: 02 00 00 00 bb 62 00 00 - 5c d6 d3 0a 46 e4 56 7a .....b.. - \...F.Vz 0010: 15 43 3b a5 ad c8 46 25 - 43 00 61 00 6e 00 6f 00 .C;...F% - C.a.n.o. 0020: 6e 00 20 00 45 00 4f 00 - 53 00 20 00 4d 00 35 00 n. .E.O. - S. .M.5. 0030: 00 00 00 00 01 00 ...... Session ID = 0x000062bb openConnection(): Attempting connection to 192.168.1.4:15740 sendInitEvents(): Sending MTP_TCPIP_REQ_INIT_EVENTS 0000: 03 00 00 00 bb 62 00 00 - .....b.. - sendInitEvents() response: 0000: 04 00 00 00 .... execMtpOp: MTP_OP_GetDeviceInfo - CmdReq payload: 0000: 06 00 00 00 01 00 00 00 - 01 10 01 00 00 00 ........ - ...... execMtpOp: MTP_OP_GetDeviceInfo - DataStart payload [expected data bytes is 0x1dd] 0000: 09 00 00 00 01 00 00 00 - dd 01 00 00 00 00 00 00 ........ - ........ execMtpOp: MTP_OP_GetDeviceInfo - Data payload [ID c] (0x000001e5 bytes): 0000: 0c 00 00 00 01 00 00 00 - 64 00 06 00 00 00 64 00 ........ - d.....d. 0010: 00 00 00 64 00 00 00 14 - 10 15 10 16 10 17 10 01 ...d.... - ........ 0020: 10 02 10 03 10 13 90 5c - 90 5d 90 1f 90 04 10 05 .......\ - .]...... 0030: 10 06 10 07 10 08 10 09 - 10 0a 10 1b 10 0c 10 0d ........ - ........ 0040: 10 0b 10 0f 10 12 10 01 - 90 21 90 1b 90 1e 90 19 ........ - .!...... 0050: 90 06 90 1c 90 02 90 4c - 90 24 90 25 90 38 90 39 .......L - .$.%.8.9 0060: 90 3a 90 3b 90 4b 90 60 - 90 62 90 01 98 02 98 03 .:.;.K.
– .b……
0070: 98 04 98 05 98 16 91 01 – 91 02 91 03 91 05 91 06 …….. – ……..
0080: 91 07 91 09 91 0a 91 0c – 91 17 91 18 91 2c 91 32 …….. – …..,.2
0090: 91 35 91 40 91 82 91 83 – 91 84 91 85 91 41 91 43 .5.@…. – …..A.C
00a0: 91 75 90 76 90 1a 91 3f – 91 15 91 1b 91 1c 91 1d .u.v…? – ……..
00b0: 91 3d 91 33 90 36 91 37 – 91 14 91 53 91 28 91 29 .=.3.6.7 – …S.(.)
00c0: 91 58 91 59 91 54 91 60 – 91 55 91 5b 91 2f 90 10 .X.Y.T.` – .U.[./..
00d0: 91 27 91 6c 90 6d 90 6e – 90 6f 90 50 90 51 90 11 .’.l.m.n – .o.P.Q..
00e0: 00 00 00 01 40 02 40 03 – 40 04 40 05 40 06 40 07 ….@.@. – @.@.@.@.
00f0: 40 08 40 09 40 0a 40 0b – 40 0c 40 0e 40 01 c0 05 @.@.@.@. – @.@.@…
0100: c0 0a c0 01 c1 19 00 00 – 00 45 d0 4a d0 2e d0 2f …….. – .E.J…/
0110: d0 01 50 02 d0 03 d0 34 – d0 47 d0 46 d0 30 d0 49 ..P….4 – .G.F.0.I
0120: d0 32 d0 33 d0 31 d0 50 – d0 51 d0 52 d0 53 d0 54 .2.3.1.P – .Q.R.S.T
0130: d0 57 d0 02 d4 06 d4 07 – d4 03 d3 01 00 00 00 01 .W…… – ……..
0140: 38 0a 00 00 00 01 30 02 – 30 06 30 08 30 01 38 00 8…..0. – 0.0.0.8.
0150: 38 03 b1 82 b9 05 b1 01 – bf 0b 43 00 61 00 6e 00 8……. – ..C.a.n.
0160: 6f 00 6e 00 20 00 49 00 – 6e 00 63 00 2e 00 00 00 o.n. .I. – n.c…..
0170: 0d 43 00 61 00 6e 00 6f – 00 6e 00 20 00 45 00 4f .C.a.n.o – .n. .E.O
0180: 00 53 00 20 00 4d 00 35 – 00 00 00 0b 33 00 2d 00 .S. .M.5 – ….3.-.
0190: 31 00 35 00 2e 00 30 00 – 2e 00 31 00 2e 00 30 00 1.5…0. – ..1…0.
01a0: 00 00 21 35 00 43 00 44 – 00 36 00 44 00 33 00 30 ..!5.C.D – .6.D.3.0
01b0: 00 41 00 35 00 36 00 37 – 00 41 00 34 00 36 00 45 .A.5.6.7 – .A.4.6.E
01c0: 00 34 00 41 00 35 00 33 – 00 42 00 34 00 33 00 31 .4.A.5.3 – .B.4.3.1
01d0: 00 35 00 32 00 35 00 34 – 00 36 00 43 00 38 00 41 .5.2.5.4 – .6.C.8.A
01e0: 00 44 00 00 00 .D…
execMtpOp: MTP_OP_GetDeviceInfo – CmdResponse payload (resp=”MTP_RESP_Ok”):
0000: 07 00 00 00 01 20 01 00 – 00 00 ….. .. – ..
MtpDeviceInfoTuple(standardVersion=100, vendorExtensionID=6, vendorExtensionVersion=100, vendorExtensionDescStr=”, operationsSupportedSet=set([4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4111, 4114, 36883, 4116, 4117, 4118, 4119, 36889, 4123, 36892, 36894, 36895, 36897, 36900, 36870, 36911, 36915, 36920, 36921, 36922, 36923, 36939, 36940, 36944, 36945, 36956, 36957, 36960, 36962, 36972, 36973, 36974, 36975, 36981, 36982, 36891, 36865, 36866, 37122, 36901, 38913, 37121, 38914, 37123, 37125, 37126, 37127, 37129, 37130, 37132, 37136, 37140, 37141, 37142, 37143, 37144, 37146, 37147, 37148, 37149, 38915, 37159, 37160, 37161, 37164, 37170, 37173, 37174, 37175, 37181, 38916, 37183, 37184, 37185, 37187, 37203, 37204, 37205, 37208, 37209, 37211, 38917, 37216, 37250, 37251, 37252, 37253]), eventsSupportedSet=set([16385, 16386, 16387, 16388, 16389, 16390, 16391, 16392, 16393, 16394, 16395, 16396, 49409, 16398, 49153, 49162, 49157]), devicePropertiesSupportedSet=set([20481, 54274, 53251, 54278, 54279, 53250, 54019, 53294, 53295, 53296, 53297, 53298, 53299, 53300, 53317, 53318, 53319, 53321, 53322, 53328, 53329, 53330, 53331, 53332, 53335]), captureFormatsSupportedSet=set([14337]), imageFormatsSupportedSet=set([14336, 12289, 12290, 45315, 45317, 12294, 14337, 12296, 47490, 48897]), manufacturerStr=u’Canon Inc.’, modelStr=u’Canon EOS M5′, deviceVersionStr=u’3-15.0.1.0′, serialNumberStr=u’5CD6D30A567A46E4A53B43152546C8AD’)
Camera Model “Canon EOS M5”, S/N “5CD6D30A567A46E4A53B43152546C8AD”[… skipping lines …]
6 files downloaded in 14.74 seconds (Average Rate = 2.99 MB/s)
execMtpOp: MTP_OP_CloseSession – CmdReq payload:
0000: 06 00 00 00 01 00 00 00 – 03 10 3e 00 00 00 …….. – ..>…
execMtpOp: MTP_OP_CloseSession – CmdResponse payload (resp=”MTP_RESP_Ok”):
0000: 07 00 00 00 01 20 3e 00 – 00 00 ….. >. – ..
`December 26, 2016 at 1:24 am #686Adam
ParticipantHi Kai,
Thanks for going through the effort to try it. Glad it worked!
February 23, 2017 at 11:01 am #700Alan Sharkey
ParticipantI’ve got the same issue with the Windows image. Not having any sort of compiler, could someone do the same fix and post the Windows .EXE please?
[Or tell me how I can do it?]
Many thanksAlan
February 23, 2017 at 2:08 pm #701Alan Sharkey
ParticipantOK – Update. I managed to get it to work with Python – but I still can’t get a compiled version – py2exe won’t run on my system.
-
AuthorPosts
- You must be logged in to reply to this topic.