No es demasiado complicado recuperar el firmware que está grabado en el Arduino Mega que dejó de funcionar, siempre que siga operativo y se comunique.
Para ello, deberás utilizar la aplicación
AVRDUDESS (descomprime el archivo ZIP en una carpeta), conectando con la placa mediante USB o en su defecto por ISCP.
Para hacerlo por USB, debe cumplirse que en ambos Arduinos funcione esa conexión y que los dos tengan un bootloader instalado.
Te explico la forma de hacerlo por USB, quedando la opción por ISCP para otro tutorial en el caso de que no puedas hacerlo por USB.
No es necesario que tengas nada conectado al Arduino ni este a la RAMPS, pues le basta con la conexión USB para alimentación y comunicación.
La forma de saber si funciona la conexión USB es la siguiente: conecta el Arduino por USB y en el Administrador de dispositivos, comprueba si lo detecta (si no lo hace, las posibles causas son arduino, cable o conector defectuosos).
Si lo detecta y aparece en el apartado
Otros dispositivos, tendrás que cargar el driver correspondiente (Windows 10 suele detectarlo de forma automática).
Si todo está bien, aparecerá en el apartado
Puertos COM y LPT, con un número de puerto (en el ejemplo COM4):
Para saber si hay bootloader instalado, tendrás que intentar el proceso para ver si se completa con éxito o no.
Una vez asignado el puerto COM, ejecuta la aplicación avrdudess.exe y tendrás esta pantalla:
Selecciona en el apartado
Programmer: wiring; en el campo
Port:, el puerto COM asignado (en este ejemplo COM4); en el campo
Baud rate, 115200 y pulsa el botón
Detect del apartado
MCU.
Si hay bootloader, deberá aparecer el tipo de MCU como ATMega2560:
Sino, significa que no hay bootloader y en ese caso, no se puede utilizar la conexión USB y habrá que utilizar la ISCP.
Si se ha detectado la MCU, ya podremos guardar el firmware en un archivo, que después cargaremos en el nuevo Arduino Mega.
Pulsa el botón con los tres puntos del apartado
Flash; selecciona una ubicación y un nombre para el archivo (en el ejemplo D:\Prueba.hex); marca la opción
Read; en el campo
Format, selecciona
Hexadecimal (reading only) y pulsa el botón
Go, que iniciará el proceso:
Terminado el proceso, tendrás el contenido de la memoria Flash (bootloader y firmware) en el archivo seleccionado, que es lo que hay que cargar en el nuevo Arduino Mega:
Cierra la aplicación AVRDUDESS y desconecta el Arduino Mega averiado.
Repite todas las comprobaciones con el Arduino nuevo (USB y bootloader) y si todo va bien, comprueba el puerto COM asignado (debería ser el mismo).
Para realizar la carga del firmware, selecciona con el botón de los tres puntos del apartado
Flash el archivo creado antes; marca la opción
Write; en el campo
Format, selecciona Auto (writing only); en el apartado
Options, marca
Disable flash erase y pulsa el botón
Go.
Comenzará la carga:
y después verificará que se haya grabado sin errores:
Finalizado el proceso, indicará si todo ha sido correcto:
y en ese caso, ya tendrás el nuevo Arduino Mega con el firmware del anterior.
Si no está activado el uso de la memoria EEPROM, no tendrás que hacer nada más que instalar el nuevo Arduino y encender la impresora, pero si está activada dicha memoria tendrás que refrescarla, bien con las opciones del menú
Configuración (sus nombres dependen de la versión de Marlin, normalmente algo así como restaurar de fábrica y guardar EEPROM) o enviando los comandos gcode M502 y M500.
Por aquí estaré si tienes alguna duda sobre todo lo indicado anteriormente.