15 feb 2017

Añadiendo cama caliente a la Impresora 3D BQ Hephestos: Instalación y compilación firmware (2ª Parte)

Si queremos imprimir en ABS, necesitaremos mesa calefactada

Hay instrucciones de cómo hacerlo en la página oficial de BQ España, pero están desfasadas y sólo explican cómo hacerlo en la versión 1.4.2, que difiere sustancialmente de las últimas versiones más afinadas del firmware, como la 2.3.1 o 2.4.0 (no lo intentéis con la 2.4.0; da error de compilación nada más empezar).

Bueno, resumiendo, os indicaré cómo compilar el firmware para que os sirva para éstas y sucesivas versiones, con la opción de cama caliente activada y que funcione correctamente. Pero antes de nada, os muestro cómo la he montado yo (ya hay tutos en youtube así que me ahorro esta parte - El chico de este vídeo, aunque de físico y ropa clavadito a mí, no soy yo jeje).
Un inciso... una empresa de la talla de BQ debería tener precompilados los firmwares con las diferentes opciones, y dejar elegir al usuario (incluso versiones con sensores de altura para autocalibrado de mesa), es inaudito que un usuario que no tiene por qué saber nada de compiladores, tenga que comerse la cabeza... aunque en el fondo de eso se trata cuando es una impresora que te montas enterita tú mismo... pero es una nimiedad compilarlo y ahorrar muchos quebraderos de cabeza (hay varios hilos en los foros de dudas sobre este tema).
Antes de nada, aparte de la mesa, cables y termistor, para alimentar la mesa necesitamos una fuente de alimentación de 12V de al menos 8A (mejor de 11 o algo más); cuanto más amperios antes calentará la mesa y más fácilmente la mantendrá caliente. Lo más económico y fiable es utilizar una vieja fuente de alimentación ATW de al menos 300W, fijándonos en los amperios que indica para la conexión de +12V, son duraderas y con el ventilador están bien refrigeradas:



Para encender la fuente, basta con puentear el cable verde con uno negro, o mejor colocar un interruptor por si queréis dejarla apagada cuando uséis PLA:


La placa que traen las impresoras de BQ traen un MOSFET con disipador que puede manejar perfectamente 20A, pero es mejor evitar que pase toda esa corriente por la alimentación de la placa Arduino 2560 y hacerlo aparte con un relé.

Este es el relé electrónico de estado sólido que usaré, hasta unos 80A pico.
Al utilizar un relé, de forma independiente de la electrónica Ramps/Arduino, también podéis usar una fuente de otro voltaje (entre 5 y 20V), ya que toda la energía se convierte en calor, hablaremos de Vatios, si el transformador es de 12V y 11A tendremos 132W, que con un ambiente de 20ºC son suficientes para calentar la cama en 3 minutos y mantenerla caliente a 70ºC, aunque evidentemente os tardará menos cuanto más potente sea. BQ vende una de 25A por 30€.

Para que funcione la alimentación al relé, yo he puenteado con dos cables de la alimentación principal a la alimentación de la cama, en la clemá verde (el relé no consume casi nada, por lo que pueden ser cables finos):
Abajo a la izquierda, se indica con V+ y V- en grande la alimentación de la cama

No voy a entrar en demasiados detalles en la colocación de la mesa; para que no me estorbaran demasiado los cables lo que hice fue preparar primero por dónde los pasaría, de forma que pudieran doblarse sin estirarse ni engancharse en ningún sitio al moverse la mesa de atrás adelante y viceversa.

El termistor de la cama va conectado justo al lado del termistor del inyector, da igual polaridad
He utilizado cinta kapton para amarrarlos entre sí y hacer más rígido el conjunto, y que no anduviera cada cable por su lado.


Luego los he cortado calculando que con la máxima extensión, sobrara algo de cable, pasando por debajo hasta su sitio cada uno:


Seguidamente los he soldado, con el termistor metido en el hueco pero sin sobresalir demasiado (en este punto es conveniente poner por el otro un trocito de cinta Kapton y silicona transparente para fijar el termistor), 

y finalmente amarramos bien con cinta kapton.


La cama entonces se amarra con los muelles y tornillos sustituyendo a la base original, y justo debajo del cristal. El cristal aísla un poco el paso del calor, y hay gente que utiliza directamente la base caliente sin cristal a menor temperatura, pero no lo recomiendo, tarde o temprano dañaremos las pistas que la calientan.

He colocado el relé en la parte de atrás, cuando se alimenta de 12V activa el paso de la corriente, que directamente alimenta la cama caliente. Uno de los polos del transformador que alimentará la cama se conecta directamente, y el otro al interruptor. Una vez todo conectado y actualizado el firmware, se puede dejar justo debajo de la placa electrónica:

Es necesario amarrar el relé para que no se mueva con el vaivén de los cables que van a la mesa

Para conectar la alimentación a la mesa he utilizado un conector MOLEX hembra, para poder desconectarla en los mantenimientos que sean necesarios (el cable amarillo de la fuente ATX es el de 12V):

Y ahora es donde la matan... compilando el firm con soporte para la mesa

Antes de nada, descargar el código fuente 2.3.1 del repositorio github de BQ, (o la última versión donde se encuentran las diferentes actualizaciones), es el archivo "source code (zip)". Con la 2.4.0 no me compilaba (faltaban archivos)
Lo descomprimimos en una carpeta, da igual dónde, pero es conveniente dejarla por ej. en C:\Marlin para simplificar los pasos.
Requiere Arduino instalado en C:\ (ver indicaciones en la documentación de la web), además de los controladores USB, por lo que lo instalamos en C:\Arduino con los controladores (que además nos permitirá averiguar fácilmente qué puerto COM se le asigna en herramientas -> Puerto al abrir el IDE, que necesitaremos saber al inicio de la compilación).
Instala, por último, el compilador de código abierto Make para Windows, descargándolo de esta web.
Recientemente han hecho mejoras para que el mismo código soporte todas las impresoras BQ (bravo por ellos, más fácil de mantener y las mejoras se aplican a todas), de forma que antes de la compilación nos pregunta por el modelo de impresora (Hephestos en mi caso), el idioma (Español) y el puerto COM que Windows haya asignado a la impresora.
Ya no es necesario como en anteriores versiones usar el Arduino IDE, han creado un archivo de comandos que lo hace todo por nosotros; compila y flashea directamente, comprobando que todo ha ido bien.

Para que la cama caliente funcione, tenemos que hacer un par de cambios en el archivo Configuration.h que está dentro de la carpeta de nuestra impresora, en mi caso \Marlin\config\hephestos. Si lo véis complicado, aquí podéis descargar los fuentes ya modificados para esta impresora, versión 2.3.1, que sólo falta compilar.

Tenemos que buscar y descomentar (quitando las dos // del principio):

//#define HEATED_BED_SUPPORT   -->   #define HEATED_BED_SUPPORT

Y por último cambiar en este texto el 0 por un 1:

#define TEMP_SENSOR_BED 0  -->  #define TEMP_SENSOR_BED 1

Guardamos el archivo y ya podemos compilar. Antes de nada, conectamos el cable USB de la tarjeta al ordenador, y abrimos una ventana de comandos con 'cmd' y ejecutándolo como administrador (suele estar en la carpeta de Inicio -> 'Sistema de Windows' en Win10 o en accesorios en Win7 y anteriores).

Escribimos en la ventana de comandos:

'cd .. ' <enter> hasta que salgamos a la raíz C:\ (si no estamos en C:, cambiamos con 'C:').

'cd Marlin' (el directorio donde hemos dejado los archivos a compilar)

ejecutamos 'make.cmd' (todo sin las comillas), y respondemos a las preguntas (modelo, idioma y puerto COM con un número, que como hemos dicho arriba podemos averiguar con el IDE Arduino).

Si has instalado todo correctamente, el IDE y el GNU Make bien instalado, debería ponerse a compilar y en unos segundos ponerse a grabar el firmware en la placa (verás las luces de la placa parpadear al comunicarse por el puerto serie). La ventana de comandos tendrá un aspecto parecido a este:


Ahora, al reiniciar la impresora, verás un cambio en la pantalla:
Previamente con el firmware anterior veíamos esto:


Y ahora vemos esto, con indicación de la temperatura de la cama y la temperatura deseada por el programa a la derecha de la barra (y no se pondrá a imprimir hasta alcanzarla, y que se establece en el programa generador del Gcode, como el Cura u otro):


Hay que tener en cuenta que los programas anteriores, realizados sin cama caliente, no la activarán, así que no nos valen para ABS u otros que requieran cama caliente.
Yo utilizo perfiles diferentes en el Cura, uno para PLA, otro para ABS y otro para Filaflex (facilita la tarea de cambio de material); 
  • En la pestaña de configuración avanzada, indicamos que tiene mesa caliente (Hotbed).
  • En el apartado de GCode, hay que añadir para que se apague la cama al terminar, M140 S0 en el "end gcode" del programa que usemos, Slic3r, Cura o el que sea.
  • Desactivamos por completo el ventilador de enfriado para el perfil de ABS, es mejor que enfríe poco a poco ya que encoge mucho al enfriarse, apareciendo separación de capas y levantándose en las esquinas (dicho "warping" puede mejorarse con el valor de FLOW en el programa Cura o el que usemos, subiéndolo un poco por encima del 100% (105 o así), obtenemos mejor adherencia a costa de hacer la pieza unas décimas más grandes). Muy importante que la primera capa esté bien apretada al soporte.
  • Temperatura de inyección a 235-240ºC y mesa a 70-80ºC.

El ABS agarra bastante bien utilizando la laca Nelly igual que con el PLA, y si necesitáis que os agarre mejor para evitar el warping siempre se puede dejar el "brim" proporcional a la pieza (el "brim" es un offset adicional en la primera capa alrededor de la pieza).
Si aún así tenéis problemas, podéis conseguir que prácticamente quede unida al cristal utilizando una mezcla acetona con restos de ABS en una proporción 6/1 (esperar que se vaya disolviendo) en un spray para pulverizar sobre el cristal (si aún así no agarra bien, un cristal pulido o esmerilado blanco agarra mejor).

El PLA al ser ecológico y más económico, lo utilizo para prototipos o piezas de repostería o juguetes de niños (no son tóxicas), en cambio el ABS para piezas más duraderas y resistentes que estén expuestas a la humedad o que queramos que duren más de 2 años con mucha humedad (el PLA por su naturaleza orgánica procedente de azúcares, con la humedad se vuelve quebradizo y enseguida se disuelve).
Además el ABS, si imprimimos en un local cerrado y mucho cantidad, genera vapores nocivos, por lo que es recomendable mantener ventilado, pero sin cambios bruscos de temperatura, que lo vuelven quebradizo durante la impresión.

Añadiendo una cobertura para mantenimiento de temperatura

Es muy conveniente, para ahorrar energía y que la pieza no se enfríe tanto, crear una caja o cobertura aislante; yo he utilizado policarbonato celular, más económico y aislante que el policarbonato macizo.






Simplemente he cortado 4 trozos con las medidas correspondientes para una caja sin parte trasera (la parte trasera es la pared de pladur) y pegado las piezas con silicona:


Se coloca desde el frente, pegada a la pared, y guarda muy bien el calor. Posteriormente le he puesto una ventana en el frente, con una lámina de policarbonato para poder ver el avance de las impresiones con claridad.

Bibliografía:

4 comentarios:

  1. En primer lugar, muy buen aporte, interesante como siempre. Un consejo para mayor estabilidad de la fuente de alimentación sería recomendable poner una carga en la línea de +5V, una resistencia de potencia que disipe unos cuantos watios ayuda a que las tensiones de todas las salidas sean correctas.

    ResponderEliminar
    Respuestas
    1. Gracias a tí por el aporte Shuko, no sabía que pudiera afectar (¿tal vez en las fuentes de calidad no pase?). En mi caso no es necesario mantener estable el voltaje de salida, pero le vendrá bien a quien alimente a través de placa. Gracias!

      Eliminar
    2. En general las fuentes están pensadas para tener una carga aprox. equilibrada en las salidas. Las fuentes más modernas tienen una potencia mucho mayor en la línea de 12V, para las gráficas potentes, por lo que serán menos sensibles a este problema.

      Igual es un problema de las fuentes más antiguas, pero en cualquier caso si quieres saber más de fuentes, modelos que funcionan bien y cuales pueden dar problemas mi fuente principal de información es http://www.jonnyguru.com/index.php

      Una de las pruebas que hace es la carga desequilibrada de las líneas de 5V y 12V, y algunas fuentes lo llevan muy mal ;)

      Eliminar
    3. Al final la fuente ha dejado de funcionar; la he cambiado por una estándar de 180W 220V AC DC 12V :), tarda unos 5 minutos en calentar, pero me vale.

      Eliminar

Puede dejar su comentario, que tratará de ser moderado en los días siguientes. En caso de ser algo importante/urgente, por favor utilicen el formulario de arriba a la derecha para contactar.