Hard reset | Telit Cinterion IoT Developer Community
July 21, 2018 - 2:12pm, 8000 views
Is there a way to trigger a hard reset via Java or AT commands? I am experiencing an issue where the Module (els 61) randomly does not attach to the mobile Networks after a restart (via at+cfun=1,1) or Networks outage. The only Thing that helps is cutting the power. Is there a function that is triggerable via Software and equivalent to cutting the Power?
Thanks in advance
Felix
Hi,
The ELS61 Java has the "Watchdog2" class that can be used here.
In the modem configuration, AT^SCFG="Userware/Watchdog","1" will enable the restart of the system (hardware reset).
The Watchdog2 class start method:
public void start(int secs) //0=switch off, 10 - 300=timeout
throws IllegalArgumentException
The Watchdog2 class kick method:
public void kick()
throws IllegalStateException
The AT command that will shut down the module is AT^SMSO. Please make sure that your device has
the autostart configured in hardware.
Best regards,
Antero
Antero Markkula
Communication and Mechatronics
Enkom Active Oy – www.enkom-active.fi
Upseerinkatu 3 A, 02600 Espoo, Finland
Mobile: +358 400 411368
Office: +358 10 204 0000
Fax: +358 10 204 0010
E-mail: antero.markkula@enkom-active.fi
Thank you for your help!
The watchdog is allready enabled, but not used for "regular" restarts, but for recovery from lockups or similar issues. For regular restarts we use at+cfun=1,1. Does the watchdog do a "harder" reset than at+cfun=1,1?
We use a power-on circuit similar to Section 3.2.1.2 of the Hardware Interface Description. Yet, at^smso does not restart the module.
What surprises me is that the issue seems to be somewhat random. After a network outage ~30% of the devices were affected.
Best Regards
Felix
Hi,
The watchdog reset is similar to AT+CFUN=1. If the watchdog is configured to shut down the device,
AT^SCFG="Userware/Watchdog","2", that will be similar to AT^SMSO.
If you want to configure autostart to yor system, please see Section 3.2.1.3 Automatic Power On in the
Hardware Interface Description. First example will detect BATT+ and have a 1 second delay, the second one shows an example of continuous "ON" signal generator.
In order to give more time for the module to register to the network, you can add delay to Java application
start by AT^SCFG="Userware/Autostart/Delay","","30" which majes a 30 second starting delay.
In the Java application the "BearerControl Class" can be used to detect the network status.
Best regards
Antero
Antero Markkula
Communication and Mechatronics
Enkom Active Oy – www.enkom-active.fi
Upseerinkatu 3 A, 02600 Espoo, Finland
Mobile: +358 400 411368
Office: +358 10 204 0000
Fax: +358 10 204 0010
E-mail: antero.markkula@enkom-active.fi
Hello,
I just checked the datasheet and our schematics. In one of our hardware versions we use a circuit very similar to example two in Section 3.2.1.3. The only difference is that we use NCP303LSN32T1G, since the voltage detector mentiones in the HID is not available anymore. Auto-on after applying power is working without any issues, but not after at^smso.
Hello,
You have probably implemented the automatic ON circuit based on a voltage detector. In that case ON pulse is only generated when the power is connected to BATT+. So it will not start the module after AT^SMSO command. You'd have to have the ON circuit based on a square wave generator, but in that case you'd not be able to switch off the module without cutting off the power.
Regards,
Bartłomiej
Thanks for the clarification!
Is there any other way to trigger a funcionality via Java or AT Commands that is equivalent to cutting and reapplying power?
Best Regards,
Felix
Hi,
The only restart is by AT command is AT+CFUN=1,1 or by AT^SMSO. By Java is using Watchdog, but you can configure it in AT^SCFG, where "1" means only reboot (like CFUN) or "2" (like SMSO).
I have some ideas, but I don't know what will be better for you.
1. You can have some function in Java to check if module has attached to Networks and if it is not then restart the module again. You said that restart after AT+CFUN=1,1 only randomly not attached to the Network, so maybe it will help.
2. Maybe you can attach into network by using AT+COPS=0?
3. If it possible the idea is that to change hardware implementation. Check if module is not working and then generate impulse to turn it on. VCORE and V180 may be used for the power indication circuit. To monitor the V180 line, it is recommended to implement a power indication circuit as described in Section 2.1.14.2.
Best Regards,
Krzysztof
Hello,
I did a lot of tests recently, but did not get any positive results.
1. You can have some function in Java to check if module has attached to Networks and if it is not then restart the module again. You said that restart after AT+CFUN=1,1 only randomly not attached to the Network, so maybe it will help.
That is more or less exactly what the module does. As soon as it cannot establish an internet connection three ***** in a row it restarts via at+cfun=1,1. This is where it gets weird. Once the module is affected by the problem mentioned above (not being able to connect for an unknown reason), it cannot reastablish a connection no matter how many restarts. The only thing that helps is physically cutting the power.
2. Maybe you can attach into network by using AT+COPS=0?
at+cops=2 already is part ot the "try to connect up to three *****"-procedure.
3. If it possible the idea is that to change hardware implementation. Check if module is not working and then generate impulse to turn it on. VCORE and V180 may be used for the power indication circuit. To monitor the V180 line, it is recommended to implement a power indication circuit as described in Section 2.1.14.2.
I was able to modify our existing hardware and utilize another IC on the board to trigger the ON signal. Then I changed the code to use at^smso to shut down the device (instead of at+cfun=1,1) and deployed the device. After a few weeks I experience the same result. The device loses internet connection and the only way to recover from that situation is to physically cut the power.
Is there anything else I could try?
Best regards,
Felix
Hello,
The whole situation is a bit strange. The registration problem should not happen but it does for some reason. This problem may be related to the network or module or both. But software reboot with CFUN command should restart the whole system and and solve all the problems. If it does not, maybe you should also verify your hardware, especially power supply.
There is also one other difference between software and hardware reset - in case of software reset with SMSO the module tries to deregister from the network and finish all the jobs nicely. You can enable fast shutdown to omit this stem with ^SCFG: "MEShutdown/Fso" parameter. But I don't think that it will make any difference for this problem.
Please check also the firmware version with ATI1 and configuration with AT^SCFG? command. You didn't attach any log. Please also check AT+CEER reply when the problem happens.
To get the same behavior as cutting off the power you could add some hardware relay driven from the module with GPIO pin for example. But generally the most recommended way to shut down the module is the software command. Cutting the power off should be the last step.
Best regards,
Bartłomiej
Hello,
thanks for the very quick response! Yes, the issue is very strange and the problem is that I cannot enforce it. It just happens randomly after weeks or even month and with different network providers. Thats why it takes quite some time to test possible solutions. I will test Fast Shutdown with a few devices and see what happens. How could the restart procedure be affected by the power supply? I am quite sure that it is powerful enough to deliver the peak current.
To get access to the devices I have to cut the power and this clears the at+ceer memory, right? I disabled logging since the documentation says that excessive writing could damage the flash and shouldn't be done in production. But I might enable logging for a few devices.
Future devices will get some kind of hardware relay to cut the power if everything else fails. Yet I hope to find a solution for those devices that are already deployed.
Best regards,
Felix
Edit:
Forgot ati1 and scfg:
ati1
Cinterion
ELS61-E
REVISION 01.000
A-REVISION 00.014.00
at^scfg?
^SCFG: "GPRS/AutoAttach","enabled"
^SCFG: "Gpio/mode/ASC1","std"
^SCFG: "Gpio/mode/DCD0","std"
^SCFG: "Gpio/mode/DSR0","std"
^SCFG: "Gpio/mode/DTR0","std"
^SCFG: "Gpio/mode/FSR","gpio"
^SCFG: "Gpio/mode/PULSE","gpio"
^SCFG: "Gpio/mode/PWM","gpio"
^SCFG: "Gpio/mode/RING0","std"
^SCFG: "Gpio/mode/SPI","rsv"
^SCFG: "Gpio/mode/SYNC","gpio"
^SCFG: "Ident/Manufacturer","Cinterion"
^SCFG: "Ident/Product","ELS61-E"
^SCFG: "MEShutdown/Fso","0"
^SCFG: "MEShutdown/sVsup/threshold","0","0"
^SCFG: "MEopMode/CFUN","0","1"
^SCFG: "MEopMode/CregRoam","0"
^SCFG: "MEopMode/SoR","off"
^SCFG: "MeOpMode/SRPOM","0"
^SCFG: "Radio/Band/2G","0x00000014"
^SCFG: "Radio/Band/4G","0x00080085"
^SCFG: "Radio/Mtpl/2G","0"
^SCFG: "Radio/Mtpl/4G","0"
^SCFG: "Radio/OutputPowerReduction","0"
^SCFG: "Serial/Interface/Allocation","1","1"
^SCFG: "Serial/USB/DDD","0","0","0409","1E2D","005B","Cinterion Wireless Modules","ELSx",""
^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","file","65534","a:/log","buffered","off" (This is one of the development boards with enabled logging)
^SCFG: "Userware/Watchdog","1"
Pages