Forum Rule: Always post complete source code & details to reproduce any issue!
Page 4 of 5 FirstFirst ... 2 3 4 5 LastLast
Results 76 to 100 of 104

Thread: Teensy 3.6 USB Host support

  1. #76
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,631
    @LERAY - hard to say. Each type of device installed and in many cases each device that works is one that a few of us went through and had to reverse engineer to figure out what it is and how to support it.

    As I don't have one of those displays, it will probably take some guessing and work on your end... First off, need to figure out what this device registers as when you plug it in...
    In many cases like this, I use a Linux box of some type. Sometimes my secondary PC running Ubuntu, sometimes an RPI or the like... And then I dump out everything, I can about the device. Plus I also capture what output there is when you plug it into T3.6 (or T4). I then also turn on debug...

    Some of these steps are shown in several of the posts about this library, including: https://forum.pjrc.com/threads/49358...l=1#post204854

    And when I say turn on debug printing, you do that by editing the usbhost_t36.h file and uncomment the line: //#define USBHOST_PRINT_DEBUG

  2. #77
    Member
    Join Date
    Feb 2015
    Location
    Rians in Provence, France
    Posts
    71
    Thanks, Kurt.
    Concerning the screens, I think that any standard HDMI or VGA touchscreen have the same problem.
    Except the Buydisplay 10' which is another kind of low cost display with flat ribbon.
    I uncomment the #define.
    Here are the results :

    DEBUG OUTPUT WITH LG 17MB15' Touchscreen or with other USB touchscreen (not running):

    USB Host Testing
    960
    sizeof Device = 36
    sizeof Pipe = 96
    sizeof Transfer = 64
    power up USBHS PHY
    reset waited 5
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 1FFF6000
    periodictable = 1FFF6000


    DEBUG OUTPUT WITH 10' BUYDISPLAY (Running correctly):
    HID: 0 - 01 19 10 D5 14 00 00 00
    begin, usage=10000
    type= 62
    min= 0
    max= 1
    reportcount=1
    usage count=255
    Input, total bits=1
    usage = 90001 data = 1
    begin, usage=10000
    type= 62
    min= 0
    max= 10000
    reportcount=2
    usage count=2
    Input, total bits=32
    usage = 10030 data = 4121
    usage = 10031 data = 5333
    Mouse: buttons = 1, mouseX = 4121, mouseY = 5333, wheel = 0, wheelH = 0
    HID: 0 - 01 19 10 C4 14 00 00 00
    begin, usage=10000
    type= 62
    min= 0
    max= 1
    reportcount=1
    usage count=255
    Input, total bits=1
    usage = 90001 data = 1
    begin, usage=10000
    type= 62
    min= 0
    max= 10000
    reportcount=2
    usage count=2
    Input, total bits=32
    usage = 10030 data = 4121
    usage = 10031 data = 5316
    Mouse: buttons = 1, mouseX = 4121, mouseY = 5316, wheel = 0, wheelH = 0
    HID: 0 - 01 19 10 C4 14 00 00 00
    begin, usage=10000
    type= 62
    min= 0
    max= 1
    reportcount=1
    usage count=255
    Input, total bits=1
    usage = 90001 data = 1
    begin, usage=10000
    type= 62
    min= 0
    max= 10000
    reportcount=2
    usage count=2
    Input, total bits=32
    usage = 10030 data = 4121
    usage = 10031 data = 5316
    Mouse: buttons = 1, mouseX = 4121, mouseY = 5316, wheel = 0, wheelH = 0
    HID: 0 - 00 19 10 C4 14 00 00 00
    begin, usage=10000
    type= 62
    min= 0
    max= 1
    reportcount=1
    usage count=255
    Input, total bits=1
    usage = 90001 data = 0
    begin, usage=10000
    type= 62
    min= 0
    max= 10000
    reportcount=2
    usage count=2
    Input, total bits=32
    usage = 10030 data = 4121
    usage = 10031 data = 5316
    Mouse: buttons = 0, mouseX = 4121, mouseY = 5316, wheel = 0, wheelH = 0

  3. #78
    Member
    Join Date
    Feb 2015
    Location
    Rians in Provence, France
    Posts
    71
    Thanks, Kurt
    Concerning the screens, I think that except the low cost 10' Buydisplay screen which is running fine, all standard HDMI or VGA Touchscreens have the same problem.
    I uncommented the # define as you suggested :

    Here are the results :
    DEBUG OUTPUT WITH LG 17MB15' Touchscreen or with other USB touchscreen (not running):

    USB Host Testing
    960
    sizeof Device = 36
    sizeof Pipe = 96
    sizeof Transfer = 64
    power up USBHS PHY
    reset waited 5
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 1FFF6000
    periodictable = 1FFF6000


    DEBUG OUTPUT WITH 10' BUYDISPLAY (Running correctly):
    HID: 0 - 01 19 10 D5 14 00 00 00
    begin, usage=10000
    type= 62
    min= 0
    max= 1
    reportcount=1
    usage count=255
    Input, total bits=1
    usage = 90001 data = 1
    begin, usage=10000
    type= 62
    min= 0
    max= 10000
    reportcount=2
    usage count=2
    Input, total bits=32
    usage = 10030 data = 4121
    usage = 10031 data = 5333
    Mouse: buttons = 1, mouseX = 4121, mouseY = 5333, wheel = 0, wheelH = 0
    HID: 0 - 01 19 10 C4 14 00 00 00
    begin, usage=10000
    type= 62
    min= 0
    max= 1
    reportcount=1
    usage count=255
    Input, total bits=1
    usage = 90001 data = 1
    begin, usage=10000
    type= 62
    min= 0
    max= 10000
    reportcount=2
    usage count=2
    Input, total bits=32
    usage = 10030 data = 4121
    usage = 10031 data = 5316
    Mouse: buttons = 1, mouseX = 4121, mouseY = 5316, wheel = 0, wheelH = 0
    HID: 0 - 01 19 10 C4 14 00 00 00
    begin, usage=10000
    type= 62
    min= 0
    max= 1
    reportcount=1
    usage count=255
    Input, total bits=1
    usage = 90001 data = 1
    begin, usage=10000
    type= 62
    min= 0
    max= 10000
    reportcount=2
    usage count=2
    Input, total bits=32
    usage = 10030 data = 4121
    usage = 10031 data = 5316
    Mouse: buttons = 1, mouseX = 4121, mouseY = 5316, wheel = 0, wheelH = 0
    HID: 0 - 00 19 10 C4 14 00 00 00
    begin, usage=10000
    type= 62
    min= 0
    max= 1
    reportcount=1
    usage count=255
    Input, total bits=1
    usage = 90001 data = 0
    begin, usage=10000
    type= 62
    min= 0
    max= 10000
    reportcount=2
    usage count=2
    Input, total bits=32
    usage = 10030 data = 4121
    usage = 10031 data = 5316
    Mouse: buttons = 0, mouseX = 4121, mouseY = 5316, wheel = 0, wheelH = 0

  4. #79
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,631
    Sorry, I am not seeing the data I would expect...

    With the debug turned on, I would expect some of the information about the device being plugged in, plus information on enumeration, ...

    For example I used the mouse sketch as it is setup with lots of devices defined, including a few HUB objects and the like.

    On a T3.6, I built and ran it and plugged in a Saleae Logic Analyzer. Ut was the nearest USB device to me that I know we don't support.

    And when I startup the sketch and then plug it in, I get output like:
    Code:
    USB Host Testing
    960
    sizeof Device = 36
    sizeof Pipe = 96
    sizeof Transfer = 64
    power up USBHS PHY
     reset waited 5
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 1FFF6000
    periodictable = 1FFF6000
    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 FF FF FF 40 A9 21 04 10 00 00 00 00 00 01 
        VendorID = 21A9, ProductID = 1004, Version = 0000
        Class/Subclass/Protocol = 255 / 255 / 255
        Number of Configurations = 1
    enumeration:
    Config data length = 171
    enumeration:
    Configuration Descriptor:
      09 02 AB 00 01 01 00 80 32 
        NumInterfaces = 1
        ConfigurationValue = 1
      09 04 00 00 00 FF FF FF 00 
        Interface = 0
        Number of endpoints = 0
        Class/Subclass/Protocol = 255 / 255 / 255
      09 04 00 01 06 FF FF FF 00 
        Interface = 0
        Number of endpoints = 6
        Class/Subclass/Protocol = 255 / 255 / 255
      07 05 01 02 00 02 00 
        Endpoint = 1 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      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
      07 05 04 02 00 02 00 
        Endpoint = 4 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 86 02 00 02 00 
        Endpoint = 6 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 88 02 00 02 00 
        Endpoint = 8 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      09 04 00 02 06 FF FF FF 00 
        Interface = 0
        Number of endpoints = 6
        Class/Subclass/Protocol = 255 / 255 / 255
      07 05 01 03 40 00 01 
        Endpoint = 1 OUT
        Type = Interrupt
        Max Size = 64
        Polling Interval = 1
      07 05 81 03 40 00 01 
        Endpoint = 1 IN
        Type = Interrupt
        Max Size = 64
        Polling Interval = 1
      07 05 02 03 00 02 01 
        Endpoint = 2 OUT
        Type = Interrupt
        Max Size = 512
        Polling Interval = 1
      07 05 04 02 00 02 00 
        Endpoint = 4 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 86 03 00 02 01 
        Endpoint = 6 IN
        Type = Interrupt
        Max Size = 512
        Polling Interval = 1
      07 05 88 02 00 02 00 
        Endpoint = 8 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      09 04 00 03 06 FF FF FF 00 
        Interface = 0
        Number of endpoints = 6
        Class/Subclass/Protocol = 255 / 255 / 255
      07 05 01 03 40 00 01 
        Endpoint = 1 OUT
        Type = Interrupt
        Max Size = 64
        Polling Interval = 1
      07 05 81 03 40 00 01 
        Endpoint = 1 IN
        Type = Interrupt
        Max Size = 64
        Polling Interval = 1
      07 05 02 01 00 02 01 
        Endpoint = 2 OUT
        Type = Isochronous
        Max Size = 512
        Polling Interval = 1
      07 05 04 02 00 02 00 
        Endpoint = 4 OUT
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
      07 05 86 01 00 02 01 
        Endpoint = 6 IN
        Type = Isochronous
        Max Size = 512
        Polling Interval = 1
      07 05 88 02 00 02 00 
        Endpoint = 8 IN
        Type = Bulk
        Max Size = 512
        Polling Interval = 0
    enumeration:
    USBHub memory usage = 960
    USBHub claim_device this=1FFF3580
    USBHub memory usage = 960
    USBHub claim_device this=1FFF2580
    KeyboardController claim this=1FFF2020
    KeyboardController claim this=1FFF22C0
    HIDParser claim this=1FFF4660
    HIDParser claim this=1FFF2940
    HIDParser claim this=1FFF2F60
    HIDParser claim this=1FFF4C80
    HIDParser claim this=1FFF3940
    JoystickController claim this=1FFF5420
    BluetoothController claim this=1FFF3FC0
    Descriptor 4 = INTERFACE
    KeyboardController claim this=1FFF2020
    09 04 00 00 00 FF FF FF 00 09 04 00 01 06 FF FF FF 00 07 05 01 02 00 02 00 07 05 81 02 00 02 00 07 05 02 02 00 02 00 07 05 04 02 00 02 00 07 05 86 02 00 02 00 07 05 88 02 00 02 00 09 04 00 02 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 03 00 02 01 07 05 04 02 00 02 00 07 05 86 03 00 02 01 07 05 88 02 00 02 00 09 04 00 03 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 01 00 02 01 07 05 04 02 00 02 00 07 05 86 01 00 02 01 07 05 88 02 00 02 00 
    KeyboardController claim this=1FFF22C0
    09 04 00 00 00 FF FF FF 00 09 04 00 01 06 FF FF FF 00 07 05 01 02 00 02 00 07 05 81 02 00 02 00 07 05 02 02 00 02 00 07 05 04 02 00 02 00 07 05 86 02 00 02 00 07 05 88 02 00 02 00 09 04 00 02 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 03 00 02 01 07 05 04 02 00 02 00 07 05 86 03 00 02 01 07 05 88 02 00 02 00 09 04 00 03 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 01 00 02 01 07 05 04 02 00 02 00 07 05 86 01 00 02 01 07 05 88 02 00 02 00 
    HIDParser claim this=1FFF4660
    HIDParser claim this=1FFF2940
    HIDParser claim this=1FFF2F60
    HIDParser claim this=1FFF4C80
    HIDParser claim this=1FFF3940
    JoystickController claim this=1FFF5420
    09 04 00 00 00 FF FF FF 00 09 04 00 01 06 FF FF FF 00 07 05 01 02 00 02 00 07 05 81 02 00 02 00 07 05 02 02 00 02 00 07 05 04 02 00 02 00 07 05 86 02 00 02 00 07 05 88 02 00 02 00 09 04 00 02 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 03 00 02 01 07 05 04 02 00 02 00 07 05 86 03 00 02 01 07 05 88 02 00 02 00 09 04 00 03 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 01 00 02 01 07 05 04 02 00 02 00 07 05 86 01 00 02 01 07 05 88 02 00 02 00 
    Jtype=0
    BluetoothController claim this=1FFF3FC0
    Descriptor 4 = INTERFACE
    KeyboardController claim this=1FFF2020
    09 04 00 01 06 FF FF FF 00 07 05 01 02 00 02 00 07 05 81 02 00 02 00 07 05 02 02 00 02 00 07 05 04 02 00 02 00 07 05 86 02 00 02 00 07 05 88 02 00 02 00 09 04 00 02 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 03 00 02 01 07 05 04 02 00 02 00 07 05 86 03 00 02 01 07 05 88 02 00 02 00 09 04 00 03 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 01 00 02 01 07 05 04 02 00 02 00 07 05 86 01 00 02 01 07 05 88 02 00 02 00 
    KeyboardController claim this=1FFF22C0
    09 04 00 01 06 FF FF FF 00 07 05 01 02 00 02 00 07 05 81 02 00 02 00 07 05 02 02 00 02 00 07 05 04 02 00 02 00 07 05 86 02 00 02 00 07 05 88 02 00 02 00 09 04 00 02 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 03 00 02 01 07 05 04 02 00 02 00 07 05 86 03 00 02 01 07 05 88 02 00 02 00 09 04 00 03 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 01 00 02 01 07 05 04 02 00 02 00 07 05 86 01 00 02 01 07 05 88 02 00 02 00 
    HIDParser claim this=1FFF4660
    HIDParser claim this=1FFF2940
    HIDParser claim this=1FFF2F60
    HIDParser claim this=1FFF4C80
    HIDParser claim this=1FFF3940
    JoystickController claim this=1FFF5420
    09 04 00 01 06 FF FF FF 00 07 05 01 02 00 02 00 07 05 81 02 00 02 00 07 05 02 02 00 02 00 07 05 04 02 00 02 00 07 05 86 02 00 02 00 07 05 88 02 00 02 00 09 04 00 02 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 03 00 02 01 07 05 04 02 00 02 00 07 05 86 03 00 02 01 07 05 88 02 00 02 00 09 04 00 03 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 01 00 02 01 07 05 04 02 00 02 00 07 05 86 01 00 02 01 07 05 88 02 00 02 00 
    Jtype=0
    BluetoothController claim this=1FFF3FC0
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    Descriptor 4 = INTERFACE
    KeyboardController claim this=1FFF2020
    09 04 00 02 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 03 00 02 01 07 05 04 02 00 02 00 07 05 86 03 00 02 01 07 05 88 02 00 02 00 09 04 00 03 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 01 00 02 01 07 05 04 02 00 02 00 07 05 86 01 00 02 01 07 05 88 02 00 02 00 
    KeyboardController claim this=1FFF22C0
    09 04 00 02 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 03 00 02 01 07 05 04 02 00 02 00 07 05 86 03 00 02 01 07 05 88 02 00 02 00 09 04 00 03 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 01 00 02 01 07 05 04 02 00 02 00 07 05 86 01 00 02 01 07 05 88 02 00 02 00 
    HIDParser claim this=1FFF4660
    HIDParser claim this=1FFF2940
    HIDParser claim this=1FFF2F60
    HIDParser claim this=1FFF4C80
    HIDParser claim this=1FFF3940
    JoystickController claim this=1FFF5420
    09 04 00 02 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 03 00 02 01 07 05 04 02 00 02 00 07 05 86 03 00 02 01 07 05 88 02 00 02 00 09 04 00 03 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 01 00 02 01 07 05 04 02 00 02 00 07 05 86 01 00 02 01 07 05 88 02 00 02 00 
    Jtype=0
    BluetoothController claim this=1FFF3FC0
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    Descriptor 4 = INTERFACE
    KeyboardController claim this=1FFF2020
    09 04 00 03 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 01 00 02 01 07 05 04 02 00 02 00 07 05 86 01 00 02 01 07 05 88 02 00 02 00 
    KeyboardController claim this=1FFF22C0
    09 04 00 03 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 01 00 02 01 07 05 04 02 00 02 00 07 05 86 01 00 02 01 07 05 88 02 00 02 00 
    HIDParser claim this=1FFF4660
    HIDParser claim this=1FFF2940
    HIDParser claim this=1FFF2F60
    HIDParser claim this=1FFF4C80
    HIDParser claim this=1FFF3940
    JoystickController claim this=1FFF5420
    09 04 00 03 06 FF FF FF 00 07 05 01 03 40 00 01 07 05 81 03 40 00 01 07 05 02 01 00 02 01 07 05 04 02 00 02 00 07 05 86 01 00 02 01 07 05 88 02 00 02 00 
    Jtype=0
    BluetoothController claim this=1FFF3FC0
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    Descriptor 5 = ENDPOINT
    So you might try it again. Try using the mouse example sketch and see if it gives some details like this.

  5. #80
    Member
    Join Date
    Feb 2015
    Location
    Rians in Provence, France
    Posts
    71
    I tried but I receive the same results up to periodictable 1FFF6000

  6. #81
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,631
    It appears like it is not detecting an USB device.

    I believe you said it was a HDMI display? Is it plugged into something that generates HDMI? Does it have/need external power? Is that external power connected and turned on?

    What happens if you plug it into a PC in the current state? Does the Device Manager detect it?

    Again I can only throw darts...

  7. #82
    Member
    Join Date
    Feb 2015
    Location
    Rians in Provence, France
    Posts
    71
    I tried with a VGA LG 15" Touchscreen and a VGA-HDMI display ASUS VT207
    Same result. Nothing after :
    periodictable 1FFF6000

    But if I connect these screens to a standard USB/PC port, the mouse of the PC is running correctly.

  8. #83
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,631
    Not sure what else to try.

    Again if you plug in your working monitor, does it show any data similar to what I showed:
    USB Host Testing
    Code:
    960
    sizeof Device = 36
    sizeof Pipe = 96
    sizeof Transfer = 64
    power up USBHS PHY
     reset waited 5
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 1FFF6000
    periodictable = 1FFF6000
    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 FF FF FF 40 A9 21 04 10 00 00 00 00 00 01 
        VendorID = 21A9, ProductID = 1004, Version = 0000
        Class/Subclass/Protocol = 255 / 255 / 255
        Number of Configurations = 1
    enumeration:
    Like Port change...

    What version of the software/Arduino/Teensyduino are you using?
    The data I am showing is the current released stuff, which I verified is identical to that in the current beta release of Teensyduino on 1.8.12...
    Are you running it? And/or do you have another version in your (sketch folders)\libraries\usbhost_t36 ?

    If so maybe see if it is up to date with current stuff?

    Other things I might try would be, to plug the touch screen into a USB Hub that is connected to the Teensy USB port... If you have one, might try a powered hub... And again see if anything shows up.

  9. #84
    Member
    Join Date
    Feb 2015
    Location
    Rians in Provence, France
    Posts
    71
    DEBUG with teh BUYDISPLAY SCREEN 10' HDMI and VGA
    DUMP DEBUG :


    USB Host Testing
    960
    sizeof Device = 36
    sizeof Pipe = 96
    sizeof Transfer = 64
    power up USBHS PHY
    reset waited 5
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 1FFF6000
    periodictable = 1FFF6000
    port change: 10001803
    connect
    begin reset
    port change: 10001005
    port enabled
    end recovery
    new_Device: 12 Mbit/sec
    new_Pipe
    enumeration:
    enumeration:
    enumeration:
    Device Descriptor:
    12 01 00 02 00 00 00 40 83 04 10 57 00 02 01 02 03 01
    VendorID = 0483, ProductID = 5710, Version = 0200
    Class/Subclass/Protocol = 0 / 0 / 0
    Number of Configurations = 1
    enumeration:
    enumeration:
    Manufacturer: waveshare

    __________________________________________________ _____________________
    After waveshare, there are special caracters, and copy/paste ignores the rest.
    I notice there are some differences between your listing and this one.
    (12 Mbits/s for example)

  10. #85
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,631
    @LERAY - just a quick followup... So far I don't see any obvious way to help here...

    Again I am not sure exactly how you have it hooked up: When you say:
    But if I connect these screens to a standard USB/PC port, the mouse of the PC is running correctly.
    Is the Screen running with HDMI hooked up to that PC, or just the USB? Does it work if only the USB connected?
    When you say the mouse on the PC is working... Are you saying the normal mouse is working? Or are you saying that touching the display works like a mouse on the system?

    Did you try with HUB on the Teensy?

    I would doubt it, but is it a USB3 device? Once clue would be if the plug in connector was blue?

    Did you try connecting to a linux box like RPI? If so again would help to see what information the linux kernel says about the device.

    Again just trying to get an idea of why it is not being seen at all and hoping to see if we might get an idea of what is going on.

  11. #86
    Member
    Join Date
    Feb 2015
    Location
    Rians in Provence, France
    Posts
    71
    Thanks, Kurt,
    Indeed, when the USB port of the touchscreen is connected to a real PC, the mouse moves on the PC screen following the touch of the touchscreen. Even if there is no video in the touchscreen input.
    I connect the TEENSY USB Host port tof the touchscreen directly, without HUB. USB port of the LG and ASUS touchscreens are standard 2.0 USB ports.

    My program is running fine with the Buydisplay touchscreen, even with no video in the screen input.
    I have been testing with a complete program I wrote for the Techtoy HDMI video board.
    The mouse program is a subpart of this program, for testing more easily the touch control. And to isolate the problem.

    I have developped lots of software under WINDOWSXX and VUSUAL C++ since years, and has never time to invest and waste time in Linux. And re-write all my graphics 2D and 3D libraries nor my MIDI organ libraries ! (I regret it of couse !).
    I am a 3D computer graphics pionneer. And built the first 3D real time Z-BUFFER machine.

    Combined with the Techtoys video board, the TEENSY would be a fantastic general purpose platform. Which could replace PC and his boring OSs (WINDOWS or LINUX or BEEOS, etc...) which are unusefull for many real time embedded industrial uses. ARDUINO and TEENSYDUINO is a remarkable tool which allows avoiding the use of OS.
    Best regards,
    Pscal Leray

    Web site :
    pascal.leray.free.fr/index_en.html

  12. #87
    Member
    Join Date
    Feb 2015
    Location
    Rians in Provence, France
    Posts
    71
    Here is the detailed infos concerning the LG USB Touchscreen. Extracted thanks to the USBdeview.exe software which outputs all USB infos :
    Maybe this could help ?

    DEVICE NAME LG TS2009F-USB
    DESCRIPTION Périphérique d'interface utilisateur USB
    DEVICE TYPE HID (Human Interface Device)
    POWER 100 mA
    CONNCETED Yes
    Safe To Unplug Yes
    Disabled No
    USB Hub No
    Create Date 09/08/2019 10:10:04
    Last Plug/unplug Date 07/04/2020 13:09:22
    Vendor Id 16fd
    Product Id d091
    Firmware Revision 4.04
    USB Class 03
    USB SubClass 01
    USB Protocal 02
    Hub/Port Hub 3, Port 1
    Computer Name LLLLORG
    Parentid Prefix 6&e83ded&0
    Service Name HidUsb
    Service Description Pilote de classe HID Microsoft
    Driver Filename hidusb.sys
    Device Class HIDClass
    Device Mfg (Périphériques système standard)
    USB Version 1.10
    Driver Description Périphérique d'interface utilisateur USB
    Driver Version 5.1.2600.5512
    Driver InfSection HID_Inst
    Driver InfPath input.inf
    Instance ID USB\Vid_16fd&Pid_d091\5&3b5b077f&0&1
    Capabilities Removable, SurpriseRemovalOK

    The USB port is operating even without video input.

  13. #88
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,631
    Again not sure what the difference is...

    If it were me, I would try to turn on more debug stuff to see if anything jumps out.
    Example in the file ehci.cpp - look at USBHost::isr();
    There is a #if 0 at the start of it. Change that to #if 1
    And see if anything prints when you plus in that device.

    And again if you have not tried it, maybe connect a USB hub to the T3.6 and then plug in the monitor and see if anything shows up.

  14. #89
    Member
    Join Date
    Feb 2015
    Location
    Rians in Provence, France
    Posts
    71
    Thanks.
    I tried to connect a HUB but the red lights of the Hub are off. (ON as usual on any PC). Maybe it's void, but maybe the 5V supply current of the TEENSY USB host is unsufficient ?
    Or maybe one can don't care of it ?

    I tried the if(1)
    but I got no output more after the :
    periodictable = 1FFF6000

  15. #90
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,631
    I assume when you plugged in the HUB to the T3.6, that you received some additional information in the debug output?

    I wonder about some real basic question. I wonder if there is a chance that it might be as simple as a bad connection?

    That is, I just ried plugging in a HUB I often use for debugging stuff and it did not work this time... The LEDS did not come on...

    Then I went back to my box of USB cables and pulled out a different one and it worked.

    For some reason the other USB cable did not make good connections with the USB adapter I was using on this board...

  16. #91
    Member
    Join Date
    Feb 2015
    Location
    Rians in Provence, France
    Posts
    71
    If it was only a simple connection problem, my program would'nt run with one display(as the Buydisplay10") and not with other displays.
    I tried both with and without HUB, and the result is the same :
    Running fine with Buydisplay
    Not running on other displays.


    Maybe the Buydisplay touchscreen outputs more 5V power than the LG or ACER screens and the TEENSY host HUB :
    Because the HUB don't highlights with TEENSy 3.6 USB Host and Highlight RED with any standard PC.
    My HUB is a 4 ports Hub.(TNB model)

  17. #92
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,631
    Again why I mention it, is because you say that the hub did not light up... I have not seen pictures of your setup or setups so not sure if for example do some or all of these displays have their own USB extension cable or do they require you to use your own cable? Do they all use the same cable or do some of them have different USB connections which require different USB extension cables?

    As I mentioned the first USB cable I used to hub was one of those older connectors (not like the bigger UNO ones) but like the ones used on Teensy 2s... With the first one again light did not stay on and nothing much in debug terminal. But when I plugged it in using a different cable. It works.
    And you see more like:
    Code:
    USB Host Testing
    960
    sizeof Device = 36
    sizeof Pipe = 96
    sizeof Transfer = 64
    power up USBHS PHY
     reset waited 5
    USBHS_ASYNCLISTADDR = 0
    USBHS_PERIODICLISTBASE = 1FFF6000
    periodictable = 1FFF6000
    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 09 00 01 40 E3 05 08 06 98 32 00 01 00 01 
        VendorID = 05E3, ProductID = 0608, Version = 3298
        Class/Subclass/Protocol = 9(Hub) / 0 / 1(Single-TT)
        Number of Configurations = 1
    enumeration:
    enumeration:
    Product: USB2.0 Hub
    enumeration:
    Config data length = 25
    enumeration:
    Configuration Descriptor:
      09 02 19 00 01 01 00 E0 32 
        NumInterfaces = 1
        ConfigurationValue = 1
      09 04 00 00 01 09 00 00 00 
        Interface = 0
        Number of endpoints = 1
        Class/Subclass/Protocol = 9(Hub) / 0 / 0
      07 05 81 03 01 00 0C 
        Endpoint = 1 IN
        Type = Interrupt
        Max Size = 1
        Polling Interval = 12
    enumeration:
    USBHub memory usage = 960
    USBHub claim_device this=1FFF3580
    found possible interface, altsetting=0
    number of interfaces found = 1
    *** Device Hub1 5e3:608 - connected ***
     product: USB2.0 Hub
    USBHub control callback
    09 29 04 E0 00 32 64 00 FF 00 00 00 00 00 00 00 
    Hub ports = 4
    USBHub control callback
    USBHub control callback
    USBHub control callback
    USBHub control callback
    power turned on to all ports
    device addr = 1
    new_Pipe
    allocate_interrupt_pipe_bandwidth
      ep interval = 12
      interval = 256
     best_bandwidth = 2, at offset = 0
    pipe cap1 = F0012101
    And then if I plug something like mouse in it you see more stuff...
    So again it feels like it is seeing nothing?

  18. #93
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    11,503
    I've typically used powered Hubs - to make sure it had power - especially when using HDD's needing more power. The powered Amazon Basics hub on my desk doesn't have lights so I can't test with that.

    With the 480 Mbps USB on USBHost cables do have higher standards for function than the 12 Mbps devices.

  19. #94
    Member
    Join Date
    Feb 2015
    Location
    Rians in Provence, France
    Posts
    71
    I tried with a simple mouse, but the output monitor stops at :
    periodictable = 1FFF6000

    Nothing after

  20. #95
    Member
    Join Date
    Feb 2015
    Location
    Rians in Provence, France
    Posts
    71
    I tried to track the code : after println("periodictable =
    There is a call to attachInterruptvector which fails with ASUS or LG screens
    NO MORE MESSAGE.
    Runs correctly with BUYDISPLAY screen !
    Thanks for your help.

  21. #96
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,824
    Quote Originally Posted by LERAY View Post
    I tried with a simple mouse, but the output monitor stops at :
    periodictable = 1FFF6000

    Nothing after
    Maybe your Teensy 3.6 does not have enough 5V power to give to these USB devices and also run itself? Shortly after printing that message, the TPD3S014 chip is enabled, allowing power to flow to the devices you have connected to Teensy 3.6's USB host port. Stopping at or near that place may be a sign of insufficient power to run.

    Usually the USB ports on most PCs can supply 500 mA. Teensy 3.6 needs about 80 mA to run, leaving about 420 mA to give to the USB devices you have connected. Maybe that is not enough for these devices you are using?

    Most powered USB hubs also provide 500 mA per port. But if Teensy is plugged into an unpowered hub, you probably have only 100 mA available. That's just barely enough for Teensy 3.6 to run. Trying to also power USB devices connected to Teensy's USB host power will only work if they consume little or no power.

    Do you have a 5V power supply rated for 1A or more? If so, perhaps try cutting the VIN-VUSB pads on your Teensy 3.6 and then connect the power supply to VIN & GND.
    Last edited by PaulStoffregen; 04-20-2020 at 01:04 PM.

  22. #97
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,824
    A separate issue is the type of HID. Those touchscreens are very different HID devices than a normal mouse. Windows supports them and allows them to control the mouse cursor on your screen, but the actual HID communication is not a mouse. For USBHost_t36, a new driver will be needed to support the multi-touch protocol.

    However, if you are not even getting to the point where the USB device and configuration descriptors are printing to the serial monitor, then some other problem is happening. You should at least see the descriptors and info from every driver as it checks whether it should claim the whole device or the specific HID interface.

    Another guess, which seems unlikely, could be the USB configuration descriptor is too large. USBHost_t36 has a fixed size buffer.

    Code:
    static uint8_t enumbuf[512] __attribute__ ((aligned(16)));
    I have seen large descriptors from some of those USB touchscreens, but not more than 512 bytes. Also, if this really was crashing due to this buffer size, I would imagine more of the debug info would print. Since it's stopping so early, my main guess is still insufficient power to run Teensy 3.6 and the USB device you've connected to its USB host port.

  23. #98
    Member
    Join Date
    Feb 2015
    Location
    Rians in Provence, France
    Posts
    71
    I tried with a 1A USB power supply. Same problem.
    Anyway, I think that the internal USB modules of the touchscreens have there own power supply, as they are inside the screen, supplied by the 220V of the grid via a local supply.
    So probably don't need particular local supply from the USB host ?

    Probably the LG and ASUS have multitouch protocols not supported by the USBHost-t36 library ?

  24. #99
    Member
    Join Date
    Feb 2015
    Location
    Rians in Provence, France
    Posts
    71
    Hello Paul,
    As you have a new project TEENSY 5 ?(congratulations !) could you :
    -provide contiguous 3x8 bits in right order.[/B] If possible in the same order as the internal registers. (I can't use TEENSY 4 due to the lack of contiguous 8 bits input outputs ! Moreover Not compatible with 3.2 It's really a pity !).
    -As the new microprocessor used in TEENSY 4 is very powerfull, one could envisage to develop in C++ on a cross compiled GCC ON this new TEENSY 5 platform :
    -Coupled with the TECHTOY video board. In order to provide an HDMI output and a running USB Host interface for touchscreens.
    -One could completely avoid PC's for C++ developpers.

    As you know perhaps, I purchased hundreds of TEENSY 3.2 for MIDI ORGAN boards.
    Lots of Thanks and respect again for all what you are doing !

    Pascal

    http://pascal.leray.free.fr/web_org/org_en.html

  25. #100
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,824
    Teensy 5 is likely years away. No Cortex M55 chips exist yet. But we are now starting to beta test Teensy 4.1, which is an incremental upgrade from 4.0 for more I/O.


    Quote Originally Posted by LERAY View Post
    Probably the LG and ASUS have multitouch protocols not supported by the USBHost-t36 library ?
    Very difficult to say without seeing their USB descriptor data.

    Normally any unsupported device should at least have all its descriptor data printed to the serial monitor, if you've enabled the verbose debug output. Since the program is stopping before any descriptors are printed, something else must be wrong. But I do not know what is causing this problem. I've made 2 guesses, but I'm afraid I can not do more, since I do not have either of those monitors.

Posting Permissions

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