Este tutorial se basa en este link
Podemos usar una tarjeta Arduino como programador ISP para otra tarjeta Arduino o un clon. En este caso usaré un clon de Arduino UNO para actualizar el cargador de arranque de un clon de Arduino MEGA 2560, usando el script del ISP de Arduino IDE.
Tuve que hacer esto porque estaba reprogramando mi impresora 3D BQ Prusa i3 Hephestos bastante modificada del original, y estaba cargando la nueva versión de Marlin 2.0.1. Pero en diferentes versiones de mi modificación del software a las características de hardware existentes en mi impresora 3D, descubrí que en ciertas versiones el MEGA 2560 se atascaba en medio del proceso de carga. Esto se debe aparentemente a un viejo cargador de arranque defectuoso. El bootloader tiene un modo de depuración, y entra en este estado cuando encuentra alguna cierta secuencia en el flujo que se está cargando, terminando así la comunicación.
Se puede comprar un programador y seguir los pasos para el programador particular que se tenga. Pero este ejemplo utiliza otra tarjeta Arduino, y se la convierte en un programador ISP con un script.
En este caso estamos usando un Arduino UNO como programador, para cambiar el cargador de arranque de un Arduino MEGA 2560. Necesitamos identificar el pin 1 de la conexión del ISP.
El pin 1 del conector ISP es el Pin MISO y se conecta al pin D12 del programador Arduino. El pin 2 es el Vcc/5V y se conecta al pin 5V del programador. El Pin 3 es el Pin SCK y se conecta al Pin D13 en el programador. El Pin MOSI es el Pin 4 de la conexión ISP, y se conecta al Pin D11 en el programador. El Pin 5 de la conexión ISP es el Pin de Reset y está conectado al Pin D10 del programador. Y el Pin 6 en el conector ISP está conectado al GND del programador. Como se puede ver en el diagrama.
El programador está conectado al computador con el IDE de Arduino a través de un USB. Lo más probable es que sea un cable USB B, pero puede ser diferente en algunos clones y modelos de tarjetas arduino o compatibles.
Tenemos que programar a nuestro programador como un programador ISP. Todo está ya preparado en el IDE de Arduino. Conecte su tarjeta Arduino, que va a ser utilizada como programador, como es habitual. Seleccione el tipo de tarjeta, el puerto serie, etc. para poder subir un script a la misma.
Para obtener el Programa ISP sólo tiene que ir a File | Examples | 11.ArduinoISP | ArduinoISP.
Ahora está listo para cargar el software de programación ISP en su tarjeta Arduino. Sólo tiene que hacer clic en Upload, y el IDE compilará y cargará el programa.
Una vez que el programa se carga en la tarjeta, ya está configurado como programador ISP. No hay nada que cambiar en el hardware. También la conexión está lista para la transferencia. Así que el siguiente paso es cambiar el tipo de tarjeta al modelo de destino. De esta manera Arduino IDE sabe qué tipo de tarjeta estamos programando. En este caso un clon de Arduino MEGA 2560.
Seleccione Tools | Programmer | Arduino as ISP para que el entorno IDE sepa con qué tipo de programador está tratando.
Ahora estamos listos para subir el nuevo cargador de arranque que ya está en las carpetas del IDE de Arduino. Hacemos clic en Tools | Burn Bootloader y tenemos que esperar unos segundos hasta que el IDE termine.
Devuelve «Done burning bootloader».
Ahora podemos desenchufar y usar nuestra tarjeta Arduino con su nuevo cargador de arranque.