I have built two custom Ardunio Micro's. One works perfectly, while the other will not connect via USB. After much testing, I have figured out that it seems to be a poorly routed PCB on my part (I used the auto-router). I think there is a crossed connection somewhere, but after poking at the board with a multi-meter for an hour, I cannot seem to find one.

The schematic for each board is practically identical, with no changes to the layout of the processor. Just to make sure that one of the processors isn't bad, I switched them. The same board still works fine, while the bad board will not work. So I know it is something with the PCB.

When I plug the bad Arduino in, nothing happens. The computer does not even say that there is USB device failure, or one plugged in at all. The other is recognized just fine.

I have checked resistance between the D+ and D- pins of the USB port and the pins on the processor, and there is resistance between them with no crossed connection between each other.

I do not understand USB communication enough to try and figure out what is wrong with my second board in compared to my first. Any thoughts? I would like to try to nail down the issue before I redesign the board and hope it works.


closed as unclear what you're asking by Matt Young, PeterJ, Daniel Grillo, Voltage Spike, ThreePhaseEel Dec 28 '17 at 12:43

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    \$\begingroup\$ The auto-router should not result in any crossed connections, it is more likely that you have a bad solder joint (try resoldering the USB connector) or you didn't pay attention to the differential routing/impedance matching required for the USB data lines. How long are those traces? Do they have multiple via's/layer changes? Do you have other signals that run near or underneath them? \$\endgroup\$ – Ron Beyer Dec 20 '17 at 3:24
  • \$\begingroup\$ I assembled two of the bad boards just to make sure that it wasn't a soldering issue, and re-flowed parts. On the good board the lines are very similar in length and go through 2 vias and 1 layer change. On the bad board, they are also similar in length. But only 1 signal wire has 2 vias and a layer change. The other is only on one layer. They are many other lines intersecting both of them. \$\endgroup\$ – M.Schindler Dec 20 '17 at 3:42
  • \$\begingroup\$ I have run across many good production boards that refused to work or pass an in-process test. It was either ultra-fine solder splash or a open via that was the problem, if it was not more obvious than that. Look at your boards with a magnifying glass if you have to. We cannot do more than speculate for you at this point. Dig deeper. \$\endgroup\$ – Sparky256 Dec 22 '17 at 2:57

If a USB port doesn't see any connection, it means that your device doesn't pull the D+ wire up when it gets VBUS (or cable) in. You didn't provide any schematics of your USB connectivity (is VBUS sense used? is it self or bus powered), so it is hard to tell what is wrong. It could be wrong microcode that handles D+ connect signal, it could be miscalculated logic level on VBUS sense pin (if any), so the code doesn't start. Check with a scope if the device pulls up D+ (or D- if it is designed to be low-speed USB).

  • 1
    \$\begingroup\$ I do not have a VBUS Sense pin. Only VBUS, GND, D+, D-, and ID (which is not used). VBUS is used to power the device. I think you found the issue! The dedicated VBUS pin on the processor is not connected on the second one. (It says it was in the schematic but not in the board file). This should be the issue!! Because the VBUS pin is not connected, the processor is not pulling D+ and does not activate USB communication! \$\endgroup\$ – M.Schindler Dec 20 '17 at 3:49

Not the answer you're looking for? Browse other questions tagged or ask your own question.