No soy consciente de una forma en que esto sea posible en última instancia, aunque (especialmente si tienes una versión de chip soldado) puedes hacerlo bastante difícil. Así que concentrémonos en las cosas que podrías hacer para evitar una modificación accidental o casual:
-
puede desactivar la conexión de restablecimiento entre el chip de interfaz USB y el ATMEGA. Esto haría que sea mucho más difícil entrar en el gestor de arranque que se utiliza para descargar nuevos bocetos.
-
en un UNO específicamente, puede volver a flashear la micro interfaz USB para deshabilitarla completamente, o simplemente eliminar el código para manipular la línea de reinicio (si aún la necesita para la comunicación en tiempo de ejecución)
-
puede eliminar el gestor de arranque de ATMEGA; esto significaría que necesitaría un circuito ISP (potencialmente otro Arduino) para cambiar el boceto. En una configuración de producción, podría escribir un boceto que contenga suficiente esquema de programación flash para deshabilitar el cargador de arranque cuando se ejecute por primera vez, lo que significa que podría usar el cargador de arranque de fábrica para obtener su código en el chip, y luego bloquear cualquier actualización adicional esa ruta, aunque conectar a un programador de ISP todavía sería una posibilidad para usted u otros.
-
Además de deshabilitar el gestor de arranque o la entrada en él, puede configurar el bit de fusible para cambiar el pin de reinicio a un GPIO (o ¿está solo en el ATTINY? No lo he verificado). Esto significaría que el ISP ya no sería posible y que se necesitaría un programador de alto voltaje; posiblemente sea necesario trasplantar el chip a un programador.
-
Puede habilitar el fusible de seguridad, impidiendo la lectura de su código, pero AFAIK no evita que alguien limpie el chip para reutilizarlo
-
Podrías cortar físicamente los pines críticos para la ISP y la programación de alto voltaje pero no necesarios para tu aplicación, al ras con el paquete. Esto requeriría que alguien profundice en el paquete para obtener las conexiones para reprogramar ese chip, pero -
Recuerde que nada de lo que haga puede superar la relativa facilidad de cambiar la parte ATMEGA por una nueva, o más simplemente cambiar toda la Arduino por una nueva. (Bueno, supongo que puede enterrar todo el proyecto en una gran masa de compuesto para macetas ...)