Actualizar firmware de impresora 3D CTC Prusa i3 Pro B

La impresora CTC DIY Prusa i3 Pro B es una impresora 3D barata y que para el precio que tiene se pueden obtener unos buenos resultados, pero tiene el problema de que no podemos actualizarle el firmware. En este artículo explico el proceso que he seguido para conseguirlo.

Esta impresora está basada en una Geeetech Prusa i3, y por tanto usa la misma placa controladora (motherboard), la GT2560, que para simplificar es un Arduino Mega2560 con más cosas. La diferencia, y esto es importante a la hora de actualizar el firmware aunque lo veremos más adelante, es que el microcontrolador no es el ATmega2560, sino el ATmega1280.

El firmware que lleva la impresora es Marlin, así que sabiéndolo lo primero que se nos ocurre es que sólo tendríamos que bajarnos los fuentes de Marlin, cargarlos en el Arduino IDE, conectar la impresora al ordenador por USB y subir Marlin al Arduino. ¡Y es así de fácil! pero cuando tengamos cargado el booloader en el Arduino de la impresora. Este bootloader es el que nos permite actualizar el microcontrolador del Arduino sin tener que usar un programador externo, y desgraciadamente el fabricante ha metido Marlin en la placa pero sin el bootloader.

Aunque se puede grabar usando un programador de microcontroladores, el método que voy a explicar es usando otro Arduino como programador.

Material necesario

  • Placa GT2560
  • Arduino (vale el UNO o Duemilanove). Aunque se podrían usar otros.
  • Cables para pins de un hilo Macho-Hembra, a ser posible de colores para distinguirlos mejor.
  • Arduino IDE reciente (yo he usado 1.8.3)

Paso 1. Descargar e instalar Arduino IDE

Arduino IDE es el entorno que nos permitirá grabar los microcontroladores de Arduino. Descargar de la web de Arduino y seguir los pasos de instalación. Es fácil.

Paso 2. Grabar ArduinoISP en el Arduino programador

ArduinoISP es un programa que grabaremos en el Arduino que usaremos como programador, así que conectamos el Arduino al ordenador y abrimos el Arduino IDE. Una vez abierto le damos a Archivo->Ejemplos->ArduinoISP->ArduinoISP.

A continuación tenemos que seleccionar el modelo de Arduino que vamos a usar como programador. Eso se hace en Herramientas->Placa.

Y por último le damos al botón de arriba a la izquierda que es un círculo con una flecha indicando a la derecha. Con ese botón le decimos que grabe el programa en el Arduino.

Empezará grabar y cuando termine, si todo ha ido bien, debería aparecer algo así en la parte de abajo del IDE:

Vale, con esto ya tenemos listo el Arduino para poder actualizar la placa de la impresora.

Paso 3. Conexión del Arduino a la placa GT2560

Antes de nada, asegúrate de que tanto el Arduino que usaremos como programador como la placa GT2560 están desconectados tanto del ordenador como de la corriente eléctrica. Quita el conector de corriente de la placa para asegurarte.

Y ahora tienes que hacer las conexiones según la siguiente imagen:

Este es el aspecto que debe tener una vez conectado:

Una vez hechas todas las conexiones, conectamos el Arduino al ordenador por USB. Si todo va bien, deberían encenderse tanto el Arduino como la placa GT2560 de nuestra impresora.

Paso 4. Grabación del bootloader

Abrimos el Arduino IDE y seleccionamos una nueva placa: Herramientas->Placa->Arduino/Genuino Mega or Mega 2560

Ahora un paso importante. Como la placa que trae la impresora CTC no es exactamente la misma GT2560, tenemos que cambiar el procesador, ya que la original trae un ATmega2560 y esta trae un ATmega1280, así que tenemos que seleccionarlo en: Herramientas->Procesador->ATmega1280

Si lo hemos hecho bien, en la parte de abajo a la derecha del IDE debe aparecer lo siguiente:

Ahora hay que decirle que grabe el Bootloader. Hay que darle al menú Herramientas->Quemar Bootloader. Lo puedes ver en la imagen siguiente:

Quemar bootloader en arduino

El IDE empezará a grabar el bootloader (tarda un rato) y cuando termine podrás ver una luz roja parpadeando en la placa GT2560. Eso indicará que el bootloader está cargado.

¡Ya está! Ahora podemos desconectar el Arduino que hemos usado como programador y no conectar aún la corriente externa.

En este punto tenemos la impresora sin firmware, pero lista para cargarle uno actualizado y con posibilidad de guardar los ajustes a la EEPROM, que realmente es lo que más echaba de menos y lo que me motivó a hacer esto.

Paso 5. Descarga del nuevo firmware

El firmware que vamos a usar es una modificación del Marlin original modificado por mí para que funcione en esta impresora. Se puede descargar de aquí. Si tienes alguna mejora que proponer, puedes ver las modificaciones en mi fork del repositorio, concretamente en la rama que he creado para ello.

Paso 6. Grabación del firmware

Una vez descargado, descomprimimos el ZIP en cualquier parte del disco duro y abrimos el Arduino IDE. Le damos a: Archivo->Abrir y buscamos en la carpeta donde hemos descomprimido el ZIP un fichero que se llama Marlin.ino. Una vez abierto, nos aseguramos de que seguimos teniendo seleccionada la placa Arduino/Genuino Mega or Mega 2560 y el procesador ATmega1280. Esto último es muy importante.

Si todo está bien, pulsamos sobre el botón «Subir», ese pequeño de arriba a la izquierda con una flecha señalando a la derecha. En ese momento el Arduino IDE comenzará a grabar el firmware en la placa, esperamos un rato y nos avisará de que ha terminado. Esperemos que sin problemas. :-)

¡Se acabó! Una vez que termine de grabar podrás ver cómo la impresora se reinicia y verás la nueva versión de Marlin en el LCD. Ya tienes el firmware actualizado y funcionando, sólo te queda hacer los ajustes necesarios para empezar a imprimir, con la novedad de que ahora podrás grabarlos en la EEPROM.

Espero que todo este tocho te haya servido de ayuda y espero tus comentarios.

ACTUALIZACIÓN

Tenemos un grupo de Telegram para hablar sobre la CTC Prusa i3. Si estáis interesados, sois bien recibidos.

54 comentarios en “Actualizar firmware de impresora 3D CTC Prusa i3 Pro B

  1. Raúl Martín

    Buenos días Antonio, si debo llamarte Skarcha me lo haces saber, por favor. Gracias a tu tutorial logré instalar el bootloader a mi placa y ya puedo trastear con ella directamente desde el PC. Gracias porquue esto en sí ya supone un paso adelante. También instalé el firm, creo que sin problemas, y aparece como Marlin 2.0.x. Busqué los PID´s con Pronterface y, a la hora de compilar me da unos errores. También te digo que cuando cambio algo, como esos PID, guardo el archivo del sketch con otro nombre, entonces probé con el tuyo original y también me daba los mismos errores. El Arduino Ide era 1.8.16 probando después con la versión 1.0.6, con identicos resultados.
    Decirte que no tengo Telegram y que esto de las redes me viene un poco grande. Te pongo los errores que aparecen y que no he sabido encontrar solución por si pudieras ayudarme. Puedas o no, te doy las gracias por tu tiempo y tu ayuda.

    Errores v 1.8.16

    C:\Users\Usuario\AppData\Local\Temp\ccTDI0LZ.ltrans0.ltrans.o: In function `main’:

    C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/main.cpp:43: undefined reference to `setup’

    C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/main.cpp:46: undefined reference to `loop’

    collect2.exe: error: ld returned 1 exit status

    exit status 1

    Error compilando para la tarjeta Arduino Mega or Mega 2560.

    Errores v 1.0.6

    core.a(main.cpp.o): In function `main’:
    C:\Program Files\arduino-1.0.6\hardware\arduino\cores\arduino/main.cpp:40: undefined reference to `setup’
    C:\Program Files\arduino-1.0.6\hardware\arduino\cores\arduino/main.cpp:43: undefined reference to `loop’

  2. Airam

    Muchísimas gracias, pude actualizar correctamente mi impresora 3D, pero tuve que poner como chip el ATMega 2560. Mi placa es 2560 rev A.

    Un saludo

  3. jaime campos

    todo bien, pero el eje X esta al reves cuando hago venir todos a casita si va para el lado opuesto al end stop , se epuede ahcer algo

  4. antoniete96

    mil gracias despues de buscar y probar alrrederor de unos 20 firmware diferentes el tullo le ha echo funcionar a la maldita impresora. de verdad mil gracias. un saludo

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.