Pages: [1]   Go Down
Author Topic: USB HOST CANON EOS NAK  (Read 766 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 17
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

My Canon EOS 1000D allways NAK (Negative AcKnowledge handshake) on "long"(62229 ((972*64+21) bytes and not multiple of the 64 packet!!) GetEvent request
with MAX3421E and Felis Code PTP
I Never had the Problem on PC with Gphoto2
I hope there is a solution to cancel this situation beceause:
NAK is proper response.
NAK is not an error response.

A) Trace Program:
     PTP_OC_CANON_EOS_GetEvent 0x9116    /* 9116: no args, data phase, no resp data. */
     FIRST STEP SEND COMMAND
      ------------Trace_ID:7-------------------
      WRITE OPERATION:
      code: CANON_EOS_GetEvent (0x9116)
      length: 12
      type: Command (0x1)
     ------------------------------------------
     SECOND STEP RESPONSE FROM CANON
     ------------Trace_ID:7-------------------
      READ OPERATION
      code: CANON_EOS_GetEvent (0x9116)
      length: 62229
      type: Data (0x2)
     ----------------------------------------
     LAST STEP (Normaly check RC code)
     ------------Trace_ID:7-------------------
      READ OPERATION
     NAK ERROR
     ----------------------------------------
B)Solution tested:(No success)
     1)Cancellation Code Event 0x4001 not supported on my EOS
     2) GetDeviceInfo    //PTP_OC_GetDeviceInfo 0x1001
           CloseSession() //PTP_OC_CloseSession 0x1003
           OpenSession()  //PTP_OC_OpenSession 0x1002
     3) Hardware Reset arduino board and MAX3421E ( So as is the code can't prevent that sort of bugging)
C)Question:
     1) Is somebody has a solution?
     2) Is somebody has the same problem?
     3) Is somebody has the same problem on a VDIP1 from FTDI ?
     4) Is somebody can explain me on PC with libusb
           I used function usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, int size, int timeout)
           size fixed to 130000 octets (very larger than the packet response data), and timeout=4000 (longer than embedded code)
           This function automatically return at the end of GetEvent READ OPERATION Data
           Even thought Last Step is a usb_bulk_read too (WRITE OPERATION CODE/READ DATA/READ RESPONSE)
           usb_bulk_read never catch the data packet and the response packet in the same time
           How usb_bulk_read done to know the send data packet is finish? Is there a USB Marker to flag end transmission?
     Is there a zero-length-packet EVENT to mark the end of a transmission?
     5) lenght bytes is not multiple of the 64 packet , is there a bug about MaxPktSize in Control Transfer (must be set in 8 bits)?
(Sorry for my bad english but it's not my first language)
Logged

Global Moderator
Dallas
Offline Offline
Shannon Member
*****
Karma: 199
Posts: 12768
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


Is this something you're trying to do with an Arduino?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 17
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes with arduino duemilanove ans HUSB HOST SCHIELD MAX3421E from circuit@home
Logged

Pages: [1]   Go Up
Jump to: