USB device not recognized

Status
Not open for further replies.

OhioJim

Well-known member
I am trying to use a Teensy 3.5 mounted on a prototype board from Tall Dog.

I went through the installation of Teensyduino on top of the Arduino IDE, and it says the driver is installed.

Then when I power on the Teensy, Windows 7 says the USB device is not recognized, the device has malfunctioned, etc. etc. But the built in blink test is working. When I press the button on the Teensy, Windows spits out the same message, so the Teensy must be sending something back over the USB port.

When I try to upload a sketch (another blink test), the IDE says no devices found.

Control panel says "Unknown Device" on the list of USB devices, but it does not show up on the list of Comm ports.

I tried all the suggestions I could find for fixing the problem, and none of them worked.

I tried hooking up an Arduino Uno, and it works fine so I know the cable and USB port itself is good.

Then I saw one suggestion to hold the Teensy button down when plugging in the cable. Now the blink test is not working, so I guess the thing is fried?

Any ideas what the problem could be?

I was getting excited about getting near the end of my project but now???
 
First, unplug Teensy and cold reboot your computer. Windows 7 has buggy USB drivers. Microsoft fixed long-standing USB bugs in Windows 10, but sadly they never ported those fixes back to any Windows 7 updates. A reboot uses solves Windows 7 problems.

Run the Teensy Loader program. In Arduino, just click Verify to cause it to appear.

Turn off Auto mode in Teensy Loader. It's the right-most icon on the toolbar. Auto mode causes Teensy Loader to quickly reprogram your Teensy the moment it appears in bootloader mode. Normally that's convenient, but for troubleshooting you want Teensy Loader to keep showing you whether it detects your board rather than immediately reprogram it (perhaps with the same bad code, causing the same problem again).

Then hold the button down on Teensy while you plug in the cable. Holding the button prevents Teensy from running the code you loaded. Then release the button while watching the Teensy Loader window.

If Teensy Loader is able to detect your board, open a simple known-good example like 01.Basics > Blink and program that onto your Teensy.


I tried hooking up an Arduino Uno, and it works fine so I know the cable and USB port itself is good.

Doesn't Arduino Uno use a full size USB B connector? Can't see how you could possibly use the same cable with Uno.

Also keep in mind Uno has a dedicated USB-serial chip. Uno doesn't disconnect and reconnect USB as you program it. Uno's USB also can't be changed by your code. Teensy has native USB, so you code can change how the USB works. While that's very powerful, it's also possible to put code into your Teensy which confuses the USB drivers. Windows XP and Windows 7 have very brittle USB drivers. Windows 10 is much more robust.
 
Doesn't Arduino Uno use a full size USB B connector? Can't see how you could possibly use the same cable with Uno.
I have it mounted in a box with a USB B connector on the front panel, so the same cable works.

At this time it is just for programming the Teensy, but in the future I may be passing parameters and control info back and forth.

Thanks,Paul. I will try your suggestions and let you know if it works.
 
I should clarify...

I am using external power for the teensy, not the power from the USB port.
 
Was the USB<>VIN trace on the bottom cut?
How much current is the board using? Are active components well grounded to the external supply - and not through the Teensy?

Had an RGB matrix here with external power - didn't always want to program - when connecting USB measured over 1 Amp going out the Teensy GND path the USB connector provided. Adding an extra GND wire from the display to the PCB to the external supply stopped that and allowed for proper programming.
 
Was the USB<>VIN trace on the bottom cut?
How much current is the board using? Are active components well grounded to the external supply - and not through the Teensy?

Had an RGB matrix here with external power - didn't always want to program - when connecting USB measured over 1 Amp going out the Teensy GND path the USB connector provided. Adding an extra GND wire from the display to the PCB to the external supply stopped that and allowed for proper programming.

Yes, the trace is cut. I remember doing that. It is in the assembly instructions from Top-Dog. Unfortunately I soldered the Teensy header pins to the prototype board, so I can't verify.

All I have hooked up is the USB port panel mount connector and a 20x4 LCD from Sparkfun. When I saw there was a problem I unhooked the LCD.

There is a common ground point for power. All boards in my system (when done) will connect there.

One common mistake I have seen, by beginners (I have over 50 years experience in electronics), is to rely on this common power ground for signal return. Each signal line should be paired with a ground wire, although a single ground wire in a cable bundle is acceptable for low speed signals. Clock signals are more critical and should ideally have their own ground wire. Think of it as a 2 wire transmission line. Even though it is a digital signal with 1s and 0s, they are square waves. To preserve the square wave you need a bandwidth of 5x or even 7x the clock rate. For example, a 10 Mhz square wave needs at least 70 MHz bandwidth.

Anyway, the last thing I did was measure the 3.3v coming from the Teensy 3.5. It measures 4.0 volts.:( Not good. So I have ordered a new Teensy 4.0 from Tindie.com, already assembled on a prototype board to avoid any mistakes on my part. And it will be socketed in case I have to replace it.
 
I'm having the same problem, *but* on just plain Teensy 3.2, on Windows 10. Hooking up the board to the USB port gives me "USB device not recognized".

The cable that I'm using is a tested data cable (that said I also tried a bunch of different ones, all with the same result). I tried it on three different Win10 machines (all with the same result). I tried hooking the board up holding the button, not holding the button, resetting etc. The board itself seems to behave exactly as it should - the LED blinks after connecting the power, it stops blinking after pressing the button etc. But no matter what I do, Windows isn't able to get the device descriptor from the board. The board appears as an unrecognized device in the device manager, not as HID, as it (supposedly) should.

Any ideas what else can I try?
 
disconnect Teensy and use device manager to remove all in-active HID (and maybe also all COM devices) to clean up Win10 device memory

I tried doing all this without anything hooked up to any of the USB ports, after a fresh reboot etc. (no HID devices were active in the system).
 
Hmm, ok, I think i figured it out.

After a closer inspection of the board itself, it looks like two outputs of the microcontroller are shorted:

Clipboard01.jpg

and as it happens these are the two USB data lines.
 
Any ideas what else can I try?

Maybe try monitoring the 3.3V power. A fast responding multimeter is probably fine.

Perhaps something about your circuitry is drawing too much power at the wrong moment, causing the USB communication to not work or even reset the whole system?
 
Yes, the trace is cut. I remember doing that. It is in the assembly instructions from Top-Dog. Unfortunately I soldered the Teensy header pins to the prototype board, so I can't verify.

All I have hooked up is the USB port panel mount connector and a 20x4 LCD from Sparkfun. When I saw there was a problem I unhooked the LCD.

There is a common ground point for power. All boards in my system (when done) will connect there.

One common mistake I have seen, by beginners (I have over 50 years experience in electronics), is to rely on this common power ground for signal return. Each signal line should be paired with a ground wire, although a single ground wire in a cable bundle is acceptable for low speed signals. Clock signals are more critical and should ideally have their own ground wire. Think of it as a 2 wire transmission line. Even though it is a digital signal with 1s and 0s, they are square waves. To preserve the square wave you need a bandwidth of 5x or even 7x the clock rate. For example, a 10 Mhz square wave needs at least 70 MHz bandwidth.

Anyway, the last thing I did was measure the 3.3v coming from the Teensy 3.5. It measures 4.0 volts.:( Not good. So I have ordered a new Teensy 4.0 from Tindie.com, already assembled on a prototype board to avoid any mistakes on my part. And it will be socketed in case I have to replace it.

I have a pair of the TallDog T_4.0 prototypes built personally here. The first was initial beta where SD didn't come out right, the second is what you'll get and it works well! Having it pre-assembled will be nice. There is lots of room in small spaces for error :) And having it socketed is nice.

The T_4.0 board has an On/Off switch for Power - when OFF the VIN and VUSB pins should be OPEN with a DMM - and then Closed when ON if the trace is fully cut. Not sure if the T_3.5 board has the same ... but 4V on the 3.3V pin suggests something is unclean or bad somewhere.

My electronics experience is more by osmosis. Some things are noteworthy like putting a second GND wire on the 32x32 RGB matrix to the PCB and seeing the USB work properly to program when the 1.5A stopped feeding back through the Teensy. Wasn't sure of your use case or if it might apply.
 
Hmm, ok, I think i figured it out.

After a closer inspection of the board itself, it looks like two outputs of the microcontroller are shorted:

View attachment 21299

and as it happens these are the two USB data lines.

Indeed that is a bad splattered blob of solder - good luck making it go away and getting function back.

Question: Is that lead free solder? All of the solder points are nice and uniform - but no shine - so just wondering.
 
Status
Not open for further replies.
Back
Top