Core's usb serial interface unresponsive except in DFU mode

Hi Particle Community,

I’m running into an issue with one of my cores. My issue is that the core isn’t recognized via USB as a serial device in Windows. My other core works fine and shows up as a Spark Core in Device Manager so the driver is installed.

The strange part is that when i put the trouble core in DFU mode, Windows all of a sudden detects it. I’ve ran:

  • particle flash --factory tinker
  • particle flash --usb cc3000
  • particle flash --usb tinker

I was never able to get the Spark Core app to set up my core with my smartphone so I’ve always done it over USB. I run particle setup, feed it the wifi credentials and it connects and shows a breathing cyan light as expected. But the particle cli setup routine hangs on “Claiming the core to your account”.

At this point, I’ve tried stopping the particle setup script, and running particle identify and I get “! serial: No devices available via serial” . It’s plugged into my PC and breathing cyan, but not detected by Windows at all. Not even the “plugged in hardware” sound effect happens.

This core hasn’t always been problematic. It worked out of the box but after a while of developing a program for it, it stopped responding to the flash button from the Build IDE.

I’m out of ideas. Any help would be appreciated.

There’s 2 scenario that the core will appear as a Serial device:

  • Listening mode (blinking blue)
  • when you perform a Serial.begin() in your code

Can you made sure the device is blinking blue and try particle serial identify?

As Kenneth said, on the Core Serial.begin(115200) (or any other baud rate which will make absolutely no difference in speed on USB) has to be called in order to activate serial via USB (for application code use).
As you flashed Tinker, this doesn’t call Serial.begin(), so your PC won’t detect it.

For setting up WiFi and getting the device ID, you need to put the Core into Listening Mode (see docs).

When your Core refused to be flashed OTA the most probable reason might be your application code not servicing the cloud often enough (but too often to actually stall) or interfering with the OTA download (e.g. interrupts keep firing during OTA download or calling System.sleep() during download or several other actions).