So it would be great to find out any information if you notice the mbed or modem doing a restart. For embedded devices you need to expect this. Even commercial grade modems in industrial machines have a pull down sequence to restart a modem in case it crashes.
I don't believe the *mbed itself* should crash, ever, unless the programmer does something wrong. The RTOS and associated libraries need to be bulletproof. OK, they are not written in Haskell or Z, or some other language in which functions can be "proved" correct, but the mbed base libraries really should not be producing random resets.
If it's resetting due to a software bug, then I hope that it's in the dongle driver, as this is a much smaller piece of code to debug than the RTOS or the lwip stack.
But Nicholas is right in saying that you shouldn't expect *any* external module, that is effectively a black box in terms of the code *it* runs, to run perfectly. This is one of the reasons we put the power gating stuff in: just in case.
The dongle library should manage this itself, and be able to detect if the dongle crashes, and power cycle it accordingly. At the moment this bit hasn't been written.
On my todo list is to create a soak test that cycles through the following:
- SMS send and receive
- PDP construction and teardown
- Socket/HTTP send and receive
- Measurement of signal strength
Using a battery-buffered power supply that will survive short power outages.
I will make it periodically publish it's uptime to a server, so that we will have a record of how long it runs.
Ashley
Andrew Lindsay wrote:
Hi,
Had chance to look at a couple of things, the psu originally used was rated at 650mA. Now using one that's about 8V at 1200mA. PSU label says its 5V, but multimeter says different, hence the 8V!
Now I'm trying to redirect the debug output to one of the alternative uarts so that it doesnt depend on the usb cable being connected. Initial tests indicate that the code is stopping here and not moving on:
But when the usb cable is connected it pauses slightly here then continues.
Still investigating though...
Thanks
Andy
OK this is odd. Is there any way you can share your code with us so we can test it here?
If you don't want to do that, would it be possible to make another program with your proprietary bits stripped out, that still shows the bug?
Ashley