Ya que tenemos todos los elementos de la electrónica conectados, ahora podemos pasar a cargarle el firmware definitivo a nuestra impresora, este firmware va a ser el Marlin. El Marlin, no lo hemos cargado antes, porque de haberlo hecho, no habríamos sido capaces de mover los motores para ajustar los pololus, ya que si Marlin no detecta que la temperatura del HotEnd es la adecuada o simplemente no detecta el sensor, no nos va a dejar extruir.

Ahora, como ya tenemos todo conectado, le vamos a cargar el Marlin, para ello vamos a necesitar el entorno de programación de Arduino en una versión más actual (yo voy a usar la versión 1.0.5), vosotros podéis descargaros la versión más actual desde la página oficial de Arduino. También vamos a necesitar el Marln, yo voy a usar una versión ya testada que funciona perfectamente y que vosotros podéis descargar de aquí.

Una vez que tengáis tanto el entorno de Arduino en una versión actual como el Marlin, lo descomprimís y seguís estos pasos:

Abrir el entorno de Arduino, conectad la electrónica y seleccionar tanto la tarjeta que estáis usando (Arduino Mega) como el puerto al que está conectado.

entorno prog

Una vez configurada la tarjeta y el puerto, vamos a abrir el Marlin, para ello en la barra de herramientas le damos a archivo/abrir.... y dentro de la carpeta que hemos descargado con el Marlin, vamos a encontrar un archivo que se llama "marlin.ino", lo abrimos y aparecerá una nueva ventana.

entorno prog2

Al igual que hacíamos con "Sprinter", tenemos que ir a la pestaña de configuración, que es donde vamos a encontrar todos los parámetros que debemos de configurar.

Los primeros parámetros que nos vamos a encontrar van a ser el tipo de placa que tenemos y el numero de extrusores de nuestra máquina, en mi caso, como estoy usando una RAMP's 1.4 tendré que asignarle el número 33 (que es el numero que me indica la lista de tarjetas), y en el numero de extrusores le pondré "1", ya que mi maquina tan solo cuenta con 1 extrusor.

marlin 1

Más abajo nos encontraremos parámetros relacionados tanto con los termistores como con la temperatura, en el parámetro de pone "#define TEMP_SENSOR", tenemos que indicarle que tipo de sensor estamos usando, en mi caso estoy usando un termistor de 100K, por lo que tengo que asignarle el numero "1", como veis, hay posibilidad de asignar hasta 3 tipos de sensores para 3 posibles HotEnds, (en mi caso como solo tengo un HotEnd con un termistor, tan solo es necesario que configure el primero. Seguido a este parámetro, podemos ver otro que pone "#define TEMP_SENSOR_BED", que será el que defina el tipo de termistor que usamos en la cama caliente.

marlin 2

Un parámetro que debemos conocer es el "#define HEATER_MINTEMP", este es un parámetro que no alteraremos, pero hay que saber lo que hace, y es que si intentamos calentar tanto el HotEnd como la cama calietne cuando el sensor registra una temperatura inferior a la que indica aquí, la impresora nos va a dar un error que dirá "ERROR_MIN_TEMP", y no calentará, por ello la habitación o entorno donde este la impresora deberá de estar a una temperatura mayor que la que aquí aparece.

Otro parámetro MUY IMPORTANTE referente a la temperatura, es el que va a fijar el límite de temperatura tanto del HotEnd como de la cama caliente. el de la cama quizás no sea muy relevante, pero el del HotEnd si, ya que si tenemos un HotEnd que no sea "All Metal", y superamos los 250º, es muy posible que fundamos alguna de las partes del propio HotEnd, por ello hay que ponerle un límite.

Yo os diría que si vuestro HotEnd no es "All Metral", fijéis este límite entre 250-260⁰, y si es totalmente metálico lo pongáis en 300⁰.

marlin 3

Si seguimos bajando, nos vamos a encontrar otro parámetro que nos va a definir la temperatura mínima de extrusión, "#define EXTRUDE_MINTEMP", este es un parámetro de seguridad, que va a impedir que extruyamos nada si el HotEnd no está a la temperatura que indicamos aquí, esto se hace para proteger el extrusor e impedir extruir en frio.

marlin 4

Los siguientes parámetros a configurar hacen referencia a los finales de carrera y a el movimiento de los ejes, si habéis hecho el montaje de vuestra impresora de la misma manera que lo he hecho yo, lo valores que tendréis que poner son los que aparecen en la imagen. Los primeros parámetros activan las resistencias de "PullUp", necesarias si trabajáis con los finales de carrera entre señal y GND, el siguiente grupo de parámetros bloquean o no los ejes cuando se mueven, haciendo que permanezcan en la posición que se le ordena, y los últimos parámetros invierten el movimiento de los ejes, aunque yo os diría que este último parámetro no lo modifiquéis, simplemente, si el eje se mueve en la dirección incorrecta dadle la vuelta al cable.

marlin 5

Los últimos valores que vamos a configurar antes de cargar el firmware, son los que veis en la imagen inferior, el primero va a delimitar el área de impresión, y el segundo (valor que ya habíamos visto en el Sprinter) va a configurar los pasos que deben de dar los motores para moverse una unidad.

marlin 6

Para configurar el primer valor es tan sencillo como medir físicamente el recorrido de los ejes, desde que tocan el final de carrera, hasta el otro extremo (restarle unos milímetros para no apurar demasiado).

Para configurar los pasos por milímetro de los motores, lo haremos de forma similar a como lo hicimos con el extrusor, pudiendo directamente poner el valor que obtuvimos con anterioridad a la hora de calibrar el extrusor.

Para el eje Z, los pasos por milímetro van a depender de los pasos del motor, la resolución que le indiquemos a los pololus con los "jumpers" y el paso de rosca de la varilla.

La fórmula que debéis de seguir será la siguiente:

Pasos_por_mm = Pasos_del_motor_por_vuelta x Micro_pasos_del_pololu / paso_varilla

Si usáis un motor del tipo NEMA 17, tendrá 200 pasos por vuelta, la resolución del pololu o micro pasos del pololu con los 4 "jumpers" será de 16 y los pasos de una varilla de métrica 5 es de 0.8mm, por lo que el resultado de la ecuación es:

Pasos_por_mm = 200 x 16 / 0.8 = 4000

Que es el valor que tendréis que poner si usáis estos elementos, si vuestra varilla es de métrica 8, entonces el valor que pondréis será el de 2560.

Para el Eje X e Y, vamos a abrir el Pronterface, le diremos que se mueva 100mm, y mediremos la distancia real que se ha movido, el valor que nos dé, se lo vamos a dividir al valor que aparece en la casilla del eje X o Y (esta por defecto en 80) y lo multiplicaremos por el valor que le hemos ordenado moverse, dando como resultado el numero que debemos de colocar en la configuración de estos ejes.

Configuración del PID

>El PID es un controlador que está programado en el propio Arduino y que debemos de configurar para que la regulación de la temperatura sea lo más precisa posible, para ello vamos a abrir el Pronterface y vamos a ejecutar el comando "m303" (escribiendo este comando directamente sobre la consola del pronterface y dándole a ejecutar).

PID

Una vez lo ejecutemos, veremos cómo empieza a subir la temperatura del HotEnd y de manera automática el programa empezará a activar y desactivar la alimentación viendo cómo evoluciona la temperatura. De esta forma el programa va a comprobar la inercia térmica de nuestro HotEnd y después de un rato, nos va a dar unos valores ( Kp, Ki y Kd), estos valores son los que debemos de poner en el firmware para asegurarnos que nuestro HotEnd calienta de manera adecuada y no sufre oscilaciones de temperatura demasiado acusadas.

PID2

PID3

 

 

 

 

 

Deja tus comentarios

Enviar un comentario como invitado

0
terminos y condiciones.
Cargar Comentarios Previos
  • Siento haber tardado tanto en contestar, acabo de ver el comentario, si usas los DRV8825 con la configuración 1/32 deberás de doblar el número de pasos por unidad que debe dar la impresora 3D para moverse. En principio 1/32 de resolución es mucho para la impresora, la resolución esta marcada fundamentalmente por el extrusor cuyo diámetro de boquilla no puede ser tan pequeño como queramos (lo mas pequeño suele ser de 0.3mm) esto hace que por mucha resolución que tengan los motores las piezas no van a mejorar mas, por lo que puedes configurar los ejes en 1/32 o en 1/16, la diferencia va a ser imperceptible.

    Comentario editado por última vez entre hace cerca de 6 meses y Raúl Diosdado
  • Hola, como puedo ver la versión del firware instalado en mi tarjeta y si tiene Sprinter o Marlin y todos los datos del firware que tiene instalados, gracias

  • Hola, siento haber tardado tanto en contestar, para ver la versión del firmware que tienes estate atento al encender la impresora, en la mayoría te pone al arrancar una pequeña pantalla con la versión. En cuanto a los parámetros, si entras en la configuración, muchos de ellos son visibles, aunque lo ideal es tener el firmware para poder ver todos los parámetros. El firmware que esta en tu tarjeta controladora en ningún caso es descargable a tu ordenador, por lo que si no tienes una copia de seguridad no podrás extraerlo o incluso leer los valores que tiene

  • Hola Raul, tanto tiempo. Te queria consultar un problema, decidi cambiar las varillas de mi Prusa por unas de metrica 8. Configure con los pasos de este post en el Marlin, cambiando de 4000 pasos/mm a 2560 pasos/mm para el eje Z. El problema que tengo es que cuando mando a imprimir, se me levanta de mas el Eje z capa a capa, es decir, capa a capa levanta como unos 2mm maso menos, en vez de los 0,2mm que deberia levantar para formar la pieza. Y tambien observe que en vez de levantar 10mm(cuando le mando desde el software) me levanta 64mm (aproximadamente).
    Yo uso el software, Simplify 3D. Supongo que debo estar haciendo algo mal relacionado con el Software, ya que en el Marlin, creo que no hay mas cambios por hacer.
    Desde ya muchas gracias.
    Saludos,

  • Hola Arturo, siento haber tardado tanto en contestar, ¿que pololus estas usando? si usas los DRV8825 (pololus morados) puede que los tengas configurados a máxima resolución, y por ello se levante el doble de lo que debe.
    Los softwares de impresión normalmente lo que mandan a la impresora son unidades en mm, por lo que no creo que el problema este en el software, ya que a la impresora le llega por ejemplo 10mm e internamente lo que hace es pasar los mm a pasos que es lo que has configurado, pero los pasos dependen de la varilla, de los pasos del motor por vuelta (los NEMA 17 suelen tener 200 pasos por vuelta) y de la resolución de los pololus.
    Mira bien todo lo que tengas en el hardware y a una ultima lo que puedes hacer es una regla de 3, si con una configuración de 2560 pasos se mueve 20mm cuando le mando 10mm los pasos deberían ser 1280 (justo la mitad)

  • Raul, gracias por la respuesta. Era exactamente eso. Yo habia probado en cambiar los pasos pero se ve que hice mal la cuenta y ya habia descartado esa opcion. Lo hice como dijiste y anda correctamente. Asi que por ahora esta andando correctamente, espero que siga asi. Te agradezco, espero que andes bien. Saludos

  • Cordial saludo y felicitaciones por tan excelente informacion
    Por favor si puede colaborarme en un firmware que incluya la autonivelacion y que no me presente errores....ya hice la construccion total de la maquina y funciona bien con nivelacion normal....yo instale un sensor inductivo el cual funciona bien pero al montar el firmware de autolevel no funciona y presenta varios errores gracias

  • Buenos dais, el auto level es algo que debe ajustarse para cada impresora, si usas firmwares configurados para otras impresoras es muy posible que no te funcione. Actualmente no tengo ningún tutorial para autolevel, pero seguro que encuentras información al respecto si buscas en google, hay muchos tutoriales al respecto.
    Un saludo

  • Invitado - Julio abdala

    Buenas, antes que nada muy instructiva la pagina y super bien explicada. Felicitaciones por el trabajo. Y ahora una consulta: tengo la cama caliente deshabilitada desde el firmware y no se como modificarlo sin tener que volver a cargarlo, alguna solucion? Desde ya muchas gracias.

  • Buenas, para habilitar la cama caliente es necesario volver a cargar el firmware, no hay ninguna opción que por programa que active la cama si esta deshabilitada en el firmware. Un saludo