Algumas pessoas perguntaram se a reinicialização automática é possível com o nrf24l01. Com um pequeno truque - é! Se você se lembra, o rf24boot não usa a linha IRQ do nRF24L01. E como a linha IRQ está ativa e baixa:
* Conecte a linha IRQ ao RESET através de um jumper
* Mascare todos os IRQs nRF24L01 enquanto o bootloader funciona.
* Desmascarar IRQ TX_DR (dados recebidos) antes de pular para o código do aplicativo
* Qualquer pacote recebido pelo nRF24L01 resultará na reinicialização do avr no bootloader como se o reset tivesse sido pressionado.
Isso não funcionará se você inicializar nRF24L01 no código do seu aplicativo e usá-lo para qualquer coisa. Portanto, você ainda terá que implementar algum tipo de redefinição de software em seu firmware ou simplesmente se levantar e apertar o botão de redefinição.
Os truques mencionados acima atingirão o git master assim que eu conseguir as placas para o meu próximo projeto, onde o jumper necessário está integrado.