Como ya os dije en el anterior post, hoy os voy a enseñar como he configurado Marlin para la Anet E-10 modificada.
¿Qué necesito para poner el Marlin?
Lo primero que necesitas es el Arduino IDE, actualmente uso la versión 1.8.5 y lo podéis descargar desde aquí.
Otra cosa fundamental es el propio Marlin, que lo podéis descargar desde aquí. La configuración que os voy a mostrar está realizada para la versión 1.1.6.
En mi caso, como uso una pantalla grande, también necesité la librería U8GLib para configurar la pantalla, y podéis descargarla aquí.
Ya tengo todo, ¿y ahora qué?
Para realizar la configuración seguí las instrucciones del blog de staticsboards, en el que se explica perfectamente y paso a paso todo lo que hay que hacer. Como en esa página vienen todos los detalles, yo voy a ir más rápido.
Paso 1: Conectar la impresora por USB al ordenador
Paso 2: Configurar en el Arduino IDE la placa y el puerto
Para eso os pongo tres pantallazos, para que veáis como hacerlo.
Paso 3: Instalar la librería u8glib
Seleccionar la opción que veis en la imagen a continuación y buscar el archivo zip de la librería que os habéis descargado.
Paso 4: Modificar los ficheros de Marlin para vuestra impresora
Para ello os voy a poner las configuraciones que he puesto yo para la Anet E-10, con la placa GT2560 y drivers DRV 8825.
Fichero Configuration.h
Sección @machine
En esta sección se elige la placa base que monta la impresora, en mi caso la GT2560 rev A+, las placas soportadas las podéis ver en el archivo boards.h de Marlin.
En esta otra, se le pone nombre a la impresora, no es necesario, pero queda chulo 🙂
Sección @extruder
Aquí se seleccionan el número de extrusores que tiene la impresora, en mi caso 1, pero la placa que le he puesto soporta hasta 2.
Sección @machine
Esto lo debéis dejar así, si la fuente de alimentación no está conectada a la pin PS_ON de la placa.
Sección @temperature
Aquí se define el tipo de termistor que tiene montado la impresora para detectar la temperatura, tanto del hotend como de la cama caliente. Yo puse este valor, porque en Skynect venía con ese valor para la Anet y conservo los originales.
Estos valores son los mínimos que detecta la impresora antes de pararse por avería de los termistores. Es decir, si un cable está roto no llegará a este mínimo y no dejará que la impresora funcione. Son grados celsius.
En esta sección se definen los valores máximos que puede alcanzar el termistor antes de que la impresora se pare por sobrecalentamiento, son grados celsius.
Estos valores los calculé para mi hotend con el siguiente comando GCODE: M303 E0 S200 C8
Es muy importante dejar la línea del PIDTEMPBED comentada si usamos un Mosfet o un relé para darle intensidad a la cama caliente. Si se activase, seguramente quemarías el relé o el mosfet por la gran cantidad de cambios que debería hacer en poco tiempo.
Esta sección también es importante, porque es una medida de seguridad que no permite moverse al motor del extrusor hasta que no se ha alcanzado esta temperatura. Esto evita atascos en el hotend.
Sección @homing de endstop settings
Aquí se definen cuales son los finales de carrera que se usan para indicar que ha llegado al extremo de cada uno de los ejes. En mi caso, uso los min de cada uno de los ejes y ahí están conectados en la placa.
Debido a la configuración de mis finales de carrera (como venían de serie) he tenido que invertir la lógica.
Sección @motion de movement settings
Esta sección es de las más importantes, porque se definen los pasos en casa eje. En mi caso al usar los DRV8825 he multiplicados por dos los pasos. Si usáis unos drivers A4988 deberéis dividir por dos los pasos que veis en el pantallazo anterior. En el caso del extrusor, los pasos los calculé con prueba y error, extruyendo 10 cm y haciendo una regla de tres con el resultado obtenido.
Sección @machine de movement settings
El cambio en esta sección fue al comprobar que un eje no se movía como correspondía.
Lo mismo pasó en este caso con el motor del extrusor.
En la primera parte, como los finales de carrera los hemos definido como min, se debe poner a -1.
En las otras definiciones se definen las dimensiones de la cama caliente, así como los offset del hotend desde los finales de carrera hasta el comienzo de la cama caliente.
Sección @lcd de LCD and SD support
Aquí se define el idioma de la interfaz de la pantalla, en este caso en castellano.
En esta otra sección se define el modelo de pantalla a usar, el modelo que os pongo es el que corresponde a la pantalla que compré en amazon.
Es muy importante descomentar esta línea, es decir, dejarla tal y como la veis para poder usar el lector de SD integrado en la pantalla.
Fichero Configuration_adv.h
Sección @temperature
En esta sección tuve que poner el campo THERMAL_PROTECTION_PERIOD a 60 segundos, porque daba falsos fallos de calentamiento del hotend.
Lo mismo tuve que hacer para la cama caliente.
Fichero ultralcd_impl_DOGM.h
Este cambio simplemente te muestra el porcentaje de avance de impresión cuando imprimes desde SD.
¿Has llegado hasta aquí? Eres un valiente 😀
Muchas gracias si has llegado hasta aquí, espero que hayas encontrado interesante el artículo.
Os dejo un pantallazo de como funciona la pantalla de la impresora con todos los cambios realizados.
View Comments (9)
Hola buenas, tengo la Anet e10 y he decidido cambiarle el firmware a Marlin para poder tener un control mayor de ella. Quisiera preguntar si para hacer el cambio hace falta cambiar la placa o vale con la que trae de serie y también si tras instalar Marlin mejor la calidad en general de las impresiones.
Gracias de antemano.
Hola Pablo,
Lo puedes hacer con la placa que viene de serie, el tema de Marlin es poder configurar más a tu gusto la impresora, idioma, si cambiar termistores, etc. Pero lo fundamental son ciertas protecciones respecto a la temperatura, tanto del hot end como de la cama, que no trae el firmware de serie.
Para ponerlo en la placa de serie, tienes que instalar los drivers de la misma en el Arduino y ya hacer un configuración normal de la misma.
Un saludo
Buenas de antemano grafías por tu blog .Mira una pregunta .Me pierde pasos el eje Y en una Anet E12 ,creo que se debe a que le driver se calienta .¿Podria ser? . Me esta dando muchos problemas . ?¿Esta configuración de marlin cambiando d placa y drivers me podria valer a mi ?
Hola Fernando,
Prueba a cambiarle los ventiladores de la caja, yo los cambié por unos muy silenciosos y además dan más flujo de aire.
Respecto al Marlin, te valdría, pero tendrías que cambiar también el tamaño de la cama, puesto que la de la E12, es de 300mm x 300mm.
Un cordial saludo, y si necesitas más ayuda ya sabes dónde estoy :)
Muchas gracias y enhorabuena por tu blog , y si tengo alguna duda asi lo hare
Hola , genial este post , seria esta la configuración para la placa MKS GEN 1.4 ? tengo una Anet e10 y he comprado esta controladora
Buenas noches.
Estupendo post para cambiar el firmware. Lo he seguido paso a paso únicamente que yo tengo una E12 que lo único que varia es la dimensión de la cama. A la hora de compilar todo perfecto pero a la hora de subirlo a la impresora me da un error
"se ha producido un error al subir el skecht"
He probado a cambiar el puerto, a desconectar el firewall, a desconectar el bluethoot, a desconectar todos los aparatos que tenía enchufados al pc y nada de nada me sigue diciendo siempre lo mismo. Pruebo a conectar con slicer y puedo mover todos los ejes. La placa es la V 1.5.
Podrías echarme una mano. Estoy empezando en esto de la impresión 3d y no quisiera desanimarme. Quiero poner el marlin para poder instalar un autolevel.
Muchas gracias por tu atención
Un saludo.
P.D. No se como subir fotos pero tengo un pantallazo del error.
Buenas, buscando una solucion a mi nuevo problema con la anet A8 he llegado has aquí y creo que me puedes ayudar.
Tengo ahora marlin19, cuado empieza a imprimir el exruor se va hasta el entro y toca la cama (deja algo de pla) y luego se dirije ya a imprimir.
Antes (skynet o el de serie) empezaba directamente a imprimir. ¿Hay forma de decrile que haga eso
Supongo que es // algo en la eeprom pero yo no he encontrado donde.
puedes ayudarme?
Hola, ¿has cambiado algo en el slicer?
¿El script inicial lo tienes por ahí? ¿Has usado el mismo que tenías antes?, porque Marlin simplemente es un firmware no hace que no le digas que haga en un GCODE.
¿Qué slicer usas?