Python program airnef not working on Canon 3000D

205 views Asked by At

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

0

There are 0 answers