Electronic – AVR reprogramming in circuit wirelessly

avrin-circuitprogrammerspiwireless

What are my options when it comes to reprogramming an AVR in-circuit? The new program will be received via a wireless connection, so it will need to be stored in some temporary memory container.

I know the AVR can be programmed in this manner via a wired connection using SPI. Would it be necessary to implement a dedicated programmer slave controller that would receive the new program and have hard-wired connections and re-flash via SPI?

Any suggestions?

Best Answer

The basic problem of a remote software update is how you force an (unwilling) target into reprogramming mode. The most sure way is to have an extra micro-controller that supervises the communication and can force the main controller into boot- or programming mode, or maybe even do the actual (SPI) programming.

ANY other solution is at the mercy of the software running on your system. If by accident, hardware problem (power failure) or sabotage etc. the software won't cooperate with the reprogramming, you are stuck. Whether this warrants the addition of an extra controller is an engineering decision.