Reasons for seemingly random reset?

Is there any documentation on when/why the board would manually reset? I am doing tests on how the board behaves when it loses service and the way I am testing these situations is by physically removing the antenna to force the board to lose service. When I do this, about ~half the time, the board force resets about 5 - 30 seconds after I pull the antenna. Sometimes it never does it though! I am tracking the reset reason and each time, the reason is reported as RESET_REASON_NONE. I can't figure out why this is happening, and can't find any documentation/troubleshooting steps. I did find a blog post where a member of Particle's team reported that physically removing the antenna should not affect the board, so I'm a bit worried and stumped. Any information is appreciated!

The only scenarios where Device OS will reset the entire device are:

  • OTA update complete
  • System.reset()
  • Wake from HIBERNATE sleep

Failure to connect to cellular will never reset the device. It will power down the modem after 10 minutes of failure to connect, but your firmware will continue to run, at least in system threaded mode, which is the recommended mode to use.

I'd make sure trace logging over USB serial is enabled and see if there's anything interesting in the log.

SerialLogHandler logHandler(LOG_LEVEL_TRACE);

Thank you!

I was able to replicate the event with logHandler running. Here are my results

0000214829 [comm.coap] TRACE: Sending CoAP message
0000214830 [comm.coap] TRACE: CON POST /d?\x04 size=197 token=f3 id=114
0000216088 [comm.coap] TRACE: Received CoAP message
0000216089 [comm.coap] TRACE: ACK 0.00  size=4 token= id=113
0000216784 [comm.coap] TRACE: Sending CoAP message
0000216785 [comm.coap] TRACE: CON POST /e/button_pushed size=130 token= id=115    
Message sent successfully!


Serial connection closed.  Attempting to 
reconnect...
Serial monitor opened successfully:
Reset Reson is: NONE
0000001397 [system.nm] INFO: State changed: DISABLED -> IFACE_DOWN
0000001398 [system.nm] INFO: State changed: IFACE_DOWN -> IFACE_REQUEST_UP        
0000001399 [ncp.client] TRACE: Powering modem on, ncpId: 0x47
0000001399 [net.pppncp] TRACE: NCP event 
3
0000001399 [net.pppncp] TRACE: NCP power 
state changed: IF_POWER_STATE_POWERING_UP0000001400 [system.nm] INFO: State changed: IFACE_REQUEST_UP -> IFACE_UP
0000001401 [system.nm] TRACE: Interface 4 power state changed: 4
0000002901 [net.pppncp] TRACE: NCP event 3
0000002901 [net.pppncp] TRACE: NCP power state changed: IF_POWER_STATE_UP
.......

I have more logs if you want to see them.

The board reset in between "Message sent successfully!" and "Serial connection closed". There is nothing in between that logHandler seemed to catch and the reset reason is "none". Are you able to decipher any other clues from the rest of the logHandler reports before or after the message?

Again - this only happens once in a blue moon, which is making it hard to pin down.
I'm wondering if the issue has to do with my power source. I am using a USB adapter connected to my laptop for testing. In my final application, I am using a 5V rechargeable battery for the board's power source and I have not ever seen this reset happen when connected to a battery (although, I have not tested with a battery nearly as much as with a USB adapter).

Does anything in the logs catch your attention?

Thanks for all the help.

Yes, power it a likely possibility. That explains why the USB serial connection drops and there is no reset reason, because the device can't log a reason if the power goes away.

Which Boron? The Boron LTE usually should be OK with a laptop, but a Boron 2G/3G will likely have problems without an external power supply if it's a 500 mA USB port.

I am using a Boron LTE but I am using this adapter: ikling 9-in-1 USB C Hub – ikling

I also have some other devices connected to my Particle board that I am powering from the Particle. Is there any documentation about overcurrent protection for the Particle? I think it might be worth my time digging into that documentation

Specifically I am using the Boron 404X

Hi, It may also be worth to remove everything from that USB hub and see if the device resets again.
Another alternative is to connect the boron directly to your computer (perhaps with the help of a usb to usb c adapter - there is a white one that comes with every android phone)
Example:

Thank you for the response. I'm going to stop using this adapter for the time being. Hopefully it doesn't happen again. It's hard to test because the reset seldom happens.

Hi everyone - after some investigation, this is confirmed to be an issue with power. I hooked my VUSB pin up to an oscilloscope. During a time of heightened activity/current surge due to peripheral boards and devices connected to my Particle (and powered from the Particle VUSB), my VUSB dropped to 3.9V from typically 4.7V. I figured out a way around this, a bulk capacitor and powering one of my peripheral devices (audio player board) separately. It is working well now!

2 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.