Guardar datos recibidos

Hola Vuelvo a pedir ayuda para resolver un pequeño lio que tengo con un UNO y un SIM900. Todo funciona perfecto, pero he encontrado un fallo de pura casualidad y no se por donde seguir. El error está en la identificación de llamadas entrantes. Cuando le hago una llamada y reconoce el numero debe colgar y mostrar por lcd unos datos. Lo hace correctamente durante unos 20 o 25 días. A partir de ahí ya no reconoce el numero entrante como correcto. Como los días que tarda en errar es diferente, no lo achaco a algún error de millis(). He hecho 3 pruebas y se "rompió" a los 25, 20 y 23 días después de reiniciar el UNO.

Por cierto, el UNO continua haciendo su trabajo perfectamente. Y el SIM900 hace su trabajo (manda SMSs y los recibe y hace llamadas. Lo único que no funciona es lo de la llamada entrante.

Había pensado en poner una SD para grabar los datos recibidos desde el SIM900 pero solo me quedan Los A3, A4 y A5 y los pins 0-1 del monitor

¿Alguna idea como guardar esos datos para ver si el error es de cobertura o de software del UNO?. Hay que pensar en que hay que guardar todo lo que reciba el SIM900. La velocidad para guardar tampoco es crítica.

Saludos

Si no usas la funcionalidad SPI podrias mover pines para dejar libre el puerto SPI para conectar la SD. También podrías usar una libreria SoftSPI, aunque no sé que resultados te deba dar.

Aunque quizás el problema sea algo de código que se escapa a simple vista y ocurre cuando pasan 20 días. Deberias compartir tu código y un diagrama de conexiones para que podamos ayudarte mejor.

gracias por tu ayuda Dada la complejidad de la instalación, no puedo cambiar pins. Por eso hice la consulta. Y no tiene que ser solo montar una SD. Con, por ejemplo, conectar el monitor sin que se resetee igual tendría bastante, aunque va a ser difícil sacar el UNO de donde está si hay que hacerle algo a la placa

Si nadie me da otra posible solución, voy a montar un UNO en el taller con el monitor serie encendido durante los días que se necesiten. Espero que no sea cosa de cobertura y llegue el RING cortado

No te puedo pasar el código puesto que hay datos privados. Y no quiero maquillarlos por si está ahí el error. Lo primero que voy a hacer es intentar hacer que el arduino resetee el SIM900 cada cierto tiempo, a ver si va a ser eso

Gracias y saludos

Vaya @bosoft, publicas tu duda el 17/11 y el 18/11 ya hablas de que si

Si nadie me da otra posible solución,

Dime como alguien puede ayudarte si no se ve código ni nada? Imposible darte siquiera una idea.
Coloca un XXXX donde tengas datos privados y listo, pero hace falta ver el código al menos.

millis() si usas variables del tipo unsigned long no falla jamás ni aún cuando se resetea a los 43.7 días.

Disculpa surbyte si te ha parecido precipitada mi respuesta, pero, como ya dije al formular la pregunta, llevo mucho tiempo detrás de este error. Y cada prueba que hago son entre 20 y 25 días de espera.

Mas bien estoy buscando algo con lo que no tenga que tener un portátil conectado los 25 días. El programa, en teoría, funciona correctamente y, como también dije en la respuesta, no lo quiero modificar mientras intento encontrar el error.

En cuanto a los millis(), los descarto por los días pasados. Y si, siempre uso unsigned long

Saludos