Questions on using watchdog for ELS61 and PLS62T-W-USB terminals | Thales IoT Developer Community
September 16, 2020 - 3:45pm, 3312 views
I have an existing application that issues AT command to a modem every couple of seconds. We're currently using a modem that uses AT commands to enable, disable and reset (kick) the watchdog, and now plan to change to the ELS61 or PLS62T-W-USB terminal. So I'm trying to figure out how to implement the watchdog function for the ELS61 and PLS62T-W-USB terminals without Java programming which I'm not familiar with.
According to the Cinterion_Java_Terminal_HID_v02_1-31-19.pdf guide, I'll need to configure the hardware watchdog using the RS232 interface, setting baud rate to 1200bps.
To configure the watchdog to reset the terminal if there's no serial data received from module for more than 5 minutes:
WD=RST_UART,300000,3
WD=MIN_START_TIME,600000,6
WD=ALWAYS_ON,30000,3
Since there's no feedback from the module, I'll need to wait for green LED light to flash before issuing the next command.
After the watchdog has been configured, I can use the command AT^SCFG="Userware/Watchdog","1" to enable, and the command AT^SCFG="Userware/Watchdog","0" to disable the watchdog. Unlike WD commands, "AT^SCFG" commands can be issued using the USB interface.
Questions:
1. Are my steps correct?
2. Does the terminal loses it's configuration after a Power Cycle. Do I need to issue the commands again after each power cycle?
3. Can I configure the hardware watchdog using the USB interface instead of sending WD commands using the RS232 TXD0 line? Some PCs today don't come with RS232 interface. "Figure 18: Hardware watchdog configuration" says that it's possible to configure the hardware watchdog using the ASC0 interface, but I'm not able find some any instruction in the Java Terminal and AT Command Set guides on how I can do that using the AT^SSPI command.
Hello,
The terminal have in fact two watchdogs:
- the module's watchdog (available in every ELS61/PLS62 module) which can be enabled/disabled by AT^SCFG="Userware/Watchdog" command and applies only to Java applications (can only be controlled and kicked with Java API)
- the terminal's watchdog (available only in terminals) which you can configure on ASC0 with baudrate 1200. And there is also a command to activate it - WD=ON,1,1 - available.
The full set of watchdog settings can be configured only on ASC0 interface. With i2c interface you can control in fact only trigger delay. There is a chapter in terminal's hardware description document covering all the possible parameters and AT commands.
The watchdog configuration is non-volatile.
As for the other configurations available with AT commands you need to refer to the AT commands specification document (please see also 'Superscript notation for parameters and values' chapter). Some of the settings are non-volatile (for instance all the configurations made with AT^SCFG command) and some not.
Best regards,
Bartłomiej
Since I would only be using the USB interface in operational use, and won't be using Java, am I right to say that the simplest watchdog solution for me is to use the hardware watchdog to monitor for UART activity?
Before deploying the terminal for production, I would connect the Java terminal to my PC RS232 port at 1200bps and issue "WD=RST_UART,300000,3" followed by "WD=ON,1,1" to activate the hardware watchdog. The hardware watchdog will then monitor for UART activity over USB, and in the event that my program, the virtual com port, or the module itself hangs, the Java terminal will reset every 5 minutes. Would the constant resetting cause a problem or ******* the firmware?
Hello,
UART reset involves monitoring of RXD0 line of ASC0 interface, which is the line used by the terminal to send data to external applications. So activity on USB will not prevent the terminal from being restarted. Data need to be sent on ASC0 interface.
Hardware watchdog uses fast shutdown line to shut down the module, waits until it's switched off and after that the module is restarted. This procedure will finish any data activities on the module's flash file system, ensuring data integrity, but will not deregister gracefully from the network. If switching off the module with fast shutdown line fails (the watchdog waits for up to three seconds) the emergency procedure is implied. The module is reset with EMERG_RST signal. This includes disconnecting the power supply and causes the loss of all the information stored in the LTE module's volatile memory.
Regards,
Bartłomiej
Thanks Bartłomiej. I'm experiencing some issues with configuring the hardware watchdog.
I'm connect to COM1 using serial port. I'm able to issue "WD=ON,0,0" and "WD=ON,0,0". ON LED (Green) flashes twice indicating write success. However, on trying to write "WD=RST_UART,30000,3" and "WD=MIN_START_TIME,30000,3" , ON LED flashes 4 *****. I've tried writing repeatedly and in the following sequence without success.
WD=ON,1,1
WD=RST_UART,30000,3
WD=MIN_START_TIME,30000,3
WD=ON,0,0
WD=RST_UART,30000,3
WD=MIN_START_TIME,30000,3
Fimware
ati
Cinterion
PLS62-W
REVISION 02.000
OK
Hello,
I just tried the same commands (copied from your post) with my module and it worked.
I noticed that if I add for instance a space somewhere inside the command it will not work. Unfortunately it happened when I copied the command directly from the documentation.
If it's not the case please try to send WD=DFT_VAL,1,1 command to load the default values.
Regards,
Bartłomiej
Hi Bartłomiej, thanks for your quick response. I also tried typing the commands "WD=RST_UART,30000,3" so there are no space. However, the command "WD=DFT_VAL,1,1" works, it flashes 3 *****.
Ati1 returns the following.
ati1
Cinterion
PLS62-W
REVISION 02.000
A-REVISION 01.000.03
OK
Hello,
If the command is accepted the LED should flash two ***** and I believe it was so in my case yesterday.
Did loading the default values help or the problem still exists?
In fact the hardware watchdog is a separate chip in the terminal - it is not the part of the module - it only exists in terminal.
Regards,
Bartłomiej
Hi Bartłomiej, Yes, the ON LED flashed two ***** for both "WD=ON,1,1" and "WD=DFT_VAL,1,1". All other commands will flash four *****. Loading the default values don't help. Power recycling and repeating the actions also didn't help.
I'm using the PLS62T_W USB terminal bought from Digikey - https://www.digikey.ca/en/products/detail/thales-dis-formerly-gemalto/PL...
Does the hardware watchdog work by default so do I need to install any software or firmware?
My config, in case if the following is useful.
AT^SCFG?
^SCFG: "GPRS/AutoAttach","enabled"
^SCFG: "Gpio/****/ASC1","std"
^SCFG: "Gpio/****/DCD0","gpio"
^SCFG: "Gpio/****/DSR0","gpio"
^SCFG: "Gpio/****/DTR0","gpio"
^SCFG: "Gpio/****/FSR","gpio"
^SCFG: "Gpio/****/HWAKEUP","gpio"
^SCFG: "Gpio/****/PULSE","gpio"
^SCFG: "Gpio/****/PWM","gpio"
^SCFG: "Gpio/****/RING0","gpio"
^SCFG: "Gpio/****/SPI","rsv"
^SCFG: "Gpio/****/SYNC","std"
^SCFG: "Ident/Manufacturer","Cinterion"
^SCFG: "Ident/Product","PLS62-W"
^SCFG: "MEShutdown/Fso","0"
^SCFG: "MEShutdown/sVsup/threshold","0","0"
^SCFG: "MEopMode/CFUN","0","1"
^SCFG: "MEopMode/CregRoam","0"
^SCFG: "MEopMode/ExpectDTR","current"
^SCFG: "MEopMode/ExpectDTR","powerup"
^SCFG: "MEopMode/Prov/AutoSelect","on"
^SCFG: "MEopMode/Prov/Cfg","fallback"
^SCFG: "MEopMode/RingOnData","off"
^SCFG: "MEopMode/SoR","off"
^SCFG: "MeOpMode/SRPOM","0"
^SCFG: "Radio/Band/2G","0x00000074"
^SCFG: "Radio/Band/3G","0x0004019B"
^SCFG: "Radio/Band/4G","0x080E08DF"
^SCFG: "Radio/Mtpl/2G","0"
^SCFG: "Radio/Mtpl/3G","0"
^SCFG: "Radio/Mtpl/4G","0"
^SCFG: "Radio/OutputPowerReduction","4"
^SCFG: "RemoteWakeUp/Ports","current"
^SCFG: "RemoteWakeUp/Ports","powerup"
^SCFG: "Serial/Ifc","0"
^SCFG: "Serial/Interface/Allocation","1","1"
^SCFG: "Serial/USB/DDD","0","0","0409","1E2D","005B","Cinterion Wireless Modules
","PLSx",""
^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","null",,,,"off"
^SCFG: "Userware/Watchdog","0"
OK
AT&V
ACTIVE PROFILE:
E1 Q0 V1 &C1 &D2 &S0 \Q3
S0:000 S3:013 S4:010 S5:008 S6:000 S7:060 S8:000 S10:002
+CMGF: 0
+CNMI: 1,0,0,0,0
+ICF: 3
+IPR: 115200
+CMEE: 1
+CSMS: 0,1,1,1
+CREG: 0,1
+CEREG: 0,1
+COPS: 0,0,"tel",7
+CGSMS: 1
OK
AT^SJAM=4
^SJAM: "SLAE.jad","SL Agent Module Services","Gemalto M2M GmbH","2.1.9",0,429531
,0,0
^SJAM: "a:/JRC-1.62.01.jad","Java Remote Control MIDlet Suite","Cinterion","1.62
.01",1,592706,0,1
OK
AT^SJAM=5
^SJAM: "a:/JRC-1.62.01.jad","Java Remote Control MIDlet Suite","Cinterion","1.62
.01",1,1
OK
Hello,
You don't need to install anything for watchdog. By default it's switched off. So only thing that you should need to do is to configure it according to your ***** and activate.
This behavior is really strange. Have you tried other settings? Maybe it's related to your terminal program - does it work correctly with AT commands? Have you tried other settings?
BR,
Bartłomiej
Can I know what other settings are you referring to? On receiving the terminal, I've only tested it out of the box using Hyperterminal and AT commands. I've not installed the Java SDK.
Is there a command to reset it to factory default?
Pages