Arduino nano perdendo o firmware

O meu protótipo esta montado com Arduino Nano, display LCD 20x4 serial I2C, modulo ponte H L298 controlando motor DC.
Baixo o firmware para o arduino nano, roda tudo certinho, porém após algum tempo de uso o firmware para de rodar e tenho que grava-lo novamente.

ou voce tem alguma condiçao prendendo seu programa, ou rotina que escreve em algum lugar que escreve na memoria flash.

quanto tempo roda antes de parar?

Oi Arnold, obrigado por interagir.
Estou com o protótipo em teste e ajustes. Não tem tempo definido para acontecer. Basicamente o equipamento tem três tipos de ciclo de operação, 6, 12 e 24hs. Já rodou durante vários dia, e de repente ao ligar o equipamento o display liga s/ nenhum caractere como como se estivesse sem o programa baixado. Seria o caso de lhe enviar o código. Qual melhor maneira de te enviar?
Como mencionei só consigo baixar o programa para o Nano na condição (old bootloader), isto poderia ser uma causa? Seria o caso de atualizar o bootloader?

Não acho que e tenha nada haver com o bootloader antigo vs o novo. Pode ser que em algum momento ele da um reset , e entra em modo de e programação . Algo assim. Já tentou um outro chip ? Apertar o botão de reset não resolve? Tem que realmente reprogramar?

Ok;

  • Tenho 3 Nano, acontece com os três;
  • Reset não resolve;
  • Baixo o programa novamente e volta a funcionar;
    A primeira versão estava sendo testada em campo com “Uno” e não tenho certeza mas acho que estava acontecendo tb. Nos últimos testes e atualizações passei a utilizar o Nano onde vem sendo testado com mais rigor e caminhando para finalizar. Não descarto alguma falha no programa ( pois ainda não é o meu forte), peguei o projeto iniciado. Quem iniciou o projeto me passou na condição de não poder continuar por questões profissionais. S/ querer abusar de sua boa vontade posso lhe enviar o código da melhor maneira que preferir.

Oi Arnold;
Me lembrei de um detalhe que sempre ocorre ao compilar o programa. Mensagem ao final da compilação (Pouca memória disponível, problemas de estabilidade podem ocorrer ), que estava desconsiderando, pois me informaram que a mesma é irrelevante.

O sketch usa 16690 bytes (54%) de espaço de armazenamento para programas. O máximo são 30720 bytes.
Variáveis globais usam 1676 bytes (81%) de memória dinâmica, deixando 372 bytes para variáveis locais. O máximo são 2048 bytes.

Pouca memória disponível, problemas de estabilidade podem ocorrer.

ta , primeiro usa “const” ou progmem ou (F’ ', tipo https://www.arduino.cc/reference/en/language/variables/utilities/progmem/

assim voce economiza um pouco de memoria sram.

99% de certeza que um overflow está corrompendo sua memória. Especialmente porque você está usando um display 4linhas e está guardando os nomes como variável locais quando você digita o texto.

No lugar de Lcd.write(“hello”)
Usa. O macro F() tipo: Lcd.write(F(“hello”))

Oi Arnold;
Fico muito grato pela ajuda até aqui. Vou tentar implementar as suas dicas. Como aprendiz de feiticeiro vou demorar um pouquinho a lhe responder, mas faço contato assim que tiver novidades. Como lhe disse anteriormente peguei o bonde andando como desafio, mas como dizem, ninguém aprende a levantar s/ antes cair. Estou em MG e vc?