QIDI X-MAX 3 - Technical Guide
Última actualización
Última actualización
Os vamos a sugerir algunos tips o soluciones para un mejor ajuste y funcionamiento de nuestra QIDI.
En ocasiones podemos encontrarnos con desviaciones de cama importantes por un mal ajuste mecánico de esta, normalmente las veremos desde la interfaz web en la previsualización del mallado. Para poder minimizar ese desajuste mecánico contamos con 4 tornillos y podemos utilizar la función [screws_tilt_adjust] (macro SCREWS_TILT_CALCULATE) de Klipper que, gracias a contar con un sensor de nivelación, podremos utilizar para ajustar al máximo mecánicamente nuestra cama.
Podéis encontrar más información de la configuración y proceso aquí.
Configuraciones de ejemplo:
QIDI X-MAX 3
También disponéis del método tradicional manual y del cual QIDI dispone de una video guía en su documentación de troubleshooting. Que podemos mejorar el método sugerido por QIDI utilizando la función de Klipper [bed_screws] (macro BED_SCREWS_ADJUST) para que se posicione el nozzle en las áreas de ajuste de una forma más precisa.
En cualquier caso os aconsejamos utilizar el método asistido por el sensor anterior.
Disponemos de una electrónica de control en nuestro cabezal de impresión que se encarga de la gestión del sistema de extrusión, sensor de nivelación, etc... Os vamos a recomendar algunas cosas a tener en cuenta.
Teniendo en cuenta las características y el acabado de alguno de los componentes de esta máquina, el driver del toolhead puede verse sometido a temperaturas extremas que pueden afectar a su correcto funcionamiento y al resto de componentes electrónicos.
Para mejorar este aspecto es interesante sustituir el disipador del driver (cuadro rojo) por uno de mayores dimensiones que permita disipar mejor la temperatura.
El disipador retirado podemos utilizarlo para la MCU (cuadro azul) y que esta también sufra menos.
También nos aseguraremos que tanto la goma que utilizan como separador así como el cableado quede mejor ordenado y evite una incorrecta refrigeración o incluso daños en el cableado por temperatura.
La eMMS que incluyen nuestras QIDI tiene una capacidad limitada (8 GB) donde tenemos almacenado el sistema operativo (Armbian), Klipper quedando apenas 1 GB para almacenar nuestros gcodes y otro contenido.
QIDI dispone de ampliaciones eMMC y podemos encontrar otras alternativas que podemos adaptar.
Normalmente incluyen un adaptador para poder conectar la eMMC a tu ordenador utilizando USB.
Vamos a sugerir los pasos a seguir para realizar un backup y que podamos restaurar después en nuestra nueva eMMC:
haremos un backup completo de nuestra eMMC, para ello podemos utilizar el proceso explicado en la siguiente guía
con la imagen de nuestra eMMC original podemos restaurarla en la nueva eMMC siguiendo el proceso explicado en la siguiente guía
con esto ya tenemos nuestra nueva eMMC con una imagen de la actual que podemos instalar de nuevo en nuestra electrónica y comprobar que el sistema arranca correctamente
La siguiente parte del proceso, al cambiar de una eMMC de más tamaño a la que originalmente teníamos, será ajustar las particiones para poder obtener todo el espacio de nuestra nueva eMMC.
podemos utilizar el comando df -h
para revisar el tamaño de la partición
también podemos utilizar el comando fdisk -l /dev/mmcblk1
para ver la información de las particiones existentes
Realizaremos los siguientes pasos para modificar el tamaño de la partición actual y adaptarla al nuevo tamaño
fdisk /dev/mmcblk1
p
muestra información de la partición
d
eliminará la segunda partición, solamente la entrada los datos siguen en la eMMC
n
crea una nueva partición en el mismo lugar que la anterior del macimo tamaño posible manteniendo el tipo de partición ext4
w
escribe la tabla de particiones
Anora lanzamos touch /forcefsck
para que en el siguiente reinicio haga un check del sistema de archivos, esto puede tardar unos minutos!!
Una vez finalizado ejecutamos resize2fs /dev/mmcblk1p2
para ajustar el tamaño nuevo en el sistema y reiniciamos nuestro sistema con shutdown -r now
Para verificar que todo ha quedado correcto podemos realizar un df -h
de nuevo
También podemos mejorar significativamente algunos aspectos de Klipper que aunque esté personalizado por QIDI y use versiones antiguas.
Antes de entrar en detalle nos gustaría comentar algunos aspectos sobre la implementación de Klipper por parte de QIDI vamos a revisar sus componentes electrónicos:
Utiliza una electrónica customizada, mutilada, de la MKS SKIPR
Procesador Rockchip RK3328, Quad-core Cortex-A53, 1.5Ghz, con dos módulos DDR3 RAM de 512 KB y disponemos de 1 GB en total...
MCU STM32F402RCT6 Dual core Cortex M4 con 256KB de memoria flash... mientras que la MKS SKIPR suele utilizar una MCU STM32F407 ligeramente más potente
Drivers TMC2209 para controlar los ejes X, Y y Z que se montan en zócalo con lo que podemos en caso de avería poderlos reemplazar.
Puerto ethernet para red cableada
Wifi 2.4Ghz, es curioso como en este caso es un dongle USB el cual podremos sustituir en el caso que se estropee o queramos mejorar
EMMC de 8GB, algo justa dado que con la instalación de Klipper se quedan disponibles unos 1GB para nuestros gcodes, timelapses, etc... un componente que puede ser interesante mejorar o buscar fórmulas para aligerar el tamaño de la distribución utilizada por QIDI
MCU Toolhead es de nuevo una personalización de la MKS THR donde se han limitado el número de conectores a los necesarios para la implementación de QIDI, cuenta con un procesador Raspberry Pi RP2240.
Pantalla 5" que no se tiene mucha información, simplemente que se comunica por serial con Klipper y que por ellos QIDI ha integrado modificaciones en Klipper.
Entrando en la parte de software Klipper:
Distribución Armbian MKS y personalizada por QIDI utilizando una versión "buster" antigua en lugar de la actual "bullseye"
Versiones bastante desactualizadas de Klipper y componentes de este:
IMPORTANTE!!!
NO ACTUALIZAR NINGÚN COMPONENTE CORE (KLIPPER/MOONRAKER/SYSTEM) DADO QUE PUEDEN ROMPER LA CONFIGURACIÓN Y PERSONALIZACIONES DE QIDI Y DEJAR EL SISTEMA INUSABLE.
Acceso al interfaz web de gestión, Fluidd, a través del puerto http://IP_HOST:10088
Disponemos de acceso SSH utilizando cualquier cliente y utilizando la IP junto con el usuario/password de la siguiente tabla. La instalación de klipper parece encontrarse dentro del usuario mks y utilizando una estructura de directorios de configuración bastante antigua y que va a dar problemas si actualizamos o añadimos componentes Klipper.
rol | ||
---|---|---|
root | root | makerbase |
user (o user2) | mks | makerbase |
Como ya os hemos comentado las QIDI son algo peculiares en cuanto a su firmware, os vamos a dar algunas sugerencias:
SIEMPRE utilizar el firmware que encontremos en https://qidi3d.com/pages/software-firmware NO utilicemos nunca el de su Github!!!
Los archivos de actualización normalmente tienen el nombre QD_Update.zip, su contenido suele ser:
printer.cfg, donde incluyen las nuevas mejoras en configuracion y que normalmente es lo que más suele cambiar en las últimas versiones
QD_Max_SOC, en este caso la parte Max dependera del modelo de impresora Max Plus etc..., básicamente es un fichero comprimido donde dentro encontraremos otro data.rar con:
/home/mks/klipper, donde se incluyen todas las personalizaciones de MKS/QIDI sobre Klipper, algunas de ellas para el correcto funcionamiento de la pantalla
/home/moonraker, igual que el punto anterior pero para Moonraker
/home/klipper_config, otras configuraciones para Klipper extras a lo que contiene/use el printer.cfg
/root, más personalizaciones del sistema de MKS/QIDI
En ocasiones el firmware de la pantalla se puede corromper, para ello podemos disponemos del mksscreen.recovery que copiando en la raiz de un USB y reiniciando la impresora realizará el proceso de recuperación. SOLICITAR SIEMPRE AL SOPORTE QIDI LA VERSIÓN CORRECTA PARA VUESTRA MÁQUINA!!!
Dado que la electrónica no dispone de una batería para mantener los ajustes horarios lo ideal es que configuremos el sistema para que lo haga automáticamente. Es importante porque de esta forma tendremos estimaciones correctas de tiempos de impresión, además de poder realizar actualizaciones software mediante internet.
El proceso es muy sencillo lanzando los siguientes comandos, disponemos de dos opciones:
Lo primero de todo ajustaremos nuestra zona horaria con los siguientes comandos:
Desactivaremos systemd-timesync
:
Instalaremos chrony
:
Reiniciamos el servicio:
Podemos revisar la configuración en el caso que queramos ajustar algo, no suele ser necesario:
Revisamos el estado de la sincronizacion con estos comandos:
Podemos lanzar un comando date
para verificar que todo este sincronizado.
Ahora al apagar nuestra máquina esta se ajustará la hora al iniciarse.
También disponemos de Kiauh preinstalado que podremos lanzar ejecutando ./kiauh/kiauh.sh
, probablemente nos solicite actualizarlo:
En esta sección revisaremos algunas partes de la configuración de la máquina como referencia para futuras personalizaciones.
Tenemos 3 MCUs en nuestra QIDI:
MCU host Klipper, ubicada en la electrónica principal:
MCU electrónica impresión, integrada en la electrónica principal. El método de conexión serial utilizado es USART 1 (PA10/PA9).
MCU toolhead, en el cabezal de impresión. En este caso utiliza un método de conexión USART mediante cable USB:
Contamos con 4 ventiladores gestionables:
Ventilador de capa (FAN0), controlado por la MCU Toolhead
Ventilador de capa auxiliar (FAN2), controlado por la MCU principal
Ventilador de recirculación de aire (FAN3), controlado por la MCU principal
Ventilador del hotend (hotend_fan), controlado por la MCU Toolhead
Otro apartado de configuración es el de sensor de filamentos que podemos encontrar su configuración en printer.cfg:
Al activarse lanza la macro PAUSE que hace un parking del cabezal:
Y después deberemos seguir desde la pantalla para el cambio de filamento, tenéis un video del proceso aquí.
Antes de realizar ningún cambio o incluse ante futuras actualizaciones es importante tener un backup de los ficheros de nuestra configuración (path ~/klipper_config).
Utilizando la guía genérica de backup en Github podremos hacerlo per teniendo en cuenta algunas peculiaridades de nuestra QIDI:
En el paso de editar la configuración del script 3dwork-autocommit.sh:
En el apartado de configurando el repositorio local:
En el apartado de añadir las macros esta seria la macro a añadir creando un fichero de configuración shell_command.cfg tal como tienes explicado más abajo en la sección de Input Shaper:
Si todo ha ido bien ya tendremos backups de nuestra QIDI en Github!!
Por defecto, QIDI incluye únicamente la temperatura del cerramiento, extrusor y cama caliente en la su configuración. De nuevo teniendo en cuenta las características de la máquina y para tener bajo control las condiciones de los componentes y tener referencias cuando se producen atascos lo aconsejable es añadir las temperaturas de la electrónica principal (host y mcu ya que están integradas) y el toolhead.
Para ello y dentro del printer.cfg en la parte final, pero siempre por encima de la sección SAVE_CONFIG que se incluye en el ejemplo anterior solamente como referencia, añadiremos esta configuración para las temperaturas del host y mcu de la electrónica principal:
Continuaremos en el fichero MKS_THR.cfg donde añadiremos al final de este:
Si hemos realizado correctamente los pasos podremos ver desde nuestra interfaz las temperaturas de todos los componentes y tenerlas bajo control:
El proceso de Input Shaper realizado por QIDI es totalmente desasistido, lo cual está bien porque no has de hacer nada pero, por otro lado, tienes el problema que no sabes como se encuentra tu máquina verdaderamente o como intentar ajustarla de forma óptima.
Vamos a mejorar el proceso para poder generar las gráficas y poder ver el resultado de Input Shaper.
El primer paso y desde Kiauh instalaremos G-Code Shell Command, opciones Advanced (4) y G-Code Shell Command (8)... nos preguntará primero si queremos instalar la extensión yu le diremos que Yes, segundo preguntará si crea un ejemplo de gcode shell y le diremos que No:
Iremos a nuestra interfaz web y dentro de la sección CONFIGURATION de Fluidd crearemos un nuevo fichero shell_command.cfg
:
Dentro de shell_command.cfg
incluiremos las siguientes macros shell:
Iremos a nuestra interfaz web y dentro de la sección CONFIGURATION de Fluidd crearemos una carpeta llamada shell_commands:
Dentro de esta carpeta añadiremos un fichero llamado adxl_x.sh
con el siguiente contenido:
Añadiremos un segundo fichero llamado adxl_y.sh
con el siguiente contenido:
Añadiremos un segundo fichero llamado adxl_belt.sh
con el siguiente contenido:
Dentro de nuestro printer.cfg añadiremos un include para que cargue nuestro nuevo shell_command.cfg al final de este, pero recuerda que como siempre por encima de la sección SAVE_CONFIG!!!:
Reiniciaremos nuestro Klipper y deberemos encontrar una nueva macro SHAPER_CALIBRATE_XY que podremos lanzar y realizará un proceso de homing, test en XY de Input Shaper y nos generará las gráficas para poderlas revisar:
IMPORTANTE SOBRE PROCESO!!!
Las macros de SHAPER_CALIBRATE original de QIDI como la de SHAPER_CALIBRATE_XY creada por nosotros utilizan la macro SHAPER_CALIBRATE de Klipper... esto significa que hace el test Input Shaper, selecciona automáticamente la configuración que cree más adecuada y la aplica a la configuración.
Esto aunque es lo más cómodo en ocasiones no es óptimo por lo que os aconsejamos revisar la guía de Input Shaper para más detalles.
Encontraremos las gráficas generadas en una nueva carpeta en nuestro /config llamada input_shaper:
Dentro de esta encontraréis las gráficas de cada eje:
Como podéis ver en el ejemplo anterior hay mucho que mejorar!!! Si queréis aprender a interpretarlas podéis encontrar información en nuestra guía de Input Shaper.
Empecemos por ver la tensión de nuestras correas utilizando la nueva macro SHAPER_CALIBRATE_COREXY_BELT_TENSION que realizará un proceso similar a la anterior pero nos va a mostrar una gráfica de tensión de las correas para tener una referencia.
Ahora os mostraremos, en la práctica, cómo estos tests nos van a ayudar a mejorar significativamente el rendimiento y calidad de nuestra máquina.
Comenzaremos por las gráficas de correas, el procedimiento para el ajuste de las correas lo podéis encontrar en el troubleshooting de la wiki de QIDI, básicamente en nuestro caso lo que hicimos fué un homing de todos lo ejes y movimos el eje Y a su coordenada 0. Con una aplicación para móviles estilo Spectroid que analice el sonido intentaremos ajustar que la frecuencia en ambas correas en la mitad de su recorrido lateral nos den una frecuencia de unos 75-85Hz, también podemos usar el tacto o oído para realizar este primer ajuste ya que después con la gráfica iremos jugando con los ajustes.
El objetivo es obtener una gráfica de correas que se solapen lo máximo posible!!! tampoco hay que ser un paranoico en que sean exactas pero si que se solapen lo máximo y que el pico de estas sea de la frecuendia alta similar.
Os mostramos un ejemplo de nuestra máquina:
Como se puede observar el pico se encuentra en unos deseables 50Hz, además de tener muchas menos variaciones en respuestas.
Pero con esto que obtenemos? Ahora lo veremos en las siguientes gráficas... comencemos por e eje X:
En este caso con el ajuste, medianamente, correcto de nuestras correas hemos pasado a una gráfica de vibraciones bastante más limpia con un pico de frecuencias bien marcado y en unas frecuencias altas lo cual es genial. Además el tipo de Input Shaper sugerido es más aconsejable con unas aceleraciones muy buenas, y lejanas al valor original, con rangos de vibraciones y smooth bastante buenos.
Pasamos también a revisar la gráfica del eje Y:
En este caso aunque la gráfica original no estaba mal se ha mejorado de nuevo significativamente, un mejor tipo de Input Shaper sugerido, un significativo aumento de aceleraciones y unos valores de vibraciones/smooth muy buenos.
Ya podemos guardar estos valores de Input Shaper y en el caso de las acceleraciones máximas es aconsejable seleccionar el valor que no supere los valores calculados en el ejes X e Y (usaremos el más bajo de ellos) además de añadir un cierto margen de seguridad como por ejemplo el 90-95% del valor que obtuvimos en los tests (de nuevo sobre el eje que nos dio el valor más bajo). De igual forma ajustaremos max_accel_to_decel a 1/2 del valor anterior.
Como podéis ver y aunque se "venden" unas aceleraciones y velocidades de vértigo la realidad suele ser bastante dura y se quedan bastante lejos de ellas.
Además os aconsejamos ajustar estas aceleraciones en vuestro laminador para que estén alineadas.