Error: "No device found on com x" but different symptoms than in known threads.

Hi all,

I'm having a very strange programming issue, with my Arduino Due board.

First of all: I know about the R23 and firmware solutions, also the "press erase" en pc script solution.
The problem people discribe there are not exactly what I'm experiencing, that's why I created this new, but similar thread!

I have developed a custom PCB for my project, which houses my Due directly using (alot) of male headers.

I'm using Visual Studio 2015 with Visual Micro plugin and Arduino IDE 1.6.7, currently.
Have also tried Visual Studio 2012 and older Arduino IDE's, makes no difference.

When the board is disconnected from the PCB, I can program it correctly, every time.
But connected to the PCB, Visual Studio gives the much know error:

"No device found on comx"

Also different from other users findings, is mine does this right out of the box, where many others got this problem after months of working correctly. And they can't program disconnected from their hardware either, and I can.

So, I did try the solution given there, but none have worked.

Further more, a friend of mine owns a SainSmart Due board. A clone, much cheaper. I wanted the official Arduino Due for the best hardware, or so I thought....

His SainSmart works perfectly on my PCB! Can program it directly, fully connected to the PCB headers.
And my official Arduino Due can't!

So we started to try to search for the cause of this strange behavior.
This is what we tried and found, all tests are of course with the Arduino Due, since it has this problem.
Note that for all tests, the external power supply is completly disconnected, only USB power is used from the cable.

Programming:

  • Due completly free from PCB, WORKS! (as mentioned above)
  • Due connected to PCB with wires, only Vin and GND. WORKS!
  • Due fully on PCB, does NOT WORK!
  • Due on PCB, but Vin and GND lines on PCB seperated. Does NOT WORK!

Conclusion must be that the Vin and GND are not the problem. So there must be some other drain from I/O pins to eachother (since GND is seperated on the PCB)

With Due fully on pcb, we see that USB power does flow backwards over the Vin line to the other hardware. Power leds and even the Adruino Micro (see picture) is turned on by it.
That's why we also tested with Vin and GND seperated on the PCB.

But, the SainSmart did exaclty the same tests, and worked every time. Also with the Vin power drain.

So we could conclude that the SainSmart has different hardware of tolerance than the Arduino Due.
Also, since the GND pins disconnected, there must be power leakage/shortcut from other pins on the Due.

And that is the biggest mystery, why would I/O pins connected to eachother with several resistors, cause this problem?
Since the Due has so many I/O pins, is very hard to find which pins cause this problem.

I hope someone can give me some insight or experience with this issue to solve it.