0

Sadly Canon doesn't provide the EOS Utility for the Canon 3000D camera for wireless real time image transfer to computer.

I'm currently attempting to use the airnef software by testcams.com, its a open source python based application. It hasn't been updated since 2016 so hence its not working for the Canon 3000D.

The Airnef application runs and connect to the camera, it even managed to get the camera model and the serial number. But when it comes to downloading the image, I get the error below.

MTP_OP_GetObjectInfo: Socket error, partial data received - 0x0 of 0x0 bytes for specific payload, 0x0 of 0x0 of total data bytes expected. Error: timed out

Source Code http://www.testcams.com/airnef/Version_1.1/airnef_v1.1_Source.zip

Debug Log

airnef v1.1 - Wireless transfer of images/movies for Nikon cameras [GPL v3]
Copyright (c) TestCams.com, Time: 11/28/20 16:55:22, Py: 2.7.16, OS: Darwin

Orig cmd line: ['airnefcmd.py']
Processed cmd line: {'ssdp_addservice': None, 'connecttimeout': 10, 'printstackframes': 'no', 'excludefolders': None, 'rtd_maxsecsbeforeforceinitialobjlistget': 5, 'realtimedownload': 'disabled', 'outputdir': './', 'extlist': None, 'camerasleepwhendone': 'yes', 'slot': 'firstfound', 'startdate': None, 'filenamespec': None, 'downloadhistory': 'skipfiles', 'rtd_pollingmethod': None, 'maxgetobjbuffersizekb': 32768, 'sonyuniquecmdsenable': 1, 'ssdp_discoverytimeoutsecsperattempt': 2, 'ssdp_discoveryattempts': 3, 'initcmdreq_guid': '0x7766554433221100-0x0000000000009988', 'downloadexec': None, 'ssdp_discoveryflags': None, 'ssdp_addmulticastif': None, 'cameratransferlist': 'useifavail', 'socketreadwritetimeout': 5, 'opensessionid': None, 'retrydelaysecs': 5, 'downloadexec_options': [], 'ifexists': 'uniquename', 'dirnamespec': None, 'logginglevel': 'debug', 'retrycount': 9223372036854775807, 'mtpobjcache_maxagemins': 0, 'ipaddress': '192.168.1.33', 'maxgetobjtransfersizekb': 1024, 'suppressdupconnecterrmsgs': 'yes', 'onlyfolders': None, 'downloadexec_extlist': None, 'enddate': None, 'realtimepollsecs': 3, 'maxclockdeltabeforesync': '5', 'initcmdreq_hostver': 65536, 'mtpobjcache': 'enabled', 'action': 'getfiles', 'transferorder': 'oldestfirst', 'rtd_mtppollingmethod_newobjdetection': 'objlist', 'initcmdreq_hostname': 'airnef'}
openConnection(): Attempting connection to 192.168.1.33:15740
>> Connection Failed <<                                                       

There was no response at 192.168.1.33. Please confirm that your camera's
Wifi is enabled and that you have specified the correct IP address.

openConnection(): Attempting connection to 192.168.1.33:15740                 
openConnection(): Attempting connection to 192.168.1.33:15740                 
>> Connection Failed <<                                                       

Could not open socket: [Errno 64] Host is down

openConnection(): Attempting connection to 192.168.1.33:15740                 
openConnection(): Attempting connection to 192.168.1.33:15740                 
Connection established to 192.168.1.33: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 01 00 00 00 - 00 00 00 00 00 00 00 00 ........ - ........
0010: 00 01 74 bf c0 9a e4 27 - 45 00 4f 00 53 00 33 00 ..t....' - E.O.S.3.
0020: 30 00 30 00 30 00 44 00 - 00 00 00 00 01 00       0.0.0.D. - ......
Session ID = 0x00000001
openConnection(): Attempting connection to 192.168.1.33:15740
sendInitEvents(): Sending MTP_TCPIP_REQ_INIT_EVENTS                           
0000: 03 00 00 00 01 00 00 00 -                         ........ - 
sendInitEvents() response:
0000: 04 00 00 00                                       ....
sendProbeRequest(): Sending probe request
0000: 0d 00 00 00                                       ....
sendProbeRequest() response:
0000: 0e 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 0x22b]
0000: 09 00 00 00 01 00 00 00 - 2b 02 00 00 00 00 00 00 ........ - +.......
execMtpOp: MTP_OP_GetDeviceInfo - Data payload [ID c] (0x00000233 bytes):
0000: 0c 00 00 00 01 00 00 00 - 64 00 06 00 00 00 64 00 ........ - d.....d.
0010: 00 00 00 a7 00 00 00 14 - 10 15 10 16 10 01 10 02 ........ - ........
0020: 10 03 10 06 10 04 10 01 - 91 05 10 02 91 07 10 08 ........ - ........
0030: 10 03 91 09 10 04 91 0a - 10 1b 10 07 91 0c 10 0d ........ - ........
0040: 10 0b 10 05 91 0f 10 06 - 91 10 91 27 91 0b 91 08 ........ - ...'....
0050: 91 09 91 0c 91 0e 91 0f - 91 15 91 14 91 13 91 16 ........ - ........
0060: 91 17 91 20 91 f0 91 18 - 91 21 91 f1 91 1d 91 0a ... .... - .!......
0070: 91 1b 91 1c 91 1e 91 1a - 91 53 91 54 91 60 91 55 ........ - .S.T.`.U
0080: 91 57 91 58 91 59 91 5a - 91 1f 91 fe 91 ff 91 28 .W.X.Y.Z - .......(
0090: 91 29 91 2d 91 2e 91 2f - 91 2c 91 30 91 31 91 32 .).-.../ - .,.0.1.2
00a0: 91 33 91 34 91 2b 91 35 - 91 36 91 37 91 38 91 39 .3.4.+.5 - .6.7.8.9
00b0: 91 3a 91 3b 91 3c 91 da - 91 db 91 dc 91 dd 91 de .:.;.<.. - ........
00c0: 91 d8 91 d9 91 d7 91 d5 - 91 2f 90 41 91 42 91 43 ........ - ./.A.B.C
00d0: 91 3f 91 33 90 68 90 69 - 90 6a 90 6b 90 6c 90 6d .?.3.h.i - .j.k.l.m
00e0: 90 6e 90 6f 90 3d 91 80 - 91 81 91 82 91 83 91 84 .n.o.=.. - ........
00f0: 91 85 91 40 91 01 98 02 - 98 03 98 04 98 05 98 c0 ...@.... - ........
0100: 91 c1 91 c2 91 c3 91 c4 - 91 c5 91 c6 91 c7 91 c8 ........ - ........
0110: 91 c9 91 ca 91 cb 91 cc - 91 ce 91 cf 91 d0 91 d1 ........ - ........
0120: 91 d2 91 e1 91 e2 91 e3 - 91 e4 91 e5 91 e6 91 e7 ........ - ........
0130: 91 e8 91 e9 91 ea 91 eb - 91 ec 91 ed 91 ee 91 ef ........ - ........
0140: 91 f8 91 f9 91 f2 91 f3 - 91 f4 91 f7 91 22 91 23 ........ - .....".#
0150: 91 24 91 f5 91 f6 91 52 - 90 53 90 57 90 58 90 59 .$.....R - .S.W.X.Y
0160: 90 5a 90 5f 90 07 00 00 - 00 09 40 04 40 05 40 03 .Z._.... - ..@.@.@.
0170: 40 02 40 07 40 01 c1 05 - 00 00 00 02 d4 07 d4 06 @.@.@... - ........
0180: d4 03 d3 01 50 01 00 00 - 00 01 38 0c 00 00 00 01 ....P... - ..8.....
0190: 30 02 30 06 30 0a 30 08 - 30 01 38 01 b1 03 b1 02 0.0.0.0. - 0.8.....
01a0: bf 00 38 04 b1 05 b1 0b - 43 00 61 00 6e 00 6f 00 ..8..... - C.a.n.o.
01b0: 6e 00 20 00 49 00 6e 00 - 63 00 2e 00 00 00 10 43 n. .I.n. - c......C
01c0: 00 61 00 6e 00 6f 00 6e - 00 20 00 45 00 4f 00 53 .a.n.o.n - . .E.O.S
01d0: 00 20 00 33 00 30 00 30 - 00 30 00 44 00 00 00 08 . .3.0.0 - .0.D....
01e0: 33 00 2d 00 31 00 2e 00 - 30 00 2e 00 31 00 00 00 3.-.1... - 0...1...
01f0: 21 34 00 39 00 66 00 63 - 00 35 00 37 00 66 00 63 !4.9.f.c - .5.7.f.c
0200: 00 34 00 31 00 61 00 31 - 00 34 00 37 00 63 00 32 .4.1.a.1 - .4.7.c.2
0210: 00 38 00 64 00 32 00 36 - 00 32 00 66 00 63 00 35 .8.d.2.6 - .2.f.c.5
0220: 00 36 00 61 00 32 00 63 - 00 62 00 37 00 66 00 39 .6.a.2.c - .b.7.f.9
0230: 00 00 00                                          ...
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, 38915, 4116, 4117, 4118, 38916, 4123, 38917, 36911, 36915, 36946, 36947, 36951, 36952, 36953, 36954, 36959, 36968, 36969, 36970, 36971, 36972, 36973, 36974, 36975, 38913, 37121, 37122, 37123, 37124, 37125, 37126, 37127, 37128, 37129, 37130, 37131, 37132, 37134, 37135, 37136, 37139, 37140, 37141, 37142, 37143, 37144, 37146, 37147, 37148, 37149, 37150, 37151, 37152, 37153, 37154, 37155, 37156, 37159, 37160, 37161, 37163, 37164, 37165, 37166, 37167, 37168, 37169, 37170, 37171, 37172, 37173, 37174, 37175, 37176, 37177, 37178, 37179, 37180, 37181, 37183, 37184, 37185, 37186, 37187, 37203, 37204, 37205, 37207, 37208, 37209, 37210, 37216, 37248, 37249, 37250, 37251, 37252, 37253, 37367, 37312, 37313, 37314, 37315, 37316, 37317, 37318, 37319, 37320, 37321, 37322, 37323, 37324, 37326, 37327, 37328, 37329, 37330, 37333, 37335, 37336, 37337, 37338, 37339, 37340, 37341, 37342, 37345, 37346, 37347, 37348, 37349, 37350, 37351, 37352, 37353, 37354, 37355, 37356, 37357, 37358, 37359, 37360, 37361, 37362, 37363, 37364, 37365, 37366, 38914, 37368, 37369, 37374, 37375]), eventsSupportedSet=set([49409, 16386, 16387, 16388, 16389, 16391, 16393]), devicePropertiesSupportedSet=set([20481, 54274, 54019, 54278, 54279]), captureFormatsSupportedSet=set([14337]), imageFormatsSupportedSet=set([14336, 12289, 12290, 45315, 45316, 45317, 12294, 14337, 12296, 12298, 45313, 48898]), manufacturerStr=u'Canon Inc.', modelStr=u'Canon EOS 3000D', deviceVersionStr=u'3-1.0.1', serialNumberStr=u'49fc57fc41a147c28d262fc56a2cb7f9')
Camera Model "Canon EOS 3000D", S/N "49fc57fc41a147c28d262fc56a2cb7f9"
execMtpOp: MTP_OP_OpenSession - CmdReq payload:
0000: 06 00 00 00 01 00 00 00 - 02 10 02 00 00 00 01 00 ........ - ........
0010: 00 00                                             ..
execMtpOp: MTP_OP_OpenSession - CmdResponse payload (resp="MTP_RESP_Ok"):
0000: 07 00 00 00 01 20 02 00 - 00 00                   ..... .. - ..
execMtpOp: MTP_OP_Canon_SetDevicePropValue - CmdReq payload:
0000: 06 00 00 00 02 00 00 00 - 10 91 03 00 00 00       ........ - ......
execMtpOp: Sending MTP_TCPIP_PAYLOAD_ID_DataStart
0000: 09 00 00 00 03 00 00 00 - 0c 00 00 00 00 00 00 00 ........ - ........
execMtpOp: Sending MTP_TCPIP_PAYLOAD_ID_DataPayloadLast:
0000: 0c 00 00 00 03 00 00 00 - 0c 00 00 00 7c d1 00 00 ........ - ....|...
0010: 52 ca c1 5f                                       R.._
execMtpOp: MTP_OP_Canon_SetDevicePropValue - CmdResponse payload (resp="MTP_RESP_DeviceBusy"):
0000: 07 00 00 00 19 20 03 00 - 00 00                   ..... .. - ..
Failed setting camera's date/time to 11/28/20 04:56:02 PM
execMtpOp: MTP_OP_GetStorageIDs - CmdReq payload:
0000: 06 00 00 00 01 00 00 00 - 04 10 04 00 00 00       ........ - ......
execMtpOp: MTP_OP_GetStorageIDs - DataStart payload [expected data bytes is 0x8]
0000: 09 00 00 00 04 00 00 00 - 08 00 00 00 00 00 00 00 ........ - ........
execMtpOp: MTP_OP_GetStorageIDs - Data payload [ID c] (0x00000010 bytes):
0000: 0c 00 00 00 04 00 00 00 - 01 00 00 00 01 00 02 00 ........ - ........
execMtpOp: MTP_OP_GetStorageIDs - CmdResponse payload (resp="MTP_RESP_Ok"):
0000: 07 00 00 00 01 20 04 00 - 00 00                   ..... .. - ..
All Storage IDs:
  storageId[0] = 0x00020001
  storageId to be used for this invocation: 00020001 [cardsPresentBitmap=0x0001]
execMtpOp: MTP_OP_GetStorageInfo - CmdReq payload:
0000: 06 00 00 00 01 00 00 00 - 05 10 05 00 00 00 01 00 ........ - ........
0010: 02 00                                             ..
execMtpOp: MTP_OP_GetStorageInfo - DataStart payload [expected data bytes is 0x24]
0000: 09 00 00 00 05 00 00 00 - 24 00 00 00 00 00 00 00 ........ - $.......
execMtpOp: MTP_OP_GetStorageInfo - Data payload [ID c] (0x0000002c bytes):
0000: 0c 00 00 00 05 00 00 00 - 04 00 03 00 00 00 00 00 ........ - ........
0010: a0 dc 0e 00 00 00 00 00 - 3e dc 0e 00 00 00 ff ff ........ - >.......
0020: ff ff 03 53 00 44 00 00 - 00 00 00 00             ...S.D.. - ....
execMtpOp: MTP_OP_GetStorageInfo - CmdResponse payload (resp="MTP_RESP_Ok"):
0000: 07 00 00 00 01 20 05 00 - 00 00                   ..... .. - ..
MtpStorageInfoTuple(storageType=4, fileSystemType=3, accessCapability=0, maxCapacityBytes=63831015424, freeSpaceBytes=63824592896, freeSpaceInImages=4294967295, storageDescription=3, volumeLabel=u'\u4400')
execMtpOp: MTP_OP_GetObjectHandles - CmdReq payload:
0000: 06 00 00 00 01 00 00 00 - 07 10 06 00 00 00 01 00 ........ - ........
0010: 02 00 00 00 00 00 00 00 - 00 00                   ........ - ..
execMtpOp: MTP_OP_GetObjectHandles - DataStart payload [expected data bytes is 0x14]
0000: 09 00 00 00 06 00 00 00 - 14 00 00 00 00 00 00 00 ........ - ........
execMtpOp: MTP_OP_GetObjectHandles - Data payload [ID c] (0x0000001c bytes):
0000: 0c 00 00 00 06 00 00 00 - 04 00 00 00 00 00 00 90 ........ - ........
0010: 00 00 90 91 52 00 90 91 - 00 00 08 a0             ....R... - ....
execMtpOp: MTP_OP_GetObjectHandles - CmdResponse payload (resp="MTP_RESP_Ok"):
0000: 07 00 00 00 01 20 06 00 - 00 00                   ..... .. - ..
All MTP object handles (count=4):
0000: 90000000 91900000 - 91900052 a0080000 

MTP Object cache has 0 objects, age is 0:02:08.667459
MTP object cache entries [count=0]
Retrieving list of images/files from camera: 0/4     execMtpOp: MTP_OP_GetObjectInfo - CmdReq payload:
0000: 06 00 00 00 01 00 00 00 - 08 10 07 00 00 00 00 00 ........ - ........
0010: 00 90                                             ..
MTP_OP_GetObjectInfo: Socket error, partial data received - 0x0 of 0x0 bytes for specific payload, 0x0 of 0x0 of total data bytes expected. Error: timed out

openConnection(): Attempting connection to 192.168.1.33:15740                 
Attempting to establish camera connection at 192.168.1.33:15740 ^C
>> Terminated by user keypress - cleaning up, please wait... <<

Wireshark Log

Below is the wireshark capture I did when I plugged the USB into the computer and ran the "Download all images automatically" from the Canon EOS Utility. I found a capture that shows the image file name on the camera. Hope this can be of help

IMAGE: Wireshark log via USB using Canon EOS Utility 3

Jon
  • 1
  • 1
  • Sadly (as I also specified in my other answer) I don't have a camera, so I can't reproduce the error. Also there I got lucky (because after a series of trial and error ping pong, the issue got fixed). Did you play with the arguments, as the other answer? But on the other hand it seems like your camera protocol doesn't seem to be implemented by *airnef* (this is just a guess based on the 0 of 0 bytes errors). Maybe @Besi might have more insights. On the other hand, if you could somehow provide access to your camera, I could try some debugging (when time will allow me to). – CristiFati Nov 29 '20 at 17:02
  • let's talk here (where the actual question is), there's no need to do it via separate channels (*LinkedIn*). As I said, I'm not sure how to go on. Maybe reading *airnef* and camera *doc*s (*API*s) would be a good start. Again, it would be a lot easier if I somehow could access the camera (not sure if possible). – CristiFati Nov 29 '20 at 19:45
  • What can I do on my end to get details on the camera's protocol ? I'm not sure how to give you camera access, I can only think of teamviewer. – Jon Nov 29 '20 at 19:58
  • *TeamViewer* offers too much access, you don't want to do that (even if I want to help, but in some cases you might encounter people with malicious intents). Also I mentioned that I could work on that when the time will allow it (and I have a funny feeling being observed ("*have the phobia that someone's always there*" :) )). It all depends on how your network is setup. For example if your *Wi-FI* is behind a router (that has a public *IP*) you could use port forwarding to a specific (camera's) *IP* in your internal network. But again it might take (too much) time for me to figure it out. – CristiFati Nov 29 '20 at 20:12
  • Do you think we can find out which protocol Canon 3000D is using from the http://www.gphoto.org/proj/ source code? – Jon Dec 01 '20 at 20:38
  • I have a wireshark capture of when the Canon 3000D is plugged into my PC via USB till downloading the images from the camera using EOS Utility 3. If that helps? – Jon Dec 01 '20 at 22:35
  • @CristiFati I've added a wireshark capture above. Hopefully this can be of help? – Jon Dec 02 '20 at 12:38
  • Hmm, I can't figure out from that what the problem could be. But I must say that I didn't have too much time to spend on the matter as well. – CristiFati Dec 02 '20 at 14:36
  • Weird, after running the program so many times, it somehow managed to GetObjectInfo for the first item. (this only happened once and I can't get it to do it again). – Jon Dec 03 '20 at 12:24
  • https://i.stack.imgur.com/l5lNv.jpg @CristiFati – Jon Dec 03 '20 at 12:27

0 Answers0