Cant get Teensy out of "unknown usb device descriptor failed state" Windows 10

Status
Not open for further replies.
Cant get Teensy out of "unknown usb device descriptor failed state" Windows 10

Im using a Teensy 3.2 as a usb controller and cant seem to program the board in Windows 10 while its on my custom PCB. I noticed the same error with a fresh board as well. Tried uninstalling and reinstalling windows. Is it possible there is a problem with the serial driver and how do I go about fixing that.
 
This all used to work a few months ago with the same board and the same setup. Is it possible Windows is causing this error with some unknown security protection?
 
Untitled-1.jpg Screenshot for reference
 
The Button press activates unique code - from the onboard bootloader processor - on the Teensy that ideally is always recognized as it is 'hardcoded' in the bootloader and restarts the Teensy as a HID device.

If Windows has been provoked into a bad state it can make that USB port or device subject to a timeout.

Usually what should work as the final step is unplugging the teensy. Pressing the Button and while holding it - plug the Teensy into the USB port - perhaps a different port - then after a second releasing the Button.

If that doesn't work then generally it is a cable problem - use a fresh/known good USB cable. Or perhaps there is wiring/connection/condition affecting the ability of the Teensy to function.

Edit: In the IDE load a simple BLINK sketch and set the USB Type to : Serial. Do a Verify build … then do the above button press during replugg steps
 
The Button press activates unique code - from the onboard bootloader processor - on the Teensy that ideally is always recognized as it is 'hardcoded' in the bootloader and restarts the Teensy as a HID device.

If Windows has been provoked into a bad state it can make that USB port or device subject to a timeout.

Usually what should work as the final step is unplugging the teensy. Pressing the Button and while holding it - plug the Teensy into the USB port - perhaps a different port - then after a second releasing the Button.

If that doesn't work then generally it is a cable problem - use a fresh/known good USB cable. Or perhaps there is wiring/connection/condition affecting the ability of the Teensy to function.

Edit: In the IDE load a simple BLINK sketch and set the USB Type to : Serial. Do a Verify build … then do the above button press during replugg steps

I think its a wiring issue or perhaps a gnd issue? I had programmed the board prior to installing it on my main pcb. Perhaps one of these pins is causing the conflict. I solder most the pins to my pcb for good measure. Note I have installed a few Teensy in this same very setup without issue. I actually de-solderded a board before this thinking I messed up the soldering job but then I realized that perhaps there is a software or driver conflict.

IMG_20191101_022353.jpg
 
I think its a wiring issue or perhaps a gnd issue? I had programmed the board prior to installing it on my main pcb. Perhaps one of these pins is causing the conflict. I solder most the pins to my pcb for good measure. Note I have installed a few Teensy in this same very setup without issue. I actually de-solderded a board before this thinking I messed up the soldering job but then I realized that perhaps there is a software or driver conflict.

The function of the Button press will give best indication as it should work.
 
The button press sequence seems to have no effect.

Given that there is some other element at hand stopping the Teensy from doing core function - notes in post #7 - and other forum notes on 'Troubleshooting' to check 3.3V output and other function indicators.

The picture shows USB pins on the PCB - are those connected to the Teensy underside?
 
The button press sequence seems to have no effect.

Try again, but not with Arduino. Completely quit Arduino, but leave the small Teensy Loader window open. Turn off the "Auto" button in its toolbar. When Auto mode is active, once you press the pushbutton on Teensy, it will detect and immediately reprogram your Teensy. Normally that's what you want, but for troubleshooting you want Teensy Loader to *not* quickly reprogram your Teensy, so you can watch the window for a visible status of whether your Teensy is able to work with your USB cable.

With Auto mode disabled, press the pushbutton on your Teensy. You should see small the Teensy Loader window respond. If you do, that means the hardware is almost certainly still good. If you get no response or only intermittent or unreliable responses in Teensy Loader, then that's a sure sign of a hardware problem like a bad cable or something messed up with power.

When Teensy Loader (with Auto mode disabled) is able to detect your Teensy, but otherwise you get that "Device Descriptor Request Failed", the cause is almost always a problem with the program you've put onto your Teensy. As a first sanity check, program your Teensy with the LED blink (you will need to press Teensy's pushbutton to do so). If Windows properly detects Teensy while it runs a simple program, but gives "Device Descriptor Request Failed", you can be sure something your program is doing within the first second (while Windows is still trying to detect whatever type of USB device Teensy becomes while running your program) is crashing and preventing your Teensy from responding to Windows.

Every Teensy has a pushbutton so you can recover from bad programs. But if Teensy Loader is hidden behind other windows on your desktop, and Auto mode is turned on (which is the normal state when using Arduino), then pressing the pushbutton on Teensy just causes the same (likely bad) code to be loaded again. For troubleshooting, you need to keep Teensy Loader visiable and watch it while you experiment.
 
Try again, but not with Arduino. Completely quit Arduino, but leave the small Teensy Loader window open. Turn off the "Auto" button in its toolbar. When Auto mode is active, once you press the pushbutton on Teensy, it will detect and immediately reprogram your Teensy. Normally that's what you want, but for troubleshooting you want Teensy Loader to *not* quickly reprogram your Teensy, so you can watch the window for a visible status of whether your Teensy is able to work with your USB cable.

With Auto mode disabled, press the pushbutton on your Teensy. You should see small the Teensy Loader window respond. If you do, that means the hardware is almost certainly still good. If you get no response or only intermittent or unreliable responses in Teensy Loader, then that's a sure sign of a hardware problem like a bad cable or something messed up with power.

When Teensy Loader (with Auto mode disabled) is able to detect your Teensy, but otherwise you get that "Device Descriptor Request Failed", the cause is almost always a problem with the program you've put onto your Teensy. As a first sanity check, program your Teensy with the LED blink (you will need to press Teensy's pushbutton to do so). If Windows properly detects Teensy while it runs a simple program, but gives "Device Descriptor Request Failed", you can be sure something your program is doing within the first second (while Windows is still trying to detect whatever type of USB device Teensy becomes while running your program) is crashing and preventing your Teensy from responding to Windows.

Every Teensy has a pushbutton so you can recover from bad programs. But if Teensy Loader is hidden behind other windows on your desktop, and Auto mode is turned on (which is the normal state when using Arduino), then pressing the pushbutton on Teensy just causes the same (likely bad) code to be loaded again. For troubleshooting, you need to keep Teensy Loader visiable and watch it while you experiment.

Thanks for all that detail. Yeah the Teensy loader does not respond at all when Arduino is closed. Is it possible the GND plane or other trace on my board is possible causing a power issue. Perhaps if I power my board on the Teensy will react to Windows and Arduino correctly?
 
I think this board is toast as was the last one. Perhaps I fried it and the other one when hooking up input from the Raspberry Pi. These boards are quite sensitive to improperly wired power input. So if wired backwards it would fry the board instantly?
 
I noticed that the Teensy's orange LED seems erratic sometimes on sometimes off and if I hit the program button a few times I can get the led to stay on
 
The Teensy orange LED is not connected or related to the Program Button.

If that LED lights it is because code running on the Teensy is turning that LED on - showing some signs of function with running code. It will go off if turned off, or the Teensy goes into a failure state losing power.
 
These boards are quite sensitive to improperly wired power input. So if wired backwards it would fry the board instantly?

The normal power input path has a DMG2305UX mosfet transistor which is supposed to protect against reverse polarity power.

https://www.pjrc.com/teensy/schematic.html

However, it only protects the path from VUSB & VIN, where power is normally applied. If 5V is accidentally touched to the 3.3V power, it will quickly destroy the board. Likewise, none of the I/O pins are 5V tolerant.

On your next try, please consider using a socket on your PCB, so you can unplug the Teensy for testing & troubleshooting. With every Teensy model, we've seen many cases where something wrong with the attached circuitry would make Teensy appear to be dead, but then it would work fine when disconnected.
 
Status
Not open for further replies.
Back
Top