Thales' cellular IoT products business is now part of Telit Cinterion, find out more.

You are here

EHS8 module crashes and is constantly rebooting | Telit Cinterion IoT Developer Community

October 18, 2023 - 12:15pm, 219 views

Hello everyone, 
I'm facing several issue with a lot of devices with the EHS8 module revision 04.013 A-revision 01.000.06.
I will explain what's happening on 3 devices in particular but we are certain they are all related.

The first device, after opening USB COM port, sends ^SYSLOADING and after some seconds it sends ^SYSINFO:200.
After sending AT^SJAM=4 we can see our application as well as the JRC midlet.

After sending AT^SJAM=5 we only see our Java application.

AT^SJAM=4
^SJAM: ".../api/v1/G3/fw/3.32.16.13.jad","Owlet3MPU","Owlet","32.16.13",1,2013748,0,0
^SJAM: "SLAE.jad","SL Agent Module Services","Gemalto M2M GmbH","2.2.0",0,492942,0,42
^SJAM: "a:/JRC-1.60.02.jad","Java Remote Control MIDlet Suite","Cinterion","1.60.02",1,632794,0,1

OK
AT^SJAM=5
^SJAM: ".../api/v1/G3/fw/3.32.16.13.jad","Owlet3MPU","Owlet","32.16.13",1,0

OK

Checking the logs we got this error:

SYSTEM.OUT STARTED
MIDlet:com.cinterion.jrc.JRC_Midlet autostart
java.lang.ClassNotFoundException: com/cinterion/jrc/JRC_Midlet
 - java.lang.Class.forName(), bci=0
 - com.sun.midp.main.CldcMIDletLoader.newInstance(), bci=1
 - com.sun.midp.midlet.MIDletStateHandler.createMIDlet(), bci=63
 - com.sun.midp.midlet.MIDletStateHandler.createAndRegisterMIDlet(), bci=17
 - com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=24
 - com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=38
 - com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=5
 - com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=134
 - com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
MIDlet:com.owlet.main.OwletApp autostart
MIDlet:com.cinterion.jrc.JRC_Midlet abnormal exit
MIDlet:com.cinterion.jrc.JRC_Midlet abnormal exit
Library Version is ARN51

^SYSINFO: 200
AT^SCFG?
^SCFG: "RemoteWakeUp/Ports","current"
^SCFG: "RemoteWakeUp/Ports","powerup"
^SCFG: "Audio/Loop","0"
^SCFG: "Call/ECC","0"
^SCFG: "Call/Speech/Codec","0"
^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","std"
^SCFG: "Gpio/mode/HSIC","rsv"
^SCFG: "Gpio/mode/GPSANT","std"
^SCFG: "Gpio/mode/PULSE","gpio"
^SCFG: "Gpio/mode/PWM","std"
^SCFG: "Gpio/mode/RING0","gpio"
^SCFG: "Gpio/mode/SPI","rsv"
^SCFG: "Gpio/mode/SYNC","gpio"
^SCFG: "GPRS/AutoAttach","enabled"
^SCFG: "Ident/Manufacturer","Cinterion"
^SCFG: "Ident/Product","EHS8"
^SCFG: "MEopMode/PingRsp","0"
^SCFG: "MEopMode/SoR","off"
^SCFG: "MEopMode/RingOnData","off"
^SCFG: "MEShutdown/Fso","1"
^SCFG: "MEShutdown/sVsup/threshold","0","0"
^SCFG: "Radio/Band","511"
^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","usb1",,,,"off"
^SCFG: "Userware/Watchdog","1"
^SCFG: "MEopMode/ExpectDTR","current"
^SCFG: "MEopMode/ExpectDTR","powerup"
^SCFG: "Userware/Passwd2",

OK

------------------------------------------------------------------------------------------------------------------------------------

The second device is rebooting continuously, we can se this behavior on the USB COM ports. We see that the module is sending ^SYSLOADING and then reboots. Device does not respond to any commands and there's no access to FFS.
SYSTEM.OUT STARTED
MIDlet:com.cinterion.jrc.JRC_Midlet autostart
java.lang.ClassNotFoundException: com/cinterion/jrc/JRC_Midlet
 - java.lang.Class.forName(), bci=0
 - com.sun.midp.main.CldcMIDletLoader.newInstance(), bci=1
 - com.sun.midp.midlet.MIDletStateHandler.createMIDlet(), bci=63
 - com.sun.midp.midlet.MIDletStateHandler.createAndRegisterMIDlet(), bci=17
 - com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=24
 - com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=38
 - com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=5
 - com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=134
 - com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
MIDlet:com.cinterion.jrc.JRC_Midlet abnormal exit
MIDlet:com.cinterion.jrc.JRC_Midlet abnormal exit
MIDlet:com.owlet.main.OwletApp autostart
java.lang.ClassNotFoundException: com/owlet/main/OwletApp
 - java.lang.Class.forName(), bci=0
 - com.sun.midp.main.CldcMIDletLoader.newInstance(), bci=1
 - com.sun.midp.midlet.MIDletStateHandler.createMIDlet(), bci=63
 - com.sun.midp.midlet.MIDletStateHandler.createAndRegisterMIDlet(), bci=17
 - com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=24
 - com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=38
 - com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=5
 - com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=134
 - com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
MIDlet:com.owlet.main.OwletApp abnormal exit
MIDlet:com.owlet.main.OwletApp restart
MIDlet:com.owlet.main.OwletApp abnormal exit
java.lang.ClassNotFoundException: com/owlet/main/OwletApp
 - java.lang.Class.forName(), bci=0
 - com.sun.midp.main.CldcMIDletLoader.newInstance(), bci=1
 - com.sun.midp.midlet.MIDletStateHandler.createMIDlet(), bci=63
 - com.sun.midp.midlet.MIDletStateHandler.createAndRegisterMIDlet(), bci=17
 - com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=24
 - com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=38
 - com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=5
 - com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=134
 - com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
MIDlet:com.owlet.main.OwletApp restart limit reached -> reboot
MIDlet:com.cinterion.jrc.JRC_Midlet abnormal exit
MIDlet:com.cinterion.jrc.JRC_Midlet abnormal exit
MIDlet:com.owlet.main.OwletApp autostart
java.lang.ClassNotFoundException: com/owlet/main/OwletApp
 - java.lang.Class.forName(), bci=0
 - com.sun.midp.main.CldcMIDletLoader.newInstance(), bci=1
 - com.sun.midp.midlet.MIDletStateHandler.createMIDlet(), bci=63
 - com.sun.midp.midlet.MIDletStateHandler.createAndRegisterMIDlet(), bci=17
 - com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=24
 - com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=38
 - com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=5
 - com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=134
 - com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
MIDlet:com.owlet.main.OwletApp abnormal exit
MIDlet:com.owlet.main.OwletApp restart
java.lang.ClassNotFoundException: com/owlet/main/OwletApp
 - java.lang.Class.forName(), bci=0
 - com.sun.midp.main.CldcMIDletLoader.newInstance(), bci=1
 - com.sun.midp.midlet.MIDletStateHandler.createMIDlet(), bci=63
 - com.sun.midp.midlet.MIDletStateHandler.createAndRegisterMIDlet(), bci=17
 - com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=24
 - com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=38
 - com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=5
 - com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=134
 - com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
MIDlet:com.owlet.main.OwletApp abnormal exit
MIDlet:com.owlet.main.OwletApp restart limit reached -> reboot

-------------------------------------------------------------------------------------------------------------------------

The third device is rebooting every ~30 seconds, I am able to access it's FFS and send AT commands.

The logs retrieved.

java.lang.NoClassDefFoundError: iU
 - com.cinterion.jrc.JRC_Midlet.a(), bci=14
 - com.cinterion.jrc.JRC_Midlet.startApp(), bci=1609
 - javax.microedition.midlet.MIDletTunnelImpl.callStartApp(), bci=1
 - com.sun.midp.midlet.MIDletPeer.startApp(), bci=5
 - com.sun.midp.midlet.AbstractMIDletSuiteLoader.startSuite(), bci=261
 - com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=5
 - com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=134
 - com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
java.lang.NullPointerException:  0
 - com.owlet.main.OwletApp.destroyApp(), bci=4
 - javax.microedition.midlet.MIDletTunnelImpl.callDestroyApp(), bci=2
 - com.sun.midp.midlet.MIDletPeer.destroyApp(), bci=6
 - com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=358
 - com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=38
 - com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=5
 - com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=134
 - com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
MIDlet:com.owlet.main.OwletApp.abnormal exit

 

I have also seen in other forum posts that after an OTAP procedure some other developers have faced a similar error.
Could this issue be related with OTAP? 
I've tried to send an OTAP and unplug the device in the middle of the process but I was not able to reproduce the behavior we are seeing in the field.
We are using the 1.60.02 JRC, is there an updated version that would work in our module and has this issue fixed?
Any other suggestions on further debugging the issue?