I keep having a few devices that die for some reason that I have not diagnosed yet. Is there a way to remotely reset the device? Can that be done through Digi Remote Manager?
For my crashing XBee3’s, is there an easy way to log what went wrong? In the office, I had an XBee connected to a PC and left XCTU record function on to try and determine what was causing the XBee to crash. That works well. What I find many times is that the MicroPython program crashes and the device is connected and operational, but sitting at the MicroPython Terminal. A simple reset would do the trick…but how can this be accomplished?
You’ll need to send remote AT command FR (Force Reset). According to the manual, it’s best to send remote AT SD (Shutdown) before sending FR and wait for it to return OK which can take up to 2 minutes.
I’m only familiar with XBee Zigbee modules so I don’t know for sure, but I assume you can use XCTU to send remote AT commands from one locally connected XBee Cellular devices to a remote one? Otherwise, Digi Remote Manager might be able to as well.
You might also try surrounding all of your MicroPython code with:
except Exception as e:
This should prevent ever crashing to the REPL MicroPython prompt.
Thanks. I believe sending remote AT commands (at least from what I have found) is not easily done on the cellular units. I do believe they can be reset through Remote Manager, but if the device has not been seen in a while - it usually means the cell link is down too…sooo sending a FR might be impossible.
I did have the idea of surrounding all the code with a try…except, but I figured there was some existential programming rule against doing that. I have put try…except blocks around pretty much every method at this point and log it locally on the device. I will try to one last try…except around the whole smash and see what happens. It would be good to have a final “I don’t know what happened, but let’s give the unit some shutdown time and then restart” process.
I am having great success with the cell units in locations with good cell signal. I am now toiling with a bad cell signal scenario…I figure it will eventually plague us at some point so I’d rather be prepared.
Thanks for the info!
I had a similar problem with XBee3-rf units. My basic solution was in the python code to every 24hours do a soft reboot.
Design team is looking into giving one the IO pins on the xbee the ability to reset the power supply on the custom board (will power cycle the xbee and the BME device on the i2c bus)
If there is a method or any technique which is 100% successful for all sorts of errors kindly mention it. I get stuck while Write my assignment.