Is Watchdog class ok? | Telit Cinterion IoT Developer Community
June 17, 2016 - 8:44am, 8481 views
Hi,
I'm facing problems with instability with EHS6 Modules. When i activate the watchdog it is rebooting sporadic without any reason. When watchdog is deactivated it run's without any reboots for days/weeks..
My question: Could you imagine that there is a fault in this firmware?
My actual Firmware:
Cinterion
EHS6
REVISION 03.001
Pseudo code:
Watchdog2 wd = new Watchdog2();
wd.start(300);
do { wd.kick(); Thread.sleep(100); } while (true);
BR
Andy
Hello,
I've been testing it and was not able to reproduce this problem.
Please write if disabling the watchdog has changed anything.
Please also write how often you kick the watchdog and what is the defined timeout in your application.
Regards,
Bartłomiej
Hello guys,
I am also facing some random restart in EHS6 module, but, aparently, it is not related to WatchDog because I have disabled it on AT^SCFG.
I am monitoring the STDOUT via USB and I can see that the module restarts suddenly without any error or Exception. I thought this could be some memory leakage but I have checked that there is a lot of free memory when the EHS6 is restarting. Also, The device stays connected to our server via TCP socket. So I can see when the device reboots. It seems that it takes around 5 hours to reboot. The problem is that I can't see any error before the reboot for troubleshooting this issue.
Do you have some idea how could I troubleshoot this issue?
See below some information about my EHS6 module:
at^scfg?
^SCFG: "Audio/Loop","0"
^SCFG: "Call/ECC","0"
^SCFG: "Call/Ecall/AckTimeout","5000"
^SCFG: "Call/Ecall/Callback","0"
^SCFG: "Call/Ecall/CallbackTimeout","43200000"
^SCFG: "Call/Ecall/Msd","0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
^SCFG: "Call/Ecall/Pullmode","0"
^SCFG: "Call/Ecall/SessionTimeout","20000"
^SCFG: "Call/Ecall/StartTimeout","5000"
^SCFG: "Call/Speech/Codec","0"
^SCFG: "GPRS/AutoAttach","enabled"
^SCFG: "Gpio/mode/ASC1","std"
^SCFG: "Gpio/mode/DAI","gpio"
^SCFG: "Gpio/mode/DCD0","gpio"
^SCFG: "Gpio/mode/DSR0","gpio"
^SCFG: "Gpio/mode/DTR0","gpio"
^SCFG: "Gpio/mode/FSR","gpio"
^SCFG: "Gpio/mode/HSIC","rsv"
^SCFG: "Gpio/mode/PULSE","gpio"
^SCFG: "Gpio/mode/PWM","gpio"
^SCFG: "Gpio/mode/RING0","gpio"
^SCFG: "Gpio/mode/SPI","rsv"
^SCFG: "Gpio/mode/SYNC","gpio"
^SCFG: "Ident/Manufacturer","Cinterion"
^SCFG: "Ident/Product","EHS6"
^SCFG: "MEShutdown/Fso","0"
^SCFG: "MEShutdown/sVsup/threshold","0","0"
^SCFG: "MEopMode/CFUN","0","1"
^SCFG: "MEopMode/Dormancy","0","0"
^SCFG: "MEopMode/SoR","off"
^SCFG: "Radio/Band","511"
^SCFG: "Radio/Mtpl","0"
^SCFG: "Radio/OutputPowerReduction","4"
^SCFG: "Serial/Interface/Allocation","1","1"
^SCFG: "Serial/USB/DDD","0","0","0409","1E2D","0058","Cinterion Wireless Modules","EHx",""
^SCFG: "Tcp/IRT","3"
^SCFG: "Tcp/MR","10"
^SCFG: "Tcp/OT","6000"
^SCFG: "Tcp/WithURCs","on"
^SCFG: "Trace/Syslog/OTAP","0"
^SCFG: "URC/Ringline","local"
^SCFG: "URC/Ringline/ActiveTime","2"
^SCFG: "Userware/Autostart","1"
^SCFG: "Userware/Autostart/Delay","0"
^SCFG: "Userware/DebugInterface","0.0.0.0","0.0.0.0","0"
^SCFG: "Userware/DebugMode","off"
^SCFG: "Userware/Passwd",
^SCFG: "Userware/Stdout","usb4",,,,"off"
^SCFG: "Userware/Watchdog","0"
ati1
Cinterion
EHS6
REVISION 03.001
A-REVISION 00.000.14
Hello,
Does it always happen in a regular basis - after around 5 hours? Is it one device or more? How about hardware - is it possible that some hardware (power source for example) malfunction causes this? If there are any typical traces or error messages it could be hard to debug. Are there any external interfaces used? What is the application doing? If it's not the hardware issue and you had some test application that reproduces the problem we could also try.
Regards,
Bartłomiej
Hello Bartlomiej,
It always take around 5 hours to happen and it happens in all the devices. I have removed our hardware to watchdog in order to be sure that this is not restarting the device wrongly, but the restarts still happens. The hardware seems to be stable, but I have set up a oscilloscope to monitor the EHS6 reset and DC line to be sure that the hardware is not affecting this and I will let you know. The product has some interfaces (RS232, I2C) but it has not being used for this test.
The device connects to our server for providing information about the equipments (energy meters) that are connected to its serial interfaces. Also, it does some computation in the data that is received from the serial interfaces regarding our business.
I would like to check if the modem is freezing for some reason, but stdout does not provide any error or exception.
Thank you,
Hello,
The module is probably mounted in some proprietary hardware. It would be good to test it with some developer board and check if the same problem will occur. As I understand you have disconnected the module from the power meter and other equipment but the problem still occurs. If there's no error information you could simplify the app by curving out functionalities and making it independent of your environment to verify if the problem still exists. If we were able to reproduce it also with our hardware then we could push it to further investigation.
Regards,
Bartłomiej
Hello Bartlomiej,
Yes, the module is mounted in our proprietary hardware. I checked a lot about hardware and it seems that the issue is not there. I have asked a developer board to the Gemalto's seller in order to do the last check about hardware. Meanwhile, I have done a lot software check about this issue and I have realized that the issue is related to I2C. When I2C routines (using I2cBusConnection class) are disabled, the module does not restart and stay working for long time. So, I have done a really small application (see below) that sends some data in I2C bus to a LCD driver(in our hardware) every second. However, the module is still restarting after 2-5 hours.
Thanks
public class I2C extends MIDlet {
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
protected void pauseApp() {
}
protected void startApp() throws MIDletStateChangeException {
try {
I2cBusConnection cc = (I2cBusConnection) Connector
.open("i2c:0;baudrate=100");
InputStream i2cIn = null;
OutputStream i2cOut = null;
i2cIn = cc.openInputStream();
i2cOut = cc.openOutputStream();
String data = "<p70CDE0F8F000FF>";
while(true){
System.out.println("Writing I2C...");
i2cOut.write(data.getBytes());
i2cOut.flush();
Thread.sleep(1000);
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Hello Bartlomiej,
I have also tested the above code on EHS6T and the behavior is the same. Were you able to test it on your side?
Regards,
Hello Bartlomiej,
Were you able to check this issue on your side?
Regards,
Hello,
I was testing this. However I was not able to reproduce exactly the same behavior. The module did not restart but the application seemed to stop working.
But you have also reported this problem to the support and they reproduced the restarting. This is currently analyzed and the solution will be introduced.
Regards,
Bartłomiej