arduino e gps problema obbligo reset

il problema è che adesso funziona, domani devo resettare arduino se no non va.
questo è lo sketch ( ho levato la prima parte che serve piu che altro per far funzionare la scheda wifi).

torre: arduino uno->wifi shield-> fastrax 501 (su proto shield)

  Udp.begin(localPort);
  mySerial.begin(9600);
}
void  loop() {
  int packetSize = Udp.parsePacket();
  if (packetSize )
  {
    Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);
    ss = packetBuffer;
    if (ss == "j") gpscamper();
  }
}

void gpscamper()
{
  bool newData = false;
  for (unsigned long start = millis(); millis() - start < 2000;)
  {
    while (mySerial.available())
    {
      char c = mySerial.read();
      if (gps.encode(c))
        newData = true;
      //  Serial.print (c);
    }
  }
  if (newData)
  {
    float flat, flon;
    gps.f_get_position(&flat, &flon );
    Udp.beginPacket( Udp.remoteIP(),  Udp.remotePort());
    Udp.print(flat, 6);
    Udp.print(" ");
    Udp.print (flon, 6);
    Udp.endPacket();
    //   Serial.print (flat,6);
  }
}

il resto dell'impianto è un pò complesso, ma penso non c'entri nulla.
nelll'insieme con il router wifi con chiavetta c'è un altro arduino che mi manda altro tipo di valori,
e quando chiedo me li manda senza dover resettare.

tornando allo sketch, quando mi serve la posizione gps mando una "j" ogni 5 secondi in modo di avere una specie di real time.
quale potrebbe essere il problema?

ho pensato che forse è che il modulo gps andando 24 ore su 24 continui a mandare dati ad arduino (anche se in realtà arduino non me li manda perchè non li richiedo)
Thanks :slight_smile:

Vedo un confronto if ss=="j", mi viene da pensare che usi gli oggetti String.
Poi stai parlando di wifi, gps ecc.. Mi viene da pensare ad un problema di esaurimento di RAM.
Qui c'è per sapere l'occupazione della memoria.

grazie @Leo per i link.
ho fatto ulteriori prove:
questo weekend avevo un po di tempo e ogni 3 ore circa interrogavo "arduino con gps" ,
questo per 3 giorni e regolarmente mi ha inviato le coordinate.

mentre per 10 giorni passati di prove, interrogandolo solo il giorno successivo (cioè dopo tante ore), non funzionava piu

ciò mi fa pensare che se non lo interrogo per 12 ore (?), arduino o il gps oppure qualcos'altro si addormenta,
e resettando solo l'arduino riparte regolarmente.
mi sa che le cose si complicano