Hi all,
Had the same problem of losing the USB connection and only being able to recover it through connecting the reset pin to GND. However, in my case it was clearly depending on the sketch I loaded. So, got curious and after some experiments I'm convinced now that the issue is software related and not a hardware problem. The root cause is a division by zero error in the sketch (inducing some NAN-value) that is posted back to the serial port and makes it choke. Just try this simple code that reproduces the issue:
/*
Not crashing USB UART Beetle
*/
unsigned int points = 1;
void setup()
{
Serial.begin(9600)
}
void loop() {
points = 3/1;
Serial.println(points);
}
This does not cause any problem. Next try this code:
/*
Crashing USB UART Beetle
*/
unsigned int points = 1;
void setup()
{
Serial.begin(9600);
}
void loop() {
points = 3/0;
Serial.println(points);
}
This induces the problem.
So, my take is that when you encounter this issue, carefully check your code for a division by zero situation (or division by an undefined variable).