

Cómo utilizar el Watchdog del módem GPRS Siemens TC65
Escrito por blogElectronica en 2.DISPOSITIVOS (práctico), 3.GENERAL, Comunic. GSM/GPRSHace muy poquito salió la versión firmware 3.0 del módem Siemens TC65. Esta versión incorpora una serie de mejoras muy interesantes respecto a su predecesora, la versión 2.0 (hubo también una versión intermedia 2.8, pero ha durado muy poco).
De esta nueva versión 3.0 del firmware del modem gprs de siemens TC65 destacaría principalmente que incorpora las clases java para implementar un watchdog y para controlar las GPIO. El módulo TC65 sigue siendo el mismo, no hay cambios de hardware, por lo que es posible actualizar el firmware de la versión 2.0 del módulo a la versión 3.0, aunque ojito por que el cambio no es reversible.

De estas principales características de esta nueva versión, hoy vamos a ver cómo utilizar la más interesante para mi, que es la clase Watchdog de java. Y es que el módulo dispone de un watchdog hardware, y con esta nueva versión 3.0, Siemens nos proporciona las clases java necesarias para controlarlo.
Lo primero que tenemos que hacer es activarlo con el comando AT^SCFG. Si utilizáis el comando AT^SCFG? veréis como aparece una nueva opción de watchdog de usuario, por defecto desactivado. El watchdog lo vamos a poder configurar como desactivado, como activado para reboot, es decir, que si salta reiniciará el módulo (con lo cual si tenemos el autostart a 1 se reiniciará nuestra aplicación) o activado para shutdown, con el que si salta el watchdog se apagará el módem.
Después, en el soft sólo tendremos que importar la clase Watchdog en el inicio del programa:
import com.siemens.icm.misc.Watchdog;
y activar en el inicio del programa el watchdog, mediante una clase estática, de la siquiente manera:
Watchdog.start(15);
Con esto activamos el sistema para que si no ha sido refrescado durante 15 segundos, el watchdog actúe. Podemos configurar el wathdog para que esté desactivado (valor 0) o bien activado, donde se puede establecer un valor entre 10 y 300, osea entre 10 segundos y 5 minutos.
Para refrescar el watchdog basta poner la línea:
Watchdog.kick()
en algún punto estratégico del programa donde se ejecute al menos una vez durante el periodo que hayamos configurado el watchdog.
Consideraciones importantes.
- Se puede actualizar la versón TC65 2.0 a la 3.0, pero no se puede volver atrás.
- Es necesario utilizar un SDK nuevo, es decir, hay que utilizar nueva versión de Eclipse, de plugin ME y de SMTK. No vale el que utilizábamos en la versión 2.0
- Esto vale para el módulo TC65 y el Terminal TC65T. También los modems terminales (en caja) que lo monten, como el MTX65 distribuido por Matrix, pueden actualizarse a esta nueva versión 3.0
- Aunque ahora el TC65 tenga watchdog, hay que seguir haciendo bien los programas, que no sirva de escusa!!!
Bueno, espero que hayáis encontrado de interés este artículo y os pueda ayudar. Otro día más
Actualización: es posible actualizar a la versión 3.0 tanto el módulo TC65 como el TC65T.
Post relacionados:
- Nuevo módem GPRS teminal MTX65 basado en el módem Siemens TC65 Matrix Electrónica ha lanzado la distribución de un nuevo modelo...
- Modems GSM/GPRS. (II) – Modem Siemens TC65 Hoy vamos a ver las pricipales características del modem GPRS...
- Cómo implementar un WebServer en un módem TC65 ó MTX65 Bueno, ya estoy aquí de vuelta de vacaciones. Esta Semana...
- Instalando el entorno de desarrollo para crear aplicaciones JAVA con el modem Siemens TC65 Crear aplicaciones Java para embeber en un módem Siemens TC65...
- Modem GPRS Siemens. Gestión de una conexión TCP/IP desde Java. En mi anterior post vimos como utilizar el sistema de...
Hola!
Gracias por toda la información!
Estoy implementando un circuito de carga de bateria en un módulo TC65. Pero, no se que me pasa, la bateria no se llena. El módulo, funcionando solo con la bateria, me manda mensajes erroneos.
Se que no puedes resolver mi problema solo con esa información, pero me podrias ayudar explicandome que es la intensidad que se puede fijar con el comando “AT^SBC”. Supongo que mi problema esta relacionado con eso.
Gracias por su ayuda,
saludos,
gme
hola,
EL algoritmo de la bateria acaba por si solo pasado un tiempo.
He encontrad ocasos como el que describes. Generalmente lo que pasa es que el consumo de tu placa, unido al del módulo hacen que la bataria nunca está llena. Hay un comando para regular esto, no l orecuerdo haora, estoy de vacaciones y n otengo la documentación disponible. También dispones de una resistencia en el circuito recomendado para calcular su valor y adecuarlo.
Ten cuidad oco nals batarias que no todas cumplen con los parametso que dicen, comprueba el valor de la NTC, y que la bateria esté en los rangos que puede gestionar el algoritmo del módulo.
no se me ocurre nada mas
Salu2
Pua
Hola,
Estoy interesado en la actualización del firmware en un terminal TC65, precisamente por el tema del Watchdog que me parece muy interesante (como última medida en caso que la aplicación Java se muera). Escribes en el punto 3 del apartado de “Consideraciones importantes” que el terminal tc65 no se puede actualizar el firmware. Me lo podrías confirmar. Yo he buscado y no he visto ningún sitio que indique que no se puede actualizar el TC65T de la versión 2.0 a la 2.8 y/o de la 2.8 a la 3.0.
Muchas gracias por tu ayuda por adelantado y, como ya dije en algún otro comentario que dejé en otro artículo, me parece un sitio muy bueno para encontrar/intercambiar información sobre estos equipos.
Saludos
Fran
hola,
La versión 3.0 del TC65 vale tanto para el módulo como para el terminal. Siemens no saca versiones diferentes para cada plataforma.
Puedes actualizar a la versión 3.0 tu TC65 Terminal, solo si este es una versión 2.0 ó 2.80
Salu2
Pua
hola BlogElectronica,
Todos nos podemos equivocar, intenta no exponer algo que no es correcto o de lo que no estás completamente seguro.
Salu2
Pua
Hola Pua,
tienes razón, entono el mea culpa, el TC65T también puede actualizarse a la versión 3.0 igual que el TC65. Ya está modificado el post.
Gracias !!!
Salu2.
Hola,
Estos días he actualizado el TC65 terminal con la versión de firmware 3.0 y todo Ok. Hemos recompilado nuestra aplicación Java con el SDK de la 3.0 y utilizando la clase Watchdog y funciona bien en principio (hasta que no se demuestre lo contrario
.
Saludos
Hola,
Por cierto, en algún video tuyo en el que aparecía un terminal TC65 lo conectabas también con USB. Tienes información de como añadir un puerto USB al terminal TC65. Nos sería muy útil a la hora de debugar aplicaciones.
Gracias por adelantado.
Saludos
Hi, your blog is cool, but i don’t speek Espaniol
Today, I must reflash TC65 with 3.0 firmware, because TC65 going down sometime (totaly off) without any reason (exception in java – application is ok)
I have 4 TC65 with 24H connection to a server and 2 TC65 has problem. Location is different.
Does somebody know about it?
Oja
I hove the same problem with my modems (which must be always on 24h)…
dont no the problem.
Hola todos!
Gracias Pua por tu respuesta! Era en echo un problema de transistor. El que habia puesto no era adaptado al circuito.
Pero ahora tengo un otro problema. Estoy diseñando una placa de pruebas con una bateria que cumple todos los parametros que nos dan. Todo funciona hasta que lanze una conexión GSM. Ya, me cuesta un montón para conectarme, porque el módulo me responde “NO DIALTONE”. Cuando la conexión esta abierta, la placa manda un montón de bytes parasitos al otro lado.
Entonces, hice una prueba con una fuente de tensión. Dando una tensión de 3,7V entre el BATT+ y la masa, todo funciona. Pero si bajo un poco esa tensión, los bytes parasitos aparecen. Pensé que podria venir del MAX232 en caso que necesite una tensión más elevada, pero dudo.
No lo entiendo porque mi bateria da una tensión superior a 3,7V. Pues, si alguien tiene una idea, que me la comunique por favor.
Saludos a todos, buen fin de semana
Hola,
Para aquellos que querais querer una clase Watchdog y no querais o no podais actualizar el firmware a la 3.0 podeis construiros una clase sencilla que haga esta tarea. Para ello, la idea es utilizar el comando AT^SCFG=”AutoExec”. Aquí, se puede indicar que periódicamente se ejecute un comando AT (el que nosotros le indiquemos en uno de los parámetros). Así, si queremos que el equipo se reinicie le indicaremos el comando AT+CFUN=1,1 por ejemplo. El método kick() de nuestra clase, simplemente volverá a ejecutar el comando de configuración para reiniciar el temporizador. Ejemplo: Queremos que, en caso de que el programa se cuelgue, o aborte por una excepción no controlada, el equipo se reinicie al cabo de 10 minutos. Nuestro método kick() deberá ejecutar por ejemplo, el siguiente comando:
AT^SCFG=”AutoExec”,1,1,2,5,”AT+CFUN=0,1″,”000:10:00″
NOTA: Ojo, si no si no cambiais esta configuración, el equipo se reiniciará automáticamente cada 10 minutos.
Saludos
Hi Oja,
If your TC65 is going down sometime and you don’t know the reason why and you need it always on, you can implement an easy circuit that creates a pulse from time to time (oscillator, timer 555, etc), to the ignition line. In this way, if the device is going down, the ignition line will put it on again.
But, first of all, you must investigate a little bit more to know the reason why your device is going down (log everything to a file or to a rms database file,etc). This circuit can help, but maybe it is not the best solution. Use it just in case you don’t know what else you can do.
P.S.: In some cases, the DTR signal can put your device off. Look for any bridge between DTR and DSR for example. After ignition of the equipment there is a transitory, indeterminate state of this signals. If this bridge is not necessary, cut it off.
hope it helps.
bye.
Hola Fran,
una muy original manera de implentar un watchdog. La verdad que sí. Sólo un detalle, ojo con poner un nº muy bajo en el autoexec y que se tenga que ir grabando el comando muy frecuentemente, pues la flash tiene un nº finito de escrituras, aunque muy elevado. Supongo que hablando de un watchdog de 10m, no hay problema.
Gracias por compartir tu idea!
Salu2
Hola,
Primero 1000 disculpas porque aunque voy a preguntar sobre el TC65, no es sobre el tema que aquí se debe discutir. Y segundo felicitarte por esta página tan buena porque me ha ayudado mucho en mis tareas sobre el TC65.
Mi pregunta es sobre UDP con el TC65. ¿Has hecho algún ejemplo? Yo estoy intentando uno sin éxito aún, pero no me preocupa eso. Lo que me preocupa es si voy a poder mantener un “Socket” UDP abierto por tiempo prolongado.
Mi inquietud es esta porque algunos compañeros de clase estan trabajando con otros modulos (porque el proefesor nos los asigno diferentes módulos para el proyecto por equipos), por ejemplo unos de marca Sony-Ericsson (GR68 o algo así), y ellos ya se conectan a su servidor usando UDP, pero si dejan de transmitir por más de un minuto les sucede que los paquetes enviados por el servidor ya no son recividos por el cliente, mientras que los paquetes que envía el cliente si son recibidos por el servidor :S.
¿Esto me va a suceder a mi también con el TC65?
¿Te es familiar este comportamiento, será algín detalle de la red celular?
Espero tu respuesta,
Saludos
Hola Cyber,
como dices, por favor, intentar que en cada post tenga relación con el tema tratado …
Sólo decirte que Sony-Ericsson como tal ya no existe porque fue comprado por Wavecom. Esto no te va a suceder con un TC65, y dudo de que sea de la red GSM, me huele más a algún problema con la pila TCP/IP del Sony. Has tenido suerte, estás en el equipo ganador, para mi los módems de Siemens son superiores a Sony-Ericcson (Wavecom).
Salu2.
Muchas gracias por tu respuesta, (y desculpen todos por el cambio de tema) y solo por ultimo me gustaría saber si cabe la posibilidad de que trates el tema de UDP con el TC65 y algunos ejemplos?
Saludos
Hello Fran,
I wrote some replays more than twice, but my replays are lost. I have bad karma
Problem with autooff – maybe AT^SCFG=MEShutdown/OnIgnition,on is problem with DTR or IGT signal.
New problem with 3.0 firmware – OTAP is dead
Oja
Hi Oja:
I have the same problem. I have 4 XT65 release 1 with the same software, configuration and situation and sametimes one is working fine 20 minutes or 3 hours. I don´t know why. Sometimes one device is working fine 3 hours and the next time it is working only 20 minutes before it is stopped without warning or error messages.
Are you saying that the problem is resolved with release 3 of firmware?
Thanks. Richi
Hola Cyber,
intentaré ponerlo, pero no puede ser en los próximos días.
Salu2.
Tengo una pregunta. ¿Se ha actualizado también el módulo XT65 para la incorporación del Watchdog.
Gracias y un saludo.
Hola Estragón,
no, por ahora no. En cuanto tenga alguna noticia no dudes que lo publicaré en el blog, pero por ahora no sé si se va a incorporar en un futuro o no.
Salu2.
hola,
Parece ser que si será integrada la clase wacthdog en el firmware 2.xxx del XT65/75
Salu2
Pua
Buenas BlogElectronica!
Queria preguntarte una cosa sobre el tc65. Tengo una aplicacion corriendo sobre él, y a veces y de manera aleatoria aparece el ^sysstart, sin ningun AT+CFUN=1,1 ni nada. Ni siquiera muestra un ^shutdown ni nada. Un absoluto misterio, al menos para mi.
¿Cuales podrian ser las causas de un apagado de este tipo? llevo un objeto runtime con el que voy comprobando la memoria y se me ha reiniciado a veces con 75kb libres, otras veces con 200kb, con lo que en principio no parece ser ese tema.
A ver si puedes echarme una mano que estoy desesperado jeje.
Jose Escobar
Hola Jose,
con tanto tiempo ya he visto muchas cosas, pero que el equipo se apague sin enviar ningún URC no lo he visto a menos que se le corte la alimentación de forma fulminante (sino daría un URC undervoltage).
Entiendo que no utilizas un terminal sino un módulo. Yo monitorizaría, si puedes con un osciloscopio, la alimentación de éste último, no vaya a ser que no esté bien dimensionada la fuente y en lugares de baja cobertura, donde el módulo va a consumir más potencia se caiga el sistema. Mira también la alimentación del módulo con AT^SBV (creo que era este) en el momento antes del reinicio misterioso.
Salu2
Hola, no veo ningun post sobre como usar la api de las GPIO que incorpora el nuevo Firmware, y no tengo ni idea de como utilizarla. Agradecería mucho un poco de luz sobre este tema. Muchas gracias..
Muy buenas Jose A.
la verdad es que no tengo ninguno. A ver si saco un poco de tiempo y pongo alguno dentro de poco. Por ahora sigo funcionando con los AT de toda la vida.
Salu2.
hi there,
The activation of the watchdog function (by at^scfg=watchdog,1) presumes always the use of java library watchdog.kick()??? i.e. is always controlled by software????
In case of yes, if my modem TC65T autoshutdown for no reason – with unexpectederror (my modem must be always on) the watchdog doesn’t do anything……….. bahhhhhhh……….
Hi JQ,
You can use the MTX65v3 to solve your problem. MTX65 is always on.
But if you want to use your TC65T, set the modem with:
AT^SCFG=”MEShutdown/OnIgnition”,”off”
and connect pin 20 with pin 12, your TC65T will be always on.
Best regards.
Hi blogElectronica:
Are you saying that there is firmware release 3 for the XT65 device? I think there is only release 2 for the XT65 device.
Thanks.
Hola Richi,
no hablo del XT65, hablo del MTX65 que tiene un TC65 en su interior, no un XT65. El TC65 llega hasta la versión 3, el XT65 hasta la 2.
Salu2
Buenas, en primer lugar quiero felicitar a la gente que hace esta pagina por que es excelente!!!
Estoy teniendo problemas en mi aplicacion java, ya que en un determinado momento, aleatoriamente, me lanza el mensaje ^SHUTDOW ^EXIT y no puedo encontrar el problema. Estoy usando un TC65 con la version de fw 3.0.
Quiero saber si hay alguna forma de configurar el comando Autoexec para que el modulo se resetee automaticamente despues que me largue esta excepcion. Probe el ejemplo del Watchdog que publicaste, y en el momento que debe resetear la aplicacion me larga el ^SHUTDOWN y no se resetea.Configure el comando ^SCFG: “Userware/Watchdog”,”1″. Que estoy haciendo mal? Muchas Gracias.
Hola Ulises,
esos códigos de EXIT normalmente se dan por problemas con la memoria de tu aplicación. Revisa cuanta memoria flash y ram tienes disponible antes del shutdown. No apagues el módem tampoco a capón, es decir, de forma habitual quitándole la alimentación, apaga el módem con el comando disponible para ello, el AT^SMSO.
La excepción es a nivel de módulo, nada tiene que ver con java, es decir, nada tiene que ver con el watchdog. Puedes configuar con el pin de IGN (no recuerdo si dejándolo a 0 o a 1) para que tras el shutdown siempre se reinicie el módem. Por ejemplo el MTX65 está hecho así. Se garantiza siempre que el equipo va a estar encendido.
Salu2.
Salu2.
Muchas Gracias por tu ayuda!!
Otra de mis dudas es si, una vez corriendo mi aplicacion, puedo enviar datos por el puerto USB y la aplicacion que este escuchando en ese puerto? como si utilizara un tx y un rx de un puerto serie? De ser asi, como tendria que configurarlo desde java?
Saludos.
hola,
Desde Java el USB solo puede ser usado como sytemout, no es un puerto bidirecional.
Salu2
Pua
Gracias Blog por toda tu ayuda, me esta sirviendo mucho.
Te comento que me esta ocurriendo algo extraño en mi aplicacion, muy aleatoriamente me esta lanzando lo siguiente:
[Application Finished]
^SIS: 1, 0, 13, “The network is unavailable”
^SISW: 1, 2
^SHUTDOWN
Yo al comiezo de mi aplicacion, abro un socket , envio y escribo datos en el, para ello utilizo los comandos AT para configurar el Service Profile y el Conection Profile. No se cual puede ser la causa de este error.
Muchas Gracias!
Saludos
Hola Ulises,
dices que te ocurre muy aleatóricamente. ¿Has probado con otro operador? ¿has comprobado la cobertura con AT+CSQ? ¿Has comprobado si estás registrado con AT+COPS? ¿has comprobado cuanta memoria ram y flash te queda disponible?
Salu2
Buen dia queria hacer una consulta sobre el TC65, la verdad no sabia bien donde postearla, porque no es relativa al watchdog, pero es lo mas similar que encontre.
MI CONSULTA ES LA SIGUIENTE:
Hay alguna forma de prender y apagar el modem? ya sea por software, o por SMS?
no hable de reiniciar, sino de Apagar y Prender.
gracias! saludos!
Hola Luciano,
si quieres apagar el módulo usa el comando AT^SMSO
Si quieres encender el módem deberás generar un pulso de 400ms en el pin de IGT o usar el comando AT+CALA para generar una alarma que “prenda” el módem al cabo de x segundos.
Salu2.
Hola, buen artigo!
Tengo una duda:
Yo quiero implementar el watchdog para que cuando mi aplicacion Java se para por alguna razón, yo pueda reempezarla, pero no quiero con esto limitar la possibilidad de hacer OTAP.
Otra solucion para mi problema seria si hubiera una forma de reempezar la aplicacion Java por SMS, sin tener que hacer download de un servidor.
Hola Joao,
no, no es posible enviar la aplicación por SMS (al menos no por OTAP). Hombre, ahora no te sabría decir si cuando se recibe el OTAP se desactiva el Watchdog de la aplicación, pero si estableces un tiempo de watchdog de 300 segundos (5 minutos) no tendrías que tener problemas. Yo siempre uso ese tiempo de watchdog y jamás he tenido problemas con el OTAP.
Otra solución es enviar un SMS tuyo propio y tratarlo tu en ru propia aplicación para iniciar el OTAP desde la propia aplicación java (comando AT^SJOTAP). De esa manera si recibes ese SMS puedes desactivar el watchdog y lanzar el AT^SJOTAP.
Salu2.