Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 4 of 4

Thread: Teensy 4.0 not recognized as USB serial device with v1.53 (Windows)

  1. #1
    Junior Member
    Join Date
    Nov 2020
    Posts
    3

    Teensy 4.0 not recognized as USB serial device with v1.53 (Windows)

    Hi,

    I have a problem after upgrading my build environment from 1.49 to 1.53. My controller works as virtual serial device (1 port), but after the upgrade it is not recognized anymore. Windows tells me that a unrecognized device was plugged in.
    To get it working again, I have to uninstall this device in the device manager, put the Teensy into programming mode and search for changed hardware. Then I'm able to upload a new firmware.

    When I switch back to 1.49, it works without any problem. Serial port is recognized and the Teensy Loader can upload a new firmware without pressing the program button. I already checked the defines given to the compiler (-DUSE_SERIAL is set) and have no idea what to do now.

    My environment: Arduino 1.8.13, Teensyduino 1.53, Windows 10

    Here is the output of USB Device Tree Viewer if it helps:

    Code:
        =========================== USB Port3 ===========================
    
    Connection Status        : 0x02 (Device failed enumeration)
    Port Chain               : 3-2-1-4-3
    Properties               : 0x01
     IsUserConnectable       : yes
     PortIsDebugCapable      : no
     PortHasMultiCompanions  : no
     PortConnectorIsTypeC    : no
    ConnectionIndex          : 3
    
          ======================== USB Device ========================
    
            +++++++++++++++++ Device Information ++++++++++++++++++
    Device Description       : Unbekanntes USB-Gerät (Fehler beim Anfordern einer Gerätebeschreibung.)
    Device ID                : USB\VID_0000&PID_0002\D&5D1B47&0&3
    Hardware IDs             : USB\DEVICE_DESCRIPTOR_FAILURE
    Driver KeyName           : {36fc9e60-c465-11cf-8056-444553540000}\0023 (GUID_DEVCLASS_USB)
    Driver Inf               : C:\WINDOWS\inf\usb.inf
    Legacy BusType           : PNPBus
    Class                    : USB
    Class GUID               : {36fc9e60-c465-11cf-8056-444553540000} (GUID_DEVCLASS_USB)
    Enumerator               : USB
    Location Info            : Port_#0003.Hub_#0010
    Manufacturer Info        : (Standard-USB-Hostcontroller)
    Capabilities             : 0x64 (Removable, SilentInstall, RawDeviceOK)
    Status                   : 0x01806400 (DN_HAS_PROBLEM, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
    Problem Code             : 43 (CM_PROB_FAILED_POST_START)
    Address                  : 3
    HcDisableSelectiveSuspend: 0
    EnableSelectiveSuspend   : 0
    SelectiveSuspendEnabled  : 0
    EnhancedPowerMgmtEnabled : 0
    IdleInWorkingState       : 0
    WakeFromSleepState       : 0
    Power State              : D3 (supported: D0, D2, D3, wake from D0, wake from D2)
    
            ---------------- Connection Information ---------------
    Connection Index         : 0x03 (3)
    Connection Status        : 0x02 (DeviceFailedEnumeration)
    Current Config Value     : 0x00
    Device Address           : 0x00 (0)
    Is Hub                   : 0x00 (no)
    Device Bus Speed         : 0x02 (High-Speed)
    Number Of Open Pipes     : 0x00 (0 pipes to data endpoints)
    Data (HexDump)           : 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
                               00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 02   ................
                               00 00 00                                          ...
    
            --------------- Connection Information V2 -------------
    Connection Index         : 0x03 (3)
    Length                   : 0x10 (16 bytes)
    SupportedUsbProtocols    : 0x03
     Usb110                  : 1 (yes)
     Usb200                  : 1 (yes)
     Usb300                  : 0 (no)
     ReservedMBZ             : 0x00
    Flags                    : 0x00
     DevIsOpAtSsOrHigher     : 0 (Is not operating at SuperSpeed or higher)
     DevIsSsCapOrHigher      : 0 (Is not SuperSpeed capable or higher)
     DevIsOpAtSsPlusOrHigher : 0 (Is not operating at SuperSpeedPlus or higher)
     DevIsSsPlusCapOrHigher  : 0 (Is not SuperSpeedPlus capable or higher)
     ReservedMBZ             : 0x00
    Data (HexDump)           : 03 00 00 00 10 00 00 00 03 00 00 00 00 00 00 00   ................
    
        ---------------------- Device Descriptor ----------------------
    bLength                  : 0x00 (0 bytes)
    
          -------------------- String Descriptors -------------------
    String descriptors are not available  (because the device has problem code CM_PROB_FAILED_POST_START)
    Any help is appreciated.

  2. #2
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    23,463
    Does Port Chain "3-2-1-4-3" mean you have multiple hubs between your PC and Teensy? Maybe try plugging directly into your PC?

    Also, for the sake of testing, please program Teensy with a very simple program like File > Examples > 01.Basics > Blink. When a program crashes early, this "Device failed enumeration" is exactly the expected error when the crash interferes with USB communication.

    First focus on getting it working with 1.53. Then let's figure out what changed between 1.49 and 1.53, once more is know about what was causing the problem with 1.53 (crashing code, timing of certain USB hubs, etc....)

  3. #3
    Junior Member
    Join Date
    Nov 2020
    Posts
    3
    Paul, thanks for your quick reply.

    Yes, the device was plugged into a hub. I changed it, but the behavior is the same.
    Then, I used the blink example. And this works as expected. Tried to flash it multiple times, everything is fine.
    Installing my software results in the USB enum error again. So the problem must be in my initialization code that behaves differently on 1.53 compared to 1.49, right?

  4. #4
    Junior Member
    Join Date
    Nov 2020
    Posts
    3
    Paul, I found the problem. I use the T4_PowerButton library from Frank Boesing (https://github.com/FrankBoesing/T4_PowerButton) and forgot to update to the most recent version.
    Now everything is working again.

    Many thanks for your support!
    Torsten

Posting Permissions

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