Forum Rule: Always post complete source code & details to reproduce any issue!
Page 5 of 13 FirstFirst ... 3 4 5 6 7 ... LastLast
Results 101 to 125 of 303

Thread: USBHost_t36 USB Mass Storage Driver Experiments

  1. #101
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,220
    Quote Originally Posted by defragster View Post
    Using the latest @KurtE USBHost and turning on debug to Serial I got this on the 8GB Kingston Fat32 USB stick on T_3.6 - does it show anything helpful?::
    Code:
    Test logger_RawWrite
    2048<< BUFFSIZE _ Dev Type >>2:/
    Test logger_RawWrite
    2048<< BUFFSIZE _ Dev Type >>2:/
    sizeof Device = 36
    sizeof Pipe = 96
    sizeof Transfer = 64
    power up USBHS PHY
     reset waited 5
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 1FFF5000
    periodictable = 1FFF5000
    port change: 10001803
        connect
      begin reset
    port change: 18001205
      port enabled
      end recovery
    new_Device: 480 Mbit/sec
    new_Pipe
    enumeration:
    enumeration:
    enumeration:
    Device Descriptor:
      12 01 00 02 00 00 00 40 30 09 45 65 00 01 01 02 03 01 
        VendorID = 0930, ProductID = 6545, Version = 0100
        Class/Subclass/Protocol = 0 / 0 / 0
        Number of Configurations = 1
    enumeration:
    enumeration:
    Manufacturer: Kingston
    enumeration:
    Product: DataTraveler SE9
    enumeration:
    Serial Number: 001D0F1F90CAECB0472700A4
    enumeration:
    Config data length = 32
    enumeration:
    Configuration Descriptor:
      09 02 20 00 01 01 00 80 64 
        NumInterfaces = 1
        ConfigurationValue = 1
      09 04 00 00 02 08 06 50 00 
        Interface = 0
        Number of endpoints = 2
        Class/Subclass/Protocol = 8(Mass Storage) / 6(SCSI) / 80(Bulk Only)
      07 05 81 02 00 02 00 
        Endpoint = 1 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 02 02 00 02 00 
        Endpoint = 2 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
    enumeration:
    Descriptor 4 = INTERFACE
    new_Pipe
    new_Pipe
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    I had a similar end with T$, but after using the MSC_V3.zip version (but TD USBHost_t36) the program moved on and finished correctly.
    Not sure how to best synchronize all activity
    Maybe one could use a symbol that is printed in test program

  2. #102
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    Since @KurtE pretty much has a good config control on the USBHost lib maybe if we consider a single repository with uSDFS and MSC combined that allows @WMXZ and @wwatson to both have write permissions and update it as things get fixed?

  3. #103
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    Quote Originally Posted by WMXZ View Post
    I had a similar end with T$, but after using the MSC_V3.zip version (but TD USBHost_t36) the program moved on and finished correctly.
    Not sure how to best synchronize all activity
    Maybe one could use a symbol that is printed in test program
    Odd - because I had the TD USBHost ( no debug output on ) fail so that is why I updated and enabled debug there

    My 13 Mile WiFi Interweb is being WobblY - just switched to Mobile Hotspot to post … and I have a task ahead …

    Switched to uSDFS_test.ino and it goes into non-finitie looping - with updated USBHost:
    Code:
    Test uSDFS
    2:/
    sizeof Device = 36
    sizeof Pipe = 96
    sizeof Transfer = 64
    power up USBHS PHY
     reset waited 5
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 1FFF4000
    periodictable = 1FFF4000
    port change: 10001803
        connect
      begin reset
    port change: 18001205
      port enabled
      end recovery
    new_Device: 480 Mbit/sec
    new_Pipe
    enumeration:
    enumeration:
    enumeration:
    Device Descriptor:
      12 01 00 02 00 00 00 40 30 09 45 65 00 01 01 02 03 01 
        VendorID = 0930, ProductID = 6545, Version = 0100
        Class/Subclass/Protocol = 0 / 0 / 0
        Number of Configurations = 1
    enumeration:
    enumeration:
    Manufacturer: Kingston
    enumeration:
    Product: DataTraveler SE9
    enumeration:
    Serial Number: 001D0F1F90CAECB0472700A4
    enumeration:
    Config data length = 32
    enumeration:
    Configuration Descriptor:
      09 02 20 00 01 01 00 80 64 
        NumInterfaces = 1
        ConfigurationValue = 1
      09 04 00 00 02 08 06 50 00 
        Interface = 0
        Number of endpoints = 2
        Class/Subclass/Protocol = 8(Mass Storage) / 6(SCSI) / 80(Bulk Only)
      07 05 81 02 00 02 00 
        Endpoint = 1 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 02 02 00 02 00 
        Endpoint = 2 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
    enumeration:
    msController claim this=1FFF3340
    Descriptor 4 = INTERFACE
    msController claim this=1FFF3340
    09 04 00 00 02 08 06 50 00 07 05 81 02 00 02 00 07 05 02 02 00 02 00 
    numendpoint=2
    endpointIn=81
    endpointOut=2
    packet size in (msController) = 512
    packet size out (msController) = 512
    polling intervalIn = 0
    polling intervalOut = 0
    new_Pipe
    new_Pipe
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 02 00 00 00 00 00 00 00 80 00 06 1B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 02 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 03 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 03 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 04 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 04 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 05 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 05 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 06 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 06 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 07 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 07 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 08 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 08 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 09 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 09 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 0A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0A 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 0B 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0B 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 0C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0C 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 0D 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0D 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 0E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0E 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 0F 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0F 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 10 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 10 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 11 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 11 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 12 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 12 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 13 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 13 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 14 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 14 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 15 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 15 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 16 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 16 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 17 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 17 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 18 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 18 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 19 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 19 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 1A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1A 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 1B 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1B 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 1C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1C 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 1D 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1D 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 1E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1E 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 1F 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1F 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 20 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 20 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 21 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 21 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 22 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 22 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 23 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 23 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 24 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 24 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 25 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 25 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 26 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 26 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 27 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 27 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 28 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 28 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 29 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 29 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 2A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2A 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 2B 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2B 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 2C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2C 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 2D 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2D 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 2E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2E 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 2F 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2F 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 30 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 30 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 31 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 31 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 32 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 32 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 33 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 33 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 34 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 34 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 35 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 35 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 36 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 36 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 37 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 37 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 38 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 38 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 39 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 39 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 3A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 3A 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    
    // ...

  4. #104
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    @defragster, @WMXZ and @wwatson
    I am attaching the zip's of the libraries that I am using and seem to be having success with. This is just for a baseline because I am getting confused of where we are as well:
    USBHost_t36.zip

    MSC.zip

    uSDFS-master.zip

    Please note, there is no doc directory in uSDFS zip (was too big to upload if I left it in).

    EDIT: for reference all my tests have been with the T$

  5. #105
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    Quote Originally Posted by mjs513 View Post
    @defragster, @WMXZ and @wwatson
    I am attaching the zip's of the libraries that I am using and seem to be having success with. This is just for a baseline because I am getting confused of where we are as well:
    // ...
    Please note, there is no doc directory in uSDFS zip (was too big to upload if I left it in).

    EDIT: for reference all my tests have been with the T$
    Those zips look the same except I have the MSC without the added uSDFS folder, and I still have the DOC from the GitHub Zip.

    Only diffs are in :: T:\T_Downloads\14May\uSDFS-master\uSDFS-master\src\ff.c and one small rename in ff.h

    IIRC - there was a note about changes picked up for those "ff" files that I got from the github?

    I'll move to T$ and see what happens, and I grabbed a HDD to try.

    with T$ HDD on USB adapter gives only - restart making sure drive was up repeats:
    Code:
    Test logger_RawWrite
    2048<< BUFFSIZE _ Dev Type >>2:/
    USB2 PLL running
     reset waited 6
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 20006000
    periodictable = 20006000
    Test logger_RawWrite
    2048<< BUFFSIZE _ Dev Type >>2:/
    USB2 PLL running
     reset waited 6
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 20006000
    periodictable = 20006000

    And that USB stick give the same unending stream it seems the T_3.6 gave:
    Code:
    Test logger_RawWrite
    2048<< BUFFSIZE _ Dev Type >>2:/
    USB2 PLL running
     reset waited 6
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 20006000
    periodictable = 20006000
    port change: 10001803
        connect
      begin reset
    port change: 18001205
      port enabled
      end recovery
    new_Device: 480 Mbit/sec
    new_Pipe
    enumeration:
    enumeration:
    enumeration:
    Device Descriptor:
      12 01 00 02 00 00 00 40 30 09 45 65 00 01 01 02 03 01 
        VendorID = 0930, ProductID = 6545, Version = 0100
        Class/Subclass/Protocol = 0 / 0 / 0
        Number of Configurations = 1
    enumeration:
    enumeration:
    Manufacturer: Kingston
    enumeration:
    Product: DataTraveler SE9
    enumeration:
    Serial Number: 001D0F1F90CAECB0472700A4
    enumeration:
    Config data length = 32
    enumeration:
    Configuration Descriptor:
      09 02 20 00 01 01 00 80 64 
        NumInterfaces = 1
        ConfigurationValue = 1
      09 04 00 00 02 08 06 50 00 
        Interface = 0
        Number of endpoints = 2
        Class/Subclass/Protocol = 8(Mass Storage) / 6(SCSI) / 80(Bulk Only)
      07 05 81 02 00 02 00 
        Endpoint = 1 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 02 02 00 02 00 
        Endpoint = 2 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
    enumeration:
    msController claim this=20004E60
    Descriptor 4 = INTERFACE
    msController claim this=20004E60
    09 04 00 00 02 08 06 50 00 07 05 81 02 00 02 00 07 05 02 02 00 02 00 
    numendpoint=2
    endpointIn=81
    endpointOut=2
    packet size in (msController) = 512
    packet size out (msController) = 512
    polling intervalIn = 0
    polling intervalOut = 0
    new_Pipe
    new_Pipe
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 02 00 00 00 00 00 00 00 80 00 06 1B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 02 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 03 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 03 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 04 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 04 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 05 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 05 00 00 00 00 00 00 00 01

  6. #106
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    @defragster
    Don't have a HDD to test so I used a SSD instead (120Gb HP SDD):
    Code:
    Test Drive Inquiry with uSDFS
    Waiting For Device: 2:/
    
    Change drive
    
    Do Device Inquiry
    Removable Device: NO
            VendorID: HP SSD S
           ProductID: 600 120GB       
          RevisionID: 0509
    
    Get Device Capacity Specs
        Sector Count: 234441647
         Sector size: 512
       Disk Capacity: 234441647 * 512 Bytes
    
    Device Inquiry Test Finished.
    This is the sketch that I used:
    Code:
    #include "uSDFS.h"
    #include "MassStorage.h"
    /*
    * for APL see http://elm-chan.org/fsw/ff/00index_e.html
    */
    #define TEST_DRV 2
    //
    #if TEST_DRV == 0
      const char *Dev = "0:/";  // SPI
    #elif TEST_DRV == 1
      const char *Dev = "1:/";  //SDHC
    #elif TEST_DRV == 2
      const char *Dev = "2:/";  //USB
    #endif
    
    FRESULT rc;       /* Result code */
    FATFS fatfs;      /* File system object */
    FIL fil;          /* File object */
    DIR dir;          /* Directory object */
    FILINFO fno;      /* File information object */
    
    msInquiryResponse_t *diskInquiry;
    msSCSICapacity_t *diskCapacity;
    
    void die(const char *text, FRESULT rc)
    { Serial.printf("%s: Failed with rc=%u.\r\n", text,rc);  while(1) asm("wfi"); }
    
    void setup() {
      // put your setup code here, to run once:
      while(!Serial);
      Serial.println("Test Drive Inquiry with uSDFS");
      Serial.print("Waiting For Device: ");
      Serial.println(Dev);
      if((rc = f_mount (&fatfs, Dev, 1))) die("Mount",rc);      /* Mount/Unmount a logical drive */
    
      //-----------------------------------------------------------
      Serial.printf("\nChange drive\n");
      if((rc = f_chdrive(Dev))) die("chdrive",rc);
    
      // Show stats for Mass Storage Device
      Serial.printf("\nDo Device Inquiry\n");
      if(TEST_DRV == 2) {
        diskInquiry = getDriveInquiry();
        Serial.printf("Removable Device: ");
        if(diskInquiry->Removable == 1)
          Serial.printf("YES\n");
        else
          Serial.printf("NO\n");
          Serial.printf("        VendorID: %8.8s\n",diskInquiry->VendorID);
          Serial.printf("       ProductID: %16.16s\n",diskInquiry->ProductID);
          Serial.printf("      RevisionID: %4.4s\n",diskInquiry->RevisionID);
          Serial.printf("\nGet Device Capacity Specs\n");
          diskCapacity = getDriveCapacity();
          Serial.printf("    Sector Count: %ld\n",diskCapacity->Blocks);
          Serial.printf("     Sector size: %ld\n",diskCapacity->BlockSize);
          Serial.printf("   Disk Capacity: %ld * %ld Bytes\n",diskCapacity->Blocks, diskCapacity->BlockSize);
      }
      Serial.printf("\nDevice Inquiry Test Finished.\n");
    }
    
    void loop() {
      delay(1000);
    }
    It was posted somewhere else on the thread.

  7. #107
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    @defragster

    Just dug out my HDDs - one didn't work just said waiting but windows didn't recognize it either, The second one:
    Code:
    Test Drive Inquiry with uSDFS
    Waiting For Device: 2:/
    
    Change drive
    
    Do Device Inquiry
    Removable Device: NO
            VendorID: IBM-DJNA
           ProductID: -352030         
          RevisionID:     
    
    Get Device Capacity Specs
        Sector Count: 39876479
         Sector size: 512
       Disk Capacity: 39876479 * 512 Bytes
    
    Device Inquiry Test Finished.
    Both drives were IDE drives, 3.5inch. I used a startech adapter that allows me to attach a external pwr source to provide power to the drive

  8. #108
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    Moved to T$ ... May be a bad HDD - which is why I had it handy - now just sitting there with a light ticking ... not the Death Click
    Ran RawWrite Log on HDD - it is 750GB - reformatted exFAT:
    Code:
    Test logger_RawWrite
    2048<< BUFFSIZE _ Dev Type >>2:/
    USB2 PLL running
     reset waited 6
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 20006000
    periodictable = 20006000
    I get nearly the same from p#106 sketch:
    Code:
    T:\tCode\T4\uSDFS_testMJS\uSDFS_testMJS.ino May 14 2019 18:17:05
    Test Drive Inquiry with uSDFS
    Waiting For Device: 2:/
    USB2 PLL running
     reset waited 6
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 20003000
    periodictable = 20003000
    Just saw another working 3.5" 200 GB Windows drive on the floor - after this start it does th non-finite SPEW at the end:
    Code:
    T:\tCode\T4\uSDFS_testMJS\uSDFS_testMJS.ino May 14 2019 18:17:05
    Test Drive Inquiry with uSDFS
    Waiting For Device: 2:/
    USB2 PLL running
     reset waited 6
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 20003000
    periodictable = 20003000
    port change: 10001803
        connect
      begin reset
    port change: 18001205
      port enabled
      end recovery
    new_Device: 480 Mbit/sec
    new_Pipe
    enumeration:
    enumeration:
    enumeration:
    Device Descriptor:
      12 01 00 02 00 00 00 40 E3 05 18 07 08 00 00 01 02 01 
        VendorID = 05E3, ProductID = 0718, Version = 0008
        Class/Subclass/Protocol = 0 / 0 / 0
        Number of Configurations = 1
    enumeration:
    enumeration:
    Product: USB Storage
    enumeration:
    Serial Number: 000000000033
    enumeration:
    Config data length = 32
    enumeration:
    Configuration Descriptor:
      09 02 20 00 01 01 00 C0 30 
        NumInterfaces = 1
        ConfigurationValue = 1
      09 04 00 00 02 08 06 50 00 
        Interface = 0
        Number of endpoints = 2
        Class/Subclass/Protocol = 8(Mass Storage) / 6(SCSI) / 80(Bulk Only)
      07 05 81 02 00 02 00 
        Endpoint = 1 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 02 02 00 02 00 
        Endpoint = 2 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
    enumeration:
    msController claim this=200027A0
    Descriptor 4 = INTERFACE
    msController claim this=200027A0
    09 04 00 00 02 08 06 50 00 07 05 81 02 00 02 00 07 05 02 02 00 02 00 
    numendpoint=2
    endpointIn=81
    endpointOut=2
    packet size in (msController) = 512
    packet size out (msController) = 512
    polling intervalIn = 0
    polling intervalOut = 0
    new_Pipe
    new_Pipe
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 02 00 00 00 00 00 00 00 80 00 06 1B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 02 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 03 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 03 00 00 00 00 00 00 00 01 
    ** CSWSIGNATURE

  9. #109
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    @defragster

    What sketch are you running?

    EDIT: Never mind - just saw it. Are you powering the drive separately? Because this is getting strange - I don't think I have anything else I can try to duplicate here.

  10. #110
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    Quote Originally Posted by mjs513 View Post
    @defragster

    What sketch are you running?
    Noted: from p#106 sketch … I saved as … SDFS_testMJS.ino

  11. #111
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    @degragster- did you see my edit

    EDIT: Have a couple more old windows drives buried in the garage - will dig them out tomorrow - too late tonight. Could it be the HDD adapter you are using to T$?

  12. #112
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    I see the edit now - it is strange. My KingWin adapter doesn't have provision for external power - and I lost my powered Hub ??? - I have a powered drive unit - but it has somebody else's drive in right now.

    What drive OS / Format's are supported of : NTFS, Fat32, exFat ?

    Found my powered hub - just had to follow the power cable … hidden behind/under Teensy's. Will try to get a drive expected to work if I know what that is?

    Did you see the notes on FF.C edits from GitHub/WMXZ - or did I get old ones? I didn't change to yours ...

  13. #113
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    Yeah - all of the HDD's I tried need the extra power otherwise the T's wont read them. The ssd's are ok. I tried a 2.5in HDD but it just clicked.

    As for format - think only FAT32 or extFAT will work with libraries.

    I don't think I saw the note. I am just using what @WMXZ posted on GITHUB. If it still doesn't work try switching to ff.c that is posted on GitHub. Have to find what I did with the adapter for the powered hub. Kurt posted a portion of sketch to show how to incorporate the hub into the sketch.

  14. #114
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    Just found my last update from uSDFS was not the latest any more …

    Will find a fresh drive to format usably and make sure it is HUB powered or other. If I saw right it can handle partitions?

  15. #115
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    Okay - had GOOD luck - a SATA HDD abandoned before failure in ~2013. Formatted Samsung to 465GB exFAT.

    @mjs513 - glad your SSD worked to some extent - mine is trash ...

    It I sparked in a AZIO USB2 powered drive carrier - the one I use on PC for looking after drives that works - I got some newer USB3 unit that seems to be flakey on a PC so I keep using this one.

    Here is output from posted @mjs513 sketch:
    Code:
    T:\tCode\T4\uSDFS_testMJS\uSDFS_testMJS.ino May 14 2019 19:44:05
    Test Drive Inquiry with uSDFS
    Waiting For Device: 2:/
    USB2 PLL running
     reset waited 6
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 20003000
    periodictable = 20003000
    port change: 10001803
        connect
      begin reset
    port change: 18001205
      port enabled
      end recovery
    new_Device: 480 Mbit/sec
    new_Pipe
    enumeration:
    enumeration:
    enumeration:
    Device Descriptor:
      12 01 00 02 00 00 00 40 FC 04 25 0C 03 01 02 03 01 01 
        VendorID = 04FC, ProductID = 0C25, Version = 0103
        Class/Subclass/Protocol = 0 / 0 / 0
        Number of Configurations = 1
    enumeration:
    enumeration:
    Manufacturer: Sunplus Technology Inc.
    enumeration:
    Product: USB to Serial-ATA bridge
    enumeration:
    Serial Number: SAMSUNG HDS20BJ9FSC07429      
    enumeration:
    Config data length = 32
    enumeration:
    Configuration Descriptor:
      09 02 20 00 01 01 04 C0 01 
        NumInterfaces = 1
        ConfigurationValue = 1
      09 04 00 00 02 08 06 50 05 
        Interface = 0
        Number of endpoints = 2
        Class/Subclass/Protocol = 8(Mass Storage) / 6(SCSI) / 80(Bulk Only)
      07 05 81 02 00 02 00 
        Endpoint = 1 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 02 02 00 02 00 
        Endpoint = 2 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
    enumeration:
    msController claim this=200027E0
    Descriptor 4 = INTERFACE
    msController claim this=200027E0
    09 04 00 00 02 08 06 50 05 07 05 81 02 00 02 00 07 05 02 02 00 02 00 
    numendpoint=2
    endpointIn=81
    endpointOut=2
    packet size in (msController) = 512
    packet size out (msController) = 512
    polling intervalIn = 0
    polling intervalOut = 0
    new_Pipe
    new_Pipe
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 02 00 00 00 00 00 00 00 80 00 06 1B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 02 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 03 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 03 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 04 00 00 00 24 00 00 00 80 00 06 12 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 36
    00 00 02 02 1F 00 00 00 53 41 4D 53 55 4E 47 20 48 44 35 30 32 48 4A 20 20 20 20 20 20 20 20 20 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 04 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 05 00 00 00 08 00 00 00 80 00 0A 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 8
    3A 38 60 2F 00 00 02 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 05 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 06 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 06 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 07 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    33 C0 8E D0 BC 00 7C 8E C0 8E D8 BE 00 7C BF 00 06 B9 00 02 FC F3 A4 50 68 1C 06 CB FB B9 04 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 07 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 08 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 08 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 09 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 08 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    EB 52 90 4E 54 46 53 20 20 20 20 00 02 08 00 00 00 00 00 00 00 F8 00 00 3F 00 FF 00 00 08 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 09 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0B 00 00 00 00 02 00 00 80 00 0A 28 00 00 03 28 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    EB 76 90 45 58 46 41 54 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0D 00 00 00 00 02 00 00 80 00 0A 28 00 00 03 AD 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    83 09 34 00 36 00 35 00 47 00 42 00 73 00 61 00 6D 00 73 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0F 00 00 00 00 02 00 00 80 00 0A 28 00 00 03 30 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    F8 FF FF FF FF FF FF FF 03 00 00 00 04 00 00 00 05 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    
    Change drive
    
    Do Device Inquiry
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 10 00 00 00 24 00 00 00 80 00 06 12 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 36
    00 00 02 02 1F 00 00 00 53 41 4D 53 55 4E 47 20 48 44 35 30 32 48 4A 20 20 20 20 20 20 20 20 20 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 10 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    Removable Device: NO
            VendorID: SAMSUNG 
           ProductID: HD502HJ         
          RevisionID:     
    
    Get Device Capacity Specs
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 11 00 00 00 08 00 00 00 80 00 0A 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 8
    3A 38 60 2F 00 00 02 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 11 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
        Sector Count: 976773167
         Sector size: 512
       Disk Capacity: 976773167 * 512 Bytes
    
    Device Inquiry Test Finished.
    No such luck with the Test Logger … still goes off on infinite SPEW:
    Code:
    Test logger_RawWrite
    BUFFSIZE :8192
    Dev Type :2:/
    USB2 PLL running
     reset waited 6
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 2000C000
    periodictable = 2000C000
    port change: 10001803
        connect
      begin reset
    port change: 18001205
      port enabled
      end recovery
    new_Device: 480 Mbit/sec
    new_Pipe
    enumeration:
    enumeration:
    enumeration:
    Device Descriptor:
      12 01 00 02 00 00 00 40 FC 04 25 0C 03 01 02 03 01 01 
        VendorID = 04FC, ProductID = 0C25, Version = 0103
        Class/Subclass/Protocol = 0 / 0 / 0
        Number of Configurations = 1
    enumeration:
    enumeration:
    Manufacturer: Sunplus Technology Inc.
    enumeration:
    Product: USB to Serial-ATA bridge
    enumeration:
    Serial Number: SAMSUNG HDS20BJ9FSC07429      
    enumeration:
    Config data length = 32
    enumeration:
    Configuration Descriptor:
      09 02 20 00 01 01 04 C0 01 
        NumInterfaces = 1
        ConfigurationValue = 1
      09 04 00 00 02 08 06 50 05 
        Interface = 0
        Number of endpoints = 2
        Class/Subclass/Protocol = 8(Mass Storage) / 6(SCSI) / 80(Bulk Only)
      07 05 81 02 00 02 00 
        Endpoint = 1 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 02 02 00 02 00 
        Endpoint = 2 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
    enumeration:
    msController claim this=2000AF20
    Descriptor 4 = INTERFACE
    msController claim this=2000AF20
    09 04 00 00 02 08 06 50 05 07 05 81 02 00 02 00 07 05 02 02 00 02 00 
    numendpoint=2
    endpointIn=81
    endpointOut=2
    packet size in (msController) = 512
    packet size out (msController) = 512
    polling intervalIn = 0
    polling intervalOut = 0
    new_Pipe
    new_Pipe
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 02 00 00 00 00 00 00 00 80 00 06 1B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 02 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    // ...
    Seems it may think a bit more with 2K buffer? - then SPew Storm … love that FAST USB output ...::
    Code:
    Test logger_RawWrite
    BUFFSIZE :2048
    Dev Type :2:/
    USB2 PLL running
     reset waited 6
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 20006000
    periodictable = 20006000
    port change: 10001803
        connect
      begin reset
    port change: 18001205
      port enabled
      end recovery
    new_Device: 480 Mbit/sec
    new_Pipe
    enumeration:
    enumeration:
    enumeration:
    Device Descriptor:
      12 01 00 02 00 00 00 40 FC 04 25 0C 03 01 02 03 01 01 
        VendorID = 04FC, ProductID = 0C25, Version = 0103
        Class/Subclass/Protocol = 0 / 0 / 0
        Number of Configurations = 1
    enumeration:
    enumeration:
    Manufacturer: Sunplus Technology Inc.
    enumeration:
    Product: USB to Serial-ATA bridge
    enumeration:
    Serial Number: SAMSUNG HDS20BJ9FSC07429      
    enumeration:
    Config data length = 32
    enumeration:
    Configuration Descriptor:
      09 02 20 00 01 01 04 C0 01 
        NumInterfaces = 1
        ConfigurationValue = 1
      09 04 00 00 02 08 06 50 05 
        Interface = 0
        Number of endpoints = 2
        Class/Subclass/Protocol = 8(Mass Storage) / 6(SCSI) / 80(Bulk Only)
      07 05 81 02 00 02 00 
        Endpoint = 1 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 02 02 00 02 00 
        Endpoint = 2 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
    enumeration:
    msController claim this=20004F20
    Descriptor 4 = INTERFACE
    msController claim this=20004F20
    09 04 00 00 02 08 06 50 05 07 05 81 02 00 02 00 07 05 02 02 00 02 00 
    numendpoint=2
    endpointIn=81
    endpointOut=2
    packet size in (msController) = 512
    packet size out (msController) = 512
    polling intervalIn = 0
    polling intervalOut = 0
    new_Pipe
    new_Pipe
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 02 00 00 00 00 00 00 00 80 00 06 1B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 02 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 03 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 03 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 04 00 00 00 24 00 00 00 80 00 06 12 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 36
    00 00 02 02 1F 00 00 00 53 41 4D 53 55 4E 47 20 48 44 35 30 32 48 4A 20 20 20 20 20 20 20 20 20 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 04 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 05 00 00 00 08 00 00 00 80 00 0A 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 8
    3A 38 60 2F 00 00 02 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 05 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 06 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 06 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 07 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    33 C0 8E D0 BC 00 7C 8E C0 8E D8 BE 00 7C BF 00 06 B9 00 02 FC F3 A4 50 68 1C 06 CB FB B9 04 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 07 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 08 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 08 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 09 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 08 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    EB 52 90 4E 54 46 53 20 20 20 20 00 02 08 00 00 00 00 00 00 00 F8 00 00 3F 00 FF 00 00 08 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 09 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0B 00 00 00 00 02 00 00 80 00 0A 28 00 00 03 28 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    EB 76 90 45 58 46 41 54 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0D 00 00 00 00 02 00 00 80 00 0A 28 00 00 03 AD 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    83 09 34 00 36 00 35 00 47 00 42 00 73 00 61 00 6D 00 73 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0F 00 00 00 00 02 00 00 80 00 0A 28 00 00 03 30 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    F8 FF FF FF FF FF FF FF 03 00 00 00 04 00 00 00 05 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    File System FS_EXFAT
    Free Disk Size -1 clusters
    Cluster Size 256 sectors
    Sector Size 512 bytes
    
    Change drive
    A_00001.dat
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 10 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 10 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 11 00 00 00 00 02 00 00 80 00 0A 28 00 00 03 AD 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    83 09 34 00 36 00 35 00 47 00 42 00 73 00 61 00 6D 00 73 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 11 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    stat FR_OK 0
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 12 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 12 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 13 00 00 00 00 02 00 00 00 00 0A 2A 00 00 03 AD 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)512
    83 09 34 00 36 00 35 00 47 00 42 00 73 00 61 00 6D 00 73 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 13 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 14 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 14 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 15 00 00 00 00 02 00 00 80 00 0A 28 00 00 03 A8 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 15 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
     opened FR_OK 0
    
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 16 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 16 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 17 00 00 00 00 20 00 00 00 00 0A 2A 00 00 03 B4 00 00 00 10 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)8192
    30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 17 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 18 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 18 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 19 00 00 00 00 20 00 00 00 00 0A 2A 00 00 03 B4 10 00 00 10 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)8192
    31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 19 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1B 00 00 00 00 20 00 00 00 00 0A 2A 00 00 03 B4 20 00 00 10 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)8192
    32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    // ...

  16. #116
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,220
    Quote Originally Posted by defragster View Post
    Seems it may think a bit more with 2K buffer? - then SPew Storm love that FAST USB output ...::
    Not sure what is going on,
    the logger examples does run for a long time, so created new test version with shorter execution time (on GitHub)
    ( only 1 file with 2 records)
    it stops regularly and T$ start blinking

    Code:
    Test logger_RawWrite
    BUFFSIZE :8192
    Dev Type :2:/
    USB2 PLL running
     reset waited 6
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 2000C000
    periodictable = 2000C000
    port change: 10001803
        connect
      begin reset
    port change: 18001205
      port enabled
      end recovery
    new_Device: 480 Mbit/sec
    new_Pipe
    enumeration:
    enumeration:
    enumeration:
    Device Descriptor:
      12 01 10 02 00 00 00 40 64 85 00 10 00 11 01 02 03 01 
        VendorID = 8564, ProductID = 1000, Version = 1100
        Class/Subclass/Protocol = 0 / 0 / 0
        Number of Configurations = 1
    enumeration:
    enumeration:
    Manufacturer: JetFlash
    enumeration:
    Product: Mass Storage Device
    enumeration:
    Serial Number: 187QBL7G6GBG84U2
    enumeration:
    Config data length = 32
    enumeration:
    Configuration Descriptor:
      09 02 20 00 01 01 00 80 96 
        NumInterfaces = 1
        ConfigurationValue = 1
      09 04 00 00 02 08 06 50 00 
        Interface = 0
        Number of endpoints = 2
        Class/Subclass/Protocol = 8(Mass Storage) / 6(SCSI) / 80(Bulk Only)
      07 05 01 02 00 02 00 
        Endpoint = 1 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 82 02 00 02 00 
        Endpoint = 2 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
    enumeration:
    msController claim this=2000B800
    Descriptor 4 = INTERFACE
    msController claim this=2000B800
    09 04 00 00 02 08 06 50 00 07 05 01 02 00 02 00 07 05 82 02 00 02 00 
    numendpoint=2
    endpointIn=82
    endpointOut=1
    packet size in (msController) = 512
    packet size out (msController) = 512
    polling intervalIn = 0
    polling intervalOut = 0
    new_Pipe
    new_Pipe
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 02 00 00 00 00 00 00 00 80 00 06 1B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 02 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 03 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 03 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 04 00 00 00 24 00 00 00 80 00 06 12 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 36
    00 80 06 02 1F 73 6D 69 4A 65 74 46 6C 61 73 68 54 72 61 6E 73 63 65 6E 64 20 31 32 38 47 42 20 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 04 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 05 00 00 00 08 00 00 00 80 00 0A 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 8
    0E A8 FF FF 00 00 02 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 05 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 06 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 06 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 07 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 07 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 08 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 08 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 09 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 03 C0 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    EB 58 90 4D 53 44 4F 53 35 2E 30 00 02 40 7E 15 02 00 00 00 00 F8 00 00 3F 00 FF 00 C0 03 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 09 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0B 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 03 C1 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    52 52 61 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    File System FS_FAT32
    Free Disk Size 3617655 clusters
    Cluster Size 64 sectors
    Sector Size 512 bytes
    
    Change drive
    A_00001.dat
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0D 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C0 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    54 72 61 6E 73 63 65 6E 64 20 20 08 00 00 00 00 00 00 00 00 00 00 56 5A 7E 33 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0F 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C1 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    5A 5F 30 30 30 31 36 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 42 0F 00 00 7D 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 10 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 10 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 11 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C2 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    5A 5F 30 30 30 33 32 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 E2 1E 00 00 7D 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 11 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 12 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 12 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 13 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C3 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    5A 5F 30 30 30 34 38 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 82 2E 00 00 7D 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 13 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 14 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 14 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 15 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C4 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    5A 5F 30 30 30 36 34 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 22 3E 00 00 7D 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 15 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 16 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 16 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 17 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C5 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    5A 5F 30 30 30 38 30 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 C2 4D 00 00 7D 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 17 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 18 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 18 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 19 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C6 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    5A 5F 30 30 30 39 36 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 62 5D 00 00 7D 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 19 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1B 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C7 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    58 5F 30 30 30 31 32 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 FD 77 00 00 F4 01 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1D 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C8 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    58 5F 30 30 30 32 38 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 3D 97 00 00 F4 01 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1F 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C9 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    58 5F 30 30 30 34 34 20 44 41 54 20 10 00 00 00 21 50 00 00 01 00 00 00 21 50 C1 0A 00 00 F4 01 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 20 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 20 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 21 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 CA 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    58 5F 30 30 30 36 30 20 44 41 54 20 10 00 00 00 21 50 00 00 01 00 00 00 21 50 41 49 00 00 F4 01 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 21 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 22 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 22 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 23 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 CB 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    58 5F 30 30 30 37 36 20 44 41 54 20 10 00 00 00 21 50 00 00 01 00 00 00 21 50 C1 87 00 00 F4 01 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 23 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 24 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 24 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 25 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 CC 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    58 5F 30 30 30 39 32 20 44 41 54 20 10 00 00 00 21 50 00 00 01 00 00 00 21 50 41 C6 00 00 F4 01 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 25 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    stat FR_OK 0
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 26 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 26 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 27 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C0 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    54 72 61 6E 73 63 65 6E 64 20 20 08 00 00 00 00 00 00 00 00 00 00 56 5A 7E 33 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 27 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 28 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 28 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 29 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C1 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    5A 5F 30 30 30 31 36 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 42 0F 00 00 7D 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 29 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 2A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 2B 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C2 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    5A 5F 30 30 30 33 32 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 E2 1E 00 00 7D 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 2C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 2D 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C3 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    5A 5F 30 30 30 34 38 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 82 2E 00 00 7D 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 2E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 2F 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C4 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    5A 5F 30 30 30 36 34 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 22 3E 00 00 7D 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 2F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 30 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 30 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 31 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C5 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    5A 5F 30 30 30 38 30 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 C2 4D 00 00 7D 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 31 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 32 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 32 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 33 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C6 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    5A 5F 30 30 30 39 36 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 62 5D 00 00 7D 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 33 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 34 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 34 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 35 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C7 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    58 5F 30 30 30 31 32 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 FD 77 00 00 F4 01 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 35 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 36 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 36 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 37 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C8 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    58 5F 30 30 30 32 38 20 44 41 54 20 10 00 00 00 21 50 00 00 00 00 00 00 21 50 3D 97 00 00 F4 01 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 37 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 38 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 38 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 39 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 C9 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    58 5F 30 30 30 34 34 20 44 41 54 20 10 00 00 00 21 50 00 00 01 00 00 00 21 50 C1 0A 00 00 F4 01 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 39 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 3A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 3A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 3B 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 CA 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    58 5F 30 30 30 36 30 20 44 41 54 20 10 00 00 00 21 50 00 00 01 00 00 00 21 50 41 49 00 00 F4 01 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 3B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 3C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 3C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 3D 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 CB 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    58 5F 30 30 30 37 36 20 44 41 54 20 10 00 00 00 21 50 00 00 01 00 00 00 21 50 C1 87 00 00 F4 01 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 3D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 3E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 3E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 3F 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 CC 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    58 5F 30 30 30 39 32 20 44 41 54 20 10 00 00 00 21 50 00 00 01 00 00 00 21 50 41 C6 00 00 F4 01 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 3F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 40 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 40 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 41 00 00 00 00 02 00 00 00 00 0A 2A 00 00 01 03 CC 00 00 01 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)512
    58 5F 30 30 30 39 32 20 44 41 54 20 10 00 00 00 21 50 00 00 01 00 00 00 21 50 41 C6 00 00 F4 01 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 41 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 42 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 42 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 43 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 1D 10 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    01 E9 01 00 02 E9 01 00 03 E9 01 00 04 E9 01 00 05 E9 01 00 06 E9 01 00 07 E9 01 00 08 E9 01 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 43 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 44 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 44 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 45 00 00 00 00 02 00 00 00 00 0A 2A 00 00 00 1D 10 00 00 01 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)512
    01 E9 01 00 02 E9 01 00 03 E9 01 00 04 E9 01 00 05 E9 01 00 06 E9 01 00 07 E9 01 00 08 E9 01 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 45 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 46 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 46 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 47 00 00 00 00 02 00 00 00 00 0A 2A 00 00 00 92 51 00 00 01 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)512
    01 E9 01 00 02 E9 01 00 03 E9 01 00 04 E9 01 00 05 E9 01 00 06 E9 01 00 07 E9 01 00 08 E9 01 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 47 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 48 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 48 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 49 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 CC 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    58 5F 30 30 30 39 32 20 44 41 54 20 10 00 00 00 21 50 00 00 01 00 00 00 21 50 41 C6 00 00 F4 01 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 49 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
     opened FR_OK 0
    
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 4A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 4A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 4B 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 1D 10 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    01 E9 01 00 02 E9 01 00 03 E9 01 00 04 E9 01 00 05 E9 01 00 06 E9 01 00 07 E9 01 00 08 E9 01 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 4B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 4C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 4C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 4D 00 00 00 00 80 00 00 00 00 0A 2A 00 00 7B 5D 80 00 00 40 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)32768
    30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 4D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 4E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 4E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 4F 00 00 00 00 80 00 00 00 00 0A 2A 00 00 7B 5D C0 00 00 40 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)32768
    31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 4F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 50 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 50 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 51 00 00 00 00 02 00 00 00 00 0A 2A 00 00 00 1D 10 00 00 01 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)512
    01 E9 01 00 02 E9 01 00 03 E9 01 00 04 E9 01 00 05 E9 01 00 06 E9 01 00 07 E9 01 00 08 E9 01 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 51 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 52 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 52 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 53 00 00 00 00 02 00 00 00 00 0A 2A 00 00 00 92 51 00 00 01 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)512
    01 E9 01 00 02 E9 01 00 03 E9 01 00 04 E9 01 00 05 E9 01 00 06 E9 01 00 07 E9 01 00 08 E9 01 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 53 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 54 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 54 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 55 00 00 00 00 02 00 00 80 00 0A 28 00 00 01 03 CC 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    58 5F 30 30 30 39 32 20 44 41 54 20 10 00 00 00 21 50 00 00 01 00 00 00 21 50 41 C6 00 00 F4 01 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 55 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 56 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 56 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 57 00 00 00 00 02 00 00 00 00 0A 2A 00 00 01 03 CC 00 00 01 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)512
    58 5F 30 30 30 39 32 20 44 41 54 20 10 00 00 00 21 50 00 00 01 00 00 00 21 50 41 C6 00 00 F4 01 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 57 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 58 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 58 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 59 00 00 00 00 02 00 00 00 00 0A 2A 00 00 00 03 C1 00 00 01 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)512
    52 52 61 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 59 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
     (17155906 - 1.910013 MB/s)
     (open: 1103582 us; close: 13287587 us; write: min,max: 91197 3777067 us)
    
    unmount FR_OK

  17. #117
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    That looks better … including stopped with BLINK
    Code:
     (43996 - 744.794983 MB/s)
     (open: 31993 us; close: 32000 us; write: min,max: 5968 5972 us)
    
    unmount FR_OK
    EDIT>> Got Greedy - doesn't like 32KB buffer ::
    Code:
    // …
     write FR_DISK_ERR at count # 1
    msController CallbackOut (static)
    transfer->qtd.token = 1
    msController dataOut (static)31
    55 53 42 43 18 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 64
    msController dataIn (static): 0
    ERROR Followup
    msController CallbackOut (static)
    transfer->qtd.token = 65
    msController dataOut (static)0
    ERROR Followup
    But 16KB is faster::
    Code:
     (69973 - 936.589844 MB/s)
     (open: 5016 us; close: 29000 us; write: min,max: 6945 33918 us)
    
    unmount FR_OK
    And 24KB faster yet:
    Code:
     (50996 - 1927.680542 MB/s)
     (open: 32993 us; close: 30000 us; write: min,max: 7913 12917 us)
    
    unmount FR_OK
    Full output and Done ::
    Code:
    Test logger_RawWrite
    BUFFSIZE :8192
    Dev Type :2:/
    USB2 PLL running
     reset waited 6
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 2000C000
    periodictable = 2000C000
    port change: 10001803
        connect
      begin reset
    port change: 18001205
      port enabled
      end recovery
    new_Device: 480 Mbit/sec
    new_Pipe
    enumeration:
    enumeration:
    enumeration:
    Device Descriptor:
      12 01 00 02 00 00 00 40 FC 04 25 0C 03 01 02 03 01 01 
        VendorID = 04FC, ProductID = 0C25, Version = 0103
        Class/Subclass/Protocol = 0 / 0 / 0
        Number of Configurations = 1
    enumeration:
    enumeration:
    Manufacturer: Sunplus Technology Inc.
    enumeration:
    Product: USB to Serial-ATA bridge
    enumeration:
    Serial Number: SAMSUNG HDS20BJ9FSC07429      
    enumeration:
    Config data length = 32
    enumeration:
    Configuration Descriptor:
      09 02 20 00 01 01 04 C0 01 
        NumInterfaces = 1
        ConfigurationValue = 1
      09 04 00 00 02 08 06 50 05 
        Interface = 0
        Number of endpoints = 2
        Class/Subclass/Protocol = 8(Mass Storage) / 6(SCSI) / 80(Bulk Only)
      07 05 81 02 00 02 00 
        Endpoint = 1 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 02 02 00 02 00 
        Endpoint = 2 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
    enumeration:
    msController claim this=2000AF20
    Descriptor 4 = INTERFACE
    msController claim this=2000AF20
    09 04 00 00 02 08 06 50 05 07 05 81 02 00 02 00 07 05 02 02 00 02 00 
    numendpoint=2
    endpointIn=81
    endpointOut=2
    packet size in (msController) = 512
    packet size out (msController) = 512
    polling intervalIn = 0
    polling intervalOut = 0
    new_Pipe
    new_Pipe
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    control CallbackIn (msController)
    00 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 02 00 00 00 00 00 00 00 80 00 06 1B 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 02 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 03 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 03 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 04 00 00 00 24 00 00 00 80 00 06 12 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 36
    00 00 02 02 1F 00 00 00 53 41 4D 53 55 4E 47 20 48 44 35 30 32 48 4A 20 20 20 20 20 20 20 20 20 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 04 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 05 00 00 00 08 00 00 00 80 00 0A 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 8
    3A 38 60 2F 00 00 02 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 05 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 06 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 06 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 07 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    33 C0 8E D0 BC 00 7C 8E C0 8E D8 BE 00 7C BF 00 06 B9 00 02 FC F3 A4 50 68 1C 06 CB FB B9 04 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 07 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 08 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 08 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 09 00 00 00 00 02 00 00 80 00 0A 28 00 00 00 08 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    EB 52 90 4E 54 46 53 20 20 20 20 00 02 08 00 00 00 00 00 00 00 F8 00 00 3F 00 FF 00 00 08 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 09 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0B 00 00 00 00 02 00 00 80 00 0A 28 00 00 03 28 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    EB 76 90 45 58 46 41 54 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0D 00 00 00 00 02 00 00 80 00 0A 28 00 00 03 AD 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    83 09 34 00 36 00 35 00 47 00 42 00 73 00 61 00 6D 00 73 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 0F 00 00 00 00 02 00 00 80 00 0A 28 00 00 03 30 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    F8 FF FF FF FF FF FF FF 03 00 00 00 04 00 00 00 05 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 0F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    File System FS_EXFAT
    Free Disk Size -1 clusters
    Cluster Size 256 sectors
    Sector Size 512 bytes
    
    Change drive
    A_00001.dat
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 10 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 10 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 11 00 00 00 00 02 00 00 80 00 0A 28 00 00 03 AD 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    83 09 34 00 36 00 35 00 47 00 42 00 73 00 61 00 6D 00 73 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 11 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    stat FR_OK 0
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 12 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 12 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 13 00 00 00 00 02 00 00 00 00 0A 2A 00 00 03 AD 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)512
    83 09 34 00 36 00 35 00 47 00 42 00 73 00 61 00 6D 00 73 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 13 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 14 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 14 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 15 00 00 00 00 02 00 00 80 00 0A 28 00 00 03 A8 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    FF 1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 15 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
     opened FR_OK 0
    
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 16 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 16 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 17 00 00 00 00 80 00 00 00 00 0A 2A 00 00 03 B4 00 00 00 40 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)32768
    30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 30 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 17 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 18 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 18 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 19 00 00 00 00 80 00 00 00 00 0A 2A 00 00 03 B4 40 00 00 40 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)32768
    31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 31 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 19 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1A 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1A 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1B 00 00 00 00 02 00 00 00 00 0A 2A 00 00 03 A8 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)512
    FF 1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1B 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1C 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1C 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1D 00 00 00 00 02 00 00 80 00 0A 28 00 00 03 AD 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 512
    83 09 34 00 36 00 35 00 47 00 42 00 73 00 61 00 6D 00 73 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ** ????
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1D 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1E 00 00 00 00 00 00 00 80 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1E 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)31
    55 53 42 43 1F 00 00 00 00 02 00 00 00 00 0A 2A 00 00 03 AD 00 00 00 01 00 00 00 00 00 00 00 
    msController CallbackOut (static)
    transfer->qtd.token = 0
    msController dataOut (static)512
    83 09 34 00 36 00 35 00 47 00 42 00 73 00 61 00 6D 00 73 00 00 00 00 00 00 00 00 00 00 00 00 00 
    msController CallbackIn (static)
    transfer->qtd.token = 0
    msController dataIn (static): 13
    55 53 42 53 1F 00 00 00 00 00 00 00 00 
    ** CSWSIGNATURE
     (43996 - 744.794983 MB/s)
     (open: 31993 us; close: 32000 us; write: min,max: 5968 5972 us)
    
    unmount FR_OK

  18. #118
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    And it works with no :: //#define USBHOST_PRINT_DEBUG
    #define MXFN 4 // maximal number of files //was 100
    #define MXRC 8 // number of records in file // was 1000
    T$ USB USB SATA adapter to 465GB Samsung HDD::
    Code:
    Test logger_RawWrite
    BUFFSIZE :24576
    Dev Type :2:/
    File System FS_EXFAT
    Free Disk Size -1 clusters
    Cluster Size 256 sectors
    Sector Size 512 bytes
    
    Change drive
    A_00001.dat
    stat FR_OK 0
     opened FR_OK 0
    
     (108996 - 901.904663 MB/s)
     (open: 32994 us; close: 25000 us; write: min,max: 7934 12938 us)
    
    A_00002.dat
    stat FR_OK 11
     opened FR_OK 0
    
     (150987 - 651.075928 MB/s)
     (open: 14999 us; close: 54000 us; write: min,max: 7938 17925 us)
    
    A_00003.dat
    stat FR_NO_FILE 17
     opened FR_OK 0
    
     (126991 - 774.102112 MB/s)
     (open: 29996 us; close: 33000 us; write: min,max: 7938 17929 us)
    
    A_00004.dat
    stat FR_NO_FILE 1d
     opened FR_OK 0
    
     (135991 - 722.871338 MB/s)
     (open: 29996 us; close: 42000 us; write: min,max: 7938 17928 us)
    
    unmount FR_OK
    Started longer no debug test with original 100 and 1000 - will be a bit …
    A_00001.dat
    stat FR_OK 0
    opened FR_OK 0

    .................................................. ..............
    .................................... (10632996 - 9.245184 MB/s)
    (open: 31994 us; close: 112000 us; write: min,max: 7934 22937 us)
    about 20 minutes?
    Code:
    // …
    
    ................................................................
    .................................... (10570991 - 9.299412 MB/s)
     (open: 299995 us; close: 35000 us; write: min,max: 7936 33938 us)
    
    A_00100.dat
    stat FR_NO_FILE 11f2d
     opened FR_OK 0
    
    ................................................................
    .................................... (10537991 - 9.328533 MB/s)
     (open: 299995 us; close: 28000 us; write: min,max: 7936 17928 us)
    
    unmount FR_OK
    Last edited by defragster; 05-15-2019 at 07:03 AM.

  19. #119
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    Plugged the MINIMAL adapter 'KINGWIN' into powered hub and same failure to start after showing init setup strings. It is about like this : Kingwin ADP-07 USB to SATA Adapter

    The AZIO unit not on Newegg now - but it is of this type 'docking':
    USB 3.0 to SATA External Hard Drive Docking Station

    Except as noted AZIO is USB2 - had for some years. I have the USB 3 - maybe this Sabrent brand I have not tried yet as noted - it was often fitful even on a PC to mount drives.

    This 465GB drive if not noted is 3.5". I have other 'box housing units' - the one that failed on SSD drive was for 2.5" drives - so may try another tomorrow and the USB 'docking station'.

    NOTE: That external housing also fails going through the powered HUB - but direct USB cable is back to working … that was a scary bit ...

  20. #120
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    Edited the sample to remove compiler warnings - and the MB/sec calc had 1000 hardcoded - that's why the lower blocks/file #'s looked to high - and why bumping to 10,000 looked so low. Seems to be about 9.3 MB/s.

    Code:
    //Copyright 2019 by Walter Zimmer
    // Version 07-may-19
    //
    #include "uSDFS.h"
    
    #define TEST_DRV 2
    //
    #define MXFN 1000 // maximal number of files //was 100
    #define MXRC 10000 // number of records in file // was 1000
    const char *fnamePrefix = "B";
    
    //
    #if TEST_DRV == 0
    const char *Dev = "0:/";  // SPI
    #elif TEST_DRV == 1
    const char *Dev = "1:/";  // SDHC
    #elif TEST_DRV == 2
    const char *Dev = "2:/";  // USB
    #endif
    
    FRESULT rc;        /* Result code */
    FATFS fatfs;      /* File system object */
    FIL fil;        /* File object */
    
    #if defined(__MK20DX256__)
    #define BUFFSIZE (2*1024) // size of buffer to be written
    #elif defined(__MK66FX1M0__)
    #define BUFFSIZE (8*1024) // size of buffer to be written
    #elif defined(__IMXRT1062__)
    #define BUFFSIZE (24*1024) // size of buffer to be written
    #endif
    
    uint32_t buffer[BUFFSIZE];
    UINT wr;
    
    /* Stop with error message */
    void die(const char *text, FRESULT rc)
    { Serial.printf("%s: Failed with rc=%s.\r\n", text, FR_ERROR_STRING[rc]);  while (1) asm("wfi"); }
    
    //=========================================================================
    void blink(uint16_t msec)
    {
      digitalWriteFast(13, !digitalReadFast(13)); delay(msec);
    }
    
    void setup()
    {
      // wait for serial line to come up
      pinMode(13, OUTPUT);
      pinMode(13, HIGH);
    
      while (!Serial);
      Serial.println("Test logger_RawWrite");
      Serial.print("BUFFSIZE :");  Serial.println(BUFFSIZE);
      Serial.print("Dev Type :");  Serial.println(Dev);
      if ((rc = f_mount (&fatfs, Dev, 1))) die("Mount", rc);    /* Mount/Unmount a logical drive */
    
      Serial.printf("File System %s\n", fileSystem[fatfs.fs_type]);
      Serial.printf("Free Disk Size %d clusters\n", fatfs.free_clst);
      Serial.printf("Cluster Size %d sectors\n", fatfs.csize);
    #if FF_MAX_SS != FF_MIN_SS
      Serial.printf("Sector Size %d bytes\n", fatfs.ssize);
    #else
      Serial.printf("Sector Size %d bytes\n", FF_MIN_SS);
    #endif
      //-----------------------------------------------------------
      Serial.printf("\nChange drive\n");
      if ((rc = f_chdrive(Dev))) die("chdrive", rc);
    }
    
    void loop()
    {
      static uint32_t count = 0;
      static uint32_t ifn = 0;
      static uint32_t isFileOpen = 0;
      static char filename[80];
      static uint32_t t0 = 0;
      static uint32_t t1 = 0;
      static uint32_t dtwmin = 1 << 31, dtwmax = 0;
      static uint32_t dto = 1 << 31, dtc = 0;
    
      if (ifn > MXFN) { blink(500); return; }
    
      if (!count)
      {
        // close file
        if (isFileOpen)
        { dtc = micros();
          //close file
          if ((rc = f_close(&fil))) die("close", rc);
          //
          isFileOpen = 0;
          t1 = micros();
          dtc = t1 - dtc;
          float MBs = (MXRC * BUFFSIZE * 4.0f) / (1.0f * (t1 - t0));
          Serial.printf(" (%d - %f MB/s)\n (open: %d us; close: %d us; write: min,max: %d %d us)\n\r",
                        t1 - t0, MBs, dto, dtc, dtwmin, dtwmax);
          dtwmin = 1 << 31; dtwmax = 0;
        }
      }
    
      //
      if (!isFileOpen)
      {
        // open new file
        ifn++;
        if (ifn > MXFN)
        { rc = f_unmount(Dev);
          Serial.print("unmount "); Serial.println(FR_ERROR_STRING[rc]);
          pinMode(13, OUTPUT); return;
        } // at end of test: prepare for blinking
    
        dto = micros();
        sprintf(filename, "%s_%05u.dat", fnamePrefix, (unsigned int)ifn);
        Serial.println(filename);
        //
        // check status of file
        rc = f_stat(filename, 0);
        Serial.printf("stat %s %x\n", FR_ERROR_STRING[rc], fil.obj.sclust);
    
        rc = f_open(&fil, filename, FA_WRITE | FA_CREATE_ALWAYS);
        Serial.printf(" opened %s %x\n\r", FR_ERROR_STRING[rc], fil.obj.sclust);
        // check if file is Good
        if (rc == FR_INT_ERR)
        { // only option is to close file
          rc = f_close(&fil);
          if (rc == FR_INVALID_OBJECT)
          { Serial.println("unlinking file");
            rc = f_unlink(filename);
            if (rc) die("unlink", rc);
          }
          else
            die("close", rc);
          // retry open file
          if ((rc = f_open(&fil, filename, FA_WRITE | FA_CREATE_ALWAYS))) die("open", rc);
        }
        //
        isFileOpen = 1;
        t0 = micros();
        dto = t0 - dto;
      }
    
      if (isFileOpen)
      {
        // fill buffer
        for (int ii = 0; ii < BUFFSIZE; ii++) buffer[ii] = '0' + (count % 10);
        count++;
        //write data to file
        if (!(count % 10))Serial.printf(".");
        if (!(count % 640)) Serial.println(); Serial.flush();
        //
        uint32_t ta = micros();
        rc = f_write(&fil, buffer, BUFFSIZE * 4, &wr);
        uint32_t tb = micros();
        if (rc == FR_DISK_ERR) // IO error
        { Serial.printf(" write FR_DISK_ERR at count # %d\n", count);
          // only option is to close file
          // force closing file
          count = MXRC;
        }
        else if (rc) die("write", rc);
        //
        uint32_t dt = tb - ta;
        if (dt < dtwmin) dtwmin = dt;
        if (dt > dtwmax) dtwmax = dt;
        //
        count %= MXRC;
      }
    }
    Started a 1000 file by 10,000 block test to run in coming hours - again with 24K buffer blocks:
    File System FS_EXFAT
    Free Disk Size -1 clusters
    Cluster Size 256 sectors
    Sector Size 512 bytes

    Change drive
    B_00001.dat
    stat FR_OK 0
    opened FR_OK 0

    .................................................. ..............
    // …
    ........................................ (105074987 - 9.355604 MB/s)
    (open: 242003 us; close: 26000 us; write: min,max: 7916 34918 us)

  21. #121
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,220
    Quote Originally Posted by defragster View Post
    Edited the sample to remove compiler warnings - and the MB/sec calc had 1000 hardcoded - that's why the lower blocks/file #'s looked to high - and why bumping to 10,000 looked so low. Seems to be about 9.3 MB/s.
    Thanks, updated code on GitHub

  22. #122
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    8,781
    Good work folks!

    Quote Originally Posted by WMXZ View Post
    Thanks, updated code on GitHub
    Cool, also see why the *4 in the MB math … as the 24K buffer is 4 byte words - or 98304 bytes. And 32K buffer words that fails is 131072 bytes.

    Testing going well …
    ........................................ (105104991 - 9.352934 MB/s)
    (open: 434995 us; close: 36000 us; write: min,max: 7916 46916 us)

    B_00048.dat
    stat FR_NO_FILE 66912
    If I'm reading right ... 105 seconds per file - 1,000 files - Yikes - 29 hours … yep 80 minutes since last post for ~45 files … is 29 hours …

    Another positive note - re-upload interrupting during testing doesn't seem to have caused any overt trouble. Will put the drive back on the PC and do a CHKDSK … And am I reading code right - all should be filled with same values "0"+[0...9] last digit of count in 32 bits?

    What's the 9 MB/sec speed limit come from? Not sure what this older drive is capable of ... I have not looked at the code at all - is this blocking write and wait or DMA transfer? Drive activity light is constant looking.

    MCU is a bit warm to touch - but not feeling anything like the 120 F when it was in SPAZ SPEW mode the other day. Okay grabbed thermom … 104.9 max case temp on MCU - 40.5C. For ref the HDD in the doc is ~96 F.

    @mjs513 - maybe a quick temp check in the code - would be fun to track what made it hot for some MAX testing.

  23. #123
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,220
    Quote Originally Posted by defragster View Post
    Cool, also see why the *4 in the MB math as the 24K buffer is 4 byte words - or 98304 bytes. And 32K buffer words that fails is 131072 bytes.

    Testing going well

    If I'm reading right ... 105 seconds per file - 1,000 files - Yikes - 29 hours yep 80 minutes since last post for ~45 files is 29 hours

    Another positive note - re-upload interrupting during testing doesn't seem to have caused any overt trouble. Will put the drive back on the PC and do a CHKDSK And am I reading code right - all should be filled with same values "0"+[0...9] last digit of count in 32 bits?

    What's the 9 MB/sec speed limit come from? Not sure what this older drive is capable of ... I have not looked at the code at all - is this blocking write and wait or DMA transfer? Drive activity light is constant looking.
    Some explanations, I declared the buffer as uint32_t to have it word aligned, even if disk i/o is done in multiple of 512 bytes.

    The original idea of the logger_RawWrite was to get a feeling on possible latencies during open/close and write, so to dimension the write queue (or circular buffer) correctly to avoid data dropouts during uSD access.
    This allows to gain some experience on fresh formatted disks, rewriting old files, comparing FAT32 with exFAT etc.

  24. #124
    Senior Member+
    Join Date
    Jul 2014
    Location
    New York
    Posts
    3,451
    @degragster

    Glad you got it working. Seems like every time I go to sleep and wake up a lot happens on these threads.

    I got one of these: https://www.amazon.com/gp/product/B0...?ie=UTF8&psc=1 and it seems to work. I have similar one as the AZIO as well - I should give it a try, was wondering if it would work as well.

    As for your logger problem - had the same issue as your HDD but that sounds like it is solved now - will have to give it a try.

    Back in post#93 and 94 I had some logger results with different usb sticks and the SSD error as well.

  25. #125
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,220
    @wwatson, @mjs513, @defragster
    Somewhat OT
    if you have exhausted the USB disks available for testing, I put another test program to GitHub that I plan to use for testing all common FS and Disk formats.
    At the moment I'm still on the road, and I only have a T$ and a blank T3.6, so my testing is somewhat limited

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •