Bueno es muy complicado actualizar de forma remota los sketch de Arduino, tendrías que crear un script que se actualice a si mismo por la conexión ICSP de la placa Ethernet, pero como siempre... existe una forma que quizás sea un poco ams costo pero a la larga te va a convenir mucho mas, te recomiendo que empiezas a trabar con la placa Arduino YUN, esta si es capaz de actualizase de forma remota si lo configuras con un cliente DHCP.
No podría programarse solo, al programarse se borra todo lo que tenia antes y ahí esta el detalle donde queda el sketch nuevo y como programarse si no hay instrucciones o se sobrescribir.
tal vez un boot loader...
Lo que se me ocurre es un juego de dos Arduinos:
Uno que este trabajando arduamente haciendo lo que tenga que hacer y otro que este dormido y despierte cada cierto tiempo para actualizar si hay disponible una actualización, de lo contrario dormir de nuevo; cuando lo programe que espere por una confirmación del que hace el trabajo y que continué con el trabajo.
Aclaro que solo deje a mi imaginación que escribiera algo.
Si esto es posible de alguna manera, primero deberías de ver cuales son los pasos que hacen posible que el arduino se programe, yo no se mucho.
Gracias por tu respuesta. Si bien es cierto que tiene la posibilidad de la actualización remota, YUN no se adapta a los requerimientos del proyecto. Continuaré investigando.
Siguiendo con este tema se me ha ocurrido que podría enviarle el .hex a la tarjeta smd y buscar la forma que el bootloader cargue el código desde la tarjeta después de una orden de reinicio remota.
Como poder se puede, pero no se en el caso de los avr, en los motorolas 68hcxxxx si se puede guardando en una posicion de la ram porciones de codigo que van sobreescribiendo la eeprom, pero esto es porque tiene internamente un elevador de tension para poder borrar y escribir en la eeprom. ayudado por un booloader que se encarga de esto.