Teensy 4.1 died unceremoniously with short between USB VCC and GND

Status
Not open for further replies.

gamix25

New member
Hello,
I'm working on a MIDI project where I mean to read some SysEx data from an SD card and then send that data to a music setup to reconfigure the digital connections of an I/O interface when pressing the buttons.

As a first prototype, I breadboarded a simple circuit with:
  • Teensy 4.1
  • 2 push buttons
  • 2 LEDs (Vf = 2.6V/3V; If = 23mA/20mA) with resistors of 220 Ohm
The only supply is from the USB port of my computer through the Teensy's standard microUSB connector. I made no modifications to the Teensy board other than soldering the headers
Here's a picture of the prototype
midi_switcher_prototype_overall_v00_SMALL.jpg

I use Visual Studio Code with the platformIO extension on a 2014 Mac Mini running macOS 10.13.6 for development

The hardware was working as expected and I was able to turn the LEDs on and off, and detect button presses without any issues. I spent about 8 hours working on the firmware refining the code for reading and parsing binary data from the SD card.

Then all of a sudden, out of nowhere, the Teensy stops working and I get a message on my Mac saying that a USB device is drawing too much power. I used a little micro USB breakout to check the resistance between VCC and GND of the Teensy's USB micro port and I can indeed see that the board is permanently damaged with a short between VCC and GND. Here's another picture for reference:
midi_switcher_teensy41_short_v00_SMALL.jpg

I also noticed that the resistance between the V3.3 and GND rails of the Teensy is just a few kOhms, which seems definitely wrong.
Now, I promptly ordered a new Teensy 4.1 to continue my project, but I'm really puzzled by what might have caused a failure like this in the first place. After years of working with microcontrollers, I've never seen a failure this dramatic for a circuit this simple.

After the failure, I carefully inspected the circuit with my multimeter, and I verified that there were no short circuits anywhere, but even if there were one, I expect Teensy's fuses to protect the board from damage. I was concerned that the LEDs, being somewhat low-quality, might have a failed as a short, but the LEDs seem intact and the resistance across them in both directions is in the order of MOhms as it should be.

In my mind the possible causes of failure could be the following:
  • My Mac sent a surge through the USB port and fried the Teensy
  • A factory defect of the Teensy board
  • A rogue electrostatic discharge fried the circuit (but I wasn't touching the board when the failure happened)
I would appreciate if someone could help me sort out the root cause of the problem, so I can take proper precautions in the future. I'm particularly interested to know if it is possible for my Mac to have caused the failure.

Thank you!
 
I’ve accidentally shorted the 5v lines a couple of times and what my MacBook does is turn off the USB port so nothing is shorted for long and it shows that message. I don’t believe I’ve done it with a Teensy 4.1 yet, but definitely with other Teensy boards in the past, nothing has happened to my Teensy though. it still works with no issues after unplugging it from the port and plugging it back it, I believe sometimes I’ve had to restart my MacBook to get the port working again. If the 3.3v line is shorted the regulator will just turn off, but as soon as the short is gone it’ll turn back on again, I’ve yet to have any experience with electrostatic discharge and I’m definitely none to careful with handling my Teensy’s sometimes. I can’t imagine this is the first device to be used with your Mac Mini so I would say while not out of the question it’s probably highly unlikely that it caused the damage.
 
I kept thinking about the problem and I may have found a plausible explanation. If you look at the picture of the prototype, you can see that bare legs of the resistors are in the way of the push buttons. As a result, there is a chance I ended rubbing my fingers against the live resistor wires on my way to test the buttons. It is therefore possible that the exposed wires transferred a non-trivial amount of charge to my finger and that charge may have been released onto one of Teensy's inputs when I pressed the button. Electrostatic discharges can apply a large voltage on a device and it appears that the Teensy is particularly sensitive to input voltages on its pins; that may explain why it failed catastrophically. This line of reasoning still doesn't explain why the device actually failed at a time when I wasn't anywhere near it. However, it may be that the ESD fried some component first during one of my latter tests a few minutes before the failure and it took a bit of time for the improperly regulated currents to fully kill the board.

Next time, I'll be sure to insulate the exposed wires with electrical tape before interacting with the live circuit.

Please let me know if this explanation makes sense.

vjmuzik: Thanks for your reply. I agree, it sounds unlikely that my Mac Mini would cause such a failure.
 
If it was ESD it’s hard to say, like I said I’m none too careful myself and I touch pins all the time with my bare hands.
 
I'm going to post one last update to provide some additional insight to other people that may run into a similar issue.

I received my replacement Teensy 4.1 and updated the breadboard prototype in a few ways to make it better and avoid killing the micro controller again. Here is a picture:
midi_switcher_prototype_replacement_v00_SMALL.jpg

I properly insulated the exposed wires and replaced the LEDs with higher quality ones. Importantly, I also increased the values of the resistors from 220 Ohm to 470 Ohm; and that's when it occurred to me what the original problem might have been. When I designed the original prototype I calculated the values of the resistors focusing primarily on ensuring that I don't feed too much current into the LEDs. However, what I neglected to consider is that I also had to make sure that I don't draw more than 10 mA from the IO pins. I didn't measure the current draw across the LEDs in the first prototype, but I suspect it may have exceeded the ratings of the chip and that can definitely damage the board if left running for an extended period of time due to excessive heat. Given that LEDs have a non-linear characteristic, doubling the resistance reduces the current draw by more than a factor of 2, so that can make a huge difference.

This time I measured the current through the LEDs and it is about 1.5 mA each, which means the combined current draw is well below the the maximum tolerance of the chip. I tried running this version of the prototype continuously for several hours without issue, so it should be safe to say that I addressed the problem successfully.

When running a motor, a light strip, or other power-hungry actuator it is quite obvious that the IO pins can't drive them without overloading the micro controller, but it is easy to let the guard down with simple LEDs. Learning from mistakes!
 
Status
Not open for further replies.
Back
Top