superlol:
se dovessi fare una cosa simile io modificherei il core di arduino in modo che non si resetti all'aprirsi della seriale ma quando riceve una connessione in apertura dal protocollo (parte relativamente facile), quindi parte il bootloader che si mette in ascolto e di conseguenza programma il micro.
Hai quasi descritto il bootloader della Leonardo.
![]()
Per il TFTP c'è questa sezione che rimanda a git --> http://labs.arduino.cc/TFTPBootloader/Index