Can't receive data over USB anymore. Hardware problem?

After a few weeks of developing, one of my spark cores does not print out data over USB anymore (by using Serial.println() ).

A simple test program shows that one core prints out data, the other doesn’t. To be more specific: with the operational core, the usb-serial driver is loaded in windows, and data is received by TeraTerm. With the other core, the usb-serial driver is not even loaded (checked this with a util called usbview).

I suspect this might be a hardware problem. Is there a test program that checks the functionality of the core? I admit this is hard when no USB is available to print the results :smile: Maybe a test program that outputs the result to the LEDs, the cloud or to Android?
Are there other ways to check the USB function?

Appreciate your help!

Hi @raytje,

Totally! You can perform a factory reset on your core ( https://www.youtube.com/watch?v=nGBSYyTo5xA ), and test to see if USB Serial is working by hitting ‘i’, or ‘w’ in a terminal to get your core ID, or see if you can setup WiFi credentials. It’s also worth trying another USB cable / port, and/or restarting your computer if you haven’t since you started (I’ve seen usb hosts selectively crash / block devices, and a restart can fix this). :slight_smile:

Thanks,
David

Hi Dave,

thanks for your attention.
I tried the factory reset and could setup the WiFi credentials with any problem and tried Tinker. This was working fine.
I did not try the USB serial by hitting keys, but Windows did not generate the well known USB connection sound, so I don’t think that hitting keys will show anything. But I’ll try this anyway tonight (Europe time :-))
I checked the USB cable, by replacing it, no luck. I checked the cable on another core, then the USB works fine. So no cable problems I guess…
Also tried restarting the computer, the core and the combination, as indeed, USB host and com port assignment problems are well known… But restarting did not give me luck either…

Let me elaborate on how I powered the core:
Most of the time, the core is powered by 5V through the SIL header pins, upper 2 pins at the lefthand side (Vin and Gnd). By connecting the USB, another 5V comes to the core. The on board diode allows this, right?
Sometimes, the core is powered through the USB only. Also allright I guess?

Any suggestions?

@raytje,

did your Spark core appear under the COM port?

It sounds like you might have replaced the driver with the DFU-util driver (if you used dfu-util or spark-cli recently)

Can you provide me with more information? I will be able to help you troubleshoot further;)

Hi Kenneth,

yes, this core did appear earlier under the COM port, I also checked with the utility usbview (Windows Driver Kit). I have been developing for weeks without any trouble. And my other core is still operational over the same COM port on my computer.

So far I have not used the DFU driver, and I have not used spark-cli as well.

Below is the simple test program to send out data on the COM port.

//////////////////////////////////////////////////////////////////
//Released under the MIT License - Please reuse change and share
//Simple code for the TMP102, simply prints ambient temperature via serial
//////////////////////////////////////////////////////////////////
 
//#include <Wire.h>
//int tmp102Address = 0x48;
 
void setup(){
  Serial.begin(9600);
//  Wire.begin();
}
 
void loop(){
 
  float celsius = getTemperature();
  Serial.print("Celsius: ");
  Serial.println(celsius);
 
  float fahrenheit = (1.8 * celsius) + 32;
  Serial.print("Fahrenheit: ");
  Serial.println(fahrenheit);
 
  delay(200); //just here to slow down the output. You can remove this
}
 
float getTemperature(){

  //it's a 12bit int, using two's compliment for negative
  int TemperatureSum = 0xff;
 
  float celsius = TemperatureSum*0.0625;
  return celsius;
}

Appreciate your help!

What i am saying is,

Is the :spark: core opening up a COM port?

No, the “failing” core it is not opening up a COM port anymore. The other core still does.

that’s interesting… @mohit might have a better answer

Hi @mohit,
see earlier posts: my core used to work fine, and then com port did not come up anymore. I can flash it, no problem. Only the com port is not coming up. Another core still works fine: the com port comes up here.
Any suggestions? Is there any diagnostics firmware?

@raytje

Based on what I see here, your windows machine is unable to see the Core as a COM port when it is put into ‘listening mode’ (flashing blue). We have also ruled out the possibility of a bad cable since the same cable works with the other Core.

This make me wonder if the USB connector on the Core might have dry/ripped solder on its joints. If you have a solder iron handy, I would highly recommend putting some liquid flux and reheating the joints. You should also try connecting the Core to a different computer.

Let us know if this helps.

Mohit

I will try this shortly, @mohit. First let me get a magnifying glass and a proper solder iron :slight_smile:
Thanks for the suggestion

1 Like