T20 USB host and device ports both suddenly stopped working

Hello
How could it be possible for a custom board (designed based on the Colibri Evaluation Board schema) like the one we use on our devices to suddenly have both USB-A and mini-USB ports stop working?

This has happened twice now, both with the same customer, or more specifically, the developer working for our customer. We are developing a project together with them, where our device is connected to an Android tablet via USB cable (that’s not important).

Both of times the issue arose:

  • The tablet was unable to detect our device via the mini-USB cable provided, not even by using a different cable.
  • There is an accessory we provide that they can use with the device by connecting it to the USB-A port, which also did not work anymore.
  • The device does not detect any USB key anymore (we provide software upgrades through USB pen drives, making use of the Toradex WinCE Autorun feature)

These effects combined make it impossible for us to provide remote support on the device, and the only option left seems to be replacing the whole device or the custom board inside it.

When doing so with the first of the two devices, we have not yet noticed anything unusual worth mentioning, but this is the second time, so we (and the customers) are getting worried it might happen again.

As a side note, the T20 module does emit some heat from its CPU, so it is normal to feel the heat from the back of our device casing, but the customer stated that when the issue happened, they noticed slightly more heat than usual.

Let me know if I have to provide you with more information.
Please help
Thank you

Colibri T20 256MB 1.2B
Custom board with 1 mini-USB socket for $device\COM0 and 1 USB-A socket for USB host
WEC7 BSP 2.4

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

Did you like my answer? :+1: :-1:


Hello,

Thank you for your detailed description and context regarding the USB issue on your Colibri T20-based custom board. From your explanation, the simultaneous and persistent failure of both the USB-A (host) and mini-USB (device/OTG) ports, especially with increased heat, points to a limited set of root causes. Here are the most likely possibilities and initial steps to help narrow down the issue:


Common Causes

  1. Power Supply Issues

    • Both USB ports require a stable 5V USB supply generated on your custom board. If this supply fails (e.g., due to a blown fuse, faulty regulator, or damaged MOSFET), it would cause both ports to become non-functional.
    • Overheating could be both a symptom and a cause of power supply problems (e.g., a short in the USB power path).
  2. Overcurrent Protection Triggered

    • The Colibri T20 provides a USBH_OC (pin 131) signal to detect overcurrent and a USBH_PEN (pin 129) signal to enable the USB power supply. If the USBH_OC is asserted due to an overcurrent event, the board might intentionally shut off USB power, protecting both ports.
    • This could be triggered by an external device drawing excessive current, a shorted accessory, or even a hardware fault.
  3. Thermal or Component Failure

    • The report of increased heat suggests possible stress on a component (voltage regulator, MOSFET, protection diode, etc.), or a USB short circuit somewhere on the power path.
  4. Module-Level Failure

    • If a failure occurred in the T20’s USB controller or power management circuitry, both USB interfaces could stop functioning.
  5. Environmental or Usage Pattern

    • Since both failures occurred with the same developer/customer, consider if their workflow or test setup might stress the device—such as hot-plugging devices, connecting high-powered peripherals, or repeated use of USB OTG switching.

Recommended Next Steps

  1. Physical Inspection & Measurements

    • Inspect the custom board, focusing on the USB power circuitry: look for signs of overheating, burnt components, or damaged traces.
    • Measure the 5V USB supply voltage on the board when powered. Compare with a working device.
    • Monitor the USBH_PEN (pin 129) and USBH_OC (pin 131) signals—check if overcurrent is reported.
  2. Module Swap Test

    • If possible, install a working Colibri T20 module into the failed unit. See if the USB ports resume operation.
    • Try a “known-good” custom board with the original T20 module to further isolate the problem.
  3. USB Load & Accessory Audit

    • Review the specifications and power draw of the USB accessories and connected tablet.
    • Confirm no devices exceed the current the USB ports can supply.
  4. Environmental/Operational Review

    • Gather details about how the devices are used (e.g., are USB devices hot-plugged frequently or is the device exposed to adverse conditions?).
    • Ask if any unusual events (static, overvoltage, accidental reversed connections) occurred.

Key Documentation


If you can, please share:

  • Measurements of USB supply voltage
  • The status of USBH_PEN and USBH_OC signals
  • Any physical observations from the failed boards

These details would let us investigate further and help avoid recurrence.

Best regards,
Toradex AI Assistant.

Let’s say for a moment that it “could” be caused by or related to software changes (even though this is a really long-shot hypothesis that I don’t believe in).

The only relevant changes in our software lately, with regards to this project, have been on how the device manages to write to and read from the $device\COM0 USB port, so I’m going to list them here hoping that maybe someone is wise enough to recognize a possible misuse that could lead to the described issue:

  • calls to GetCommState and SetCommState to set up the port DCB BaudRate to 921600 instead of the previous default (I believe it was BAUD_9600);
  • calls to SetupComm passing a value of 1<<20 to both dwInQueue and dwOutQueue to configure the port read/write buffers to 1MB;
  • Nothing else;

Keep in mind this port is the one used to exchange data with PC or other devices, but in our case the ActiveSync is disabled.

Again, I don’t think this issue is software related, but since this has so far ever happened only twice, and only to the same customer, with which we are collaborating on a project revolving around USB data transmission, asking does not hurt.

Based on your description, this appears to be more of a hardware issue. It’s possible that the custom carrier board lacks adequate ESD protection on the USB port, or the developer may not have taken appropriate precautions against static discharge.
On the other hand, SoC overheating could also lead to unpredictable hardware behavior. Please double-check whether Temperature Throttling is properly configured.

Hi @EnricoPompeiani ,

To better help you identify a possible hardware issue i need more information:

Once the USB Ports stop working, did you try to replace only the T20 Module? Is the issue with the Module or the Carrier Board?

Can you provide us the schematics of our carrier board? (support e-mail if you prefer)

On the defective system, is there still 5V on the USB Ports?