3Dwork - Klipper
KLIPPERMARLINLABSTelegramColabora
  • 3DWork.io - Klipper
  • Invitame a un cafe :D
  • 🖇️Klipper
    • Klipper
    • Instalación
      • Múltiples instancias Klipper
      • Klipper en Raspberry Pad 5
      • Klipper en Orange Pi Zero Plus
      • Klipper en PC con Windows (Usando WSL)
      • Duet 2 Wifi - Klipper
      • Guías Instalación específicas impresora/electrónica
        • Creality - Klipper
          • Creality Sonic Pad - Klipper Oficial, custom firmware
        • Artillery - Klipper
    • Configuración
      • Primeros pasos con Klipper
      • PID
      • Calibración extrusor (e-steps)
      • Nivelación manual de cama
      • Sensor nivelación
        • Bigtreetech Eddy
        • BIQU MicroProbe
      • Nivelación Gantry (Z-TILT)
      • Malla nivelación de cama
      • Pressure Advance
      • Input Shaper
      • Velocidad Máxima
      • Configuración Klipper en laminadores
      • SKEW : compensación chasis/cinemática
      • Ajustes avanzados TMC (VFA)
      • Retracciones en firmware
      • Configuración de una dirección IP estática y nombre DNS
      • Sincronización horaria
    • Mejoras/Tips
      • 3Dwork Klipper Bundle
      • Backup Klipper
      • Host como segunda MCU
      • Sensores de filamento
      • Cámaras - Instalación y configuración
      • Neopixel
      • Mainsail - Mejoras
        • Exclude Objects
        • Timelapses
      • Moonraker - Mejoras
        • Moonraker-Telegram
      • KlipperScreen - Mejoras
        • KlipperScreen - Personaliza arranque con un video con tu logo
        • KlipperScreen - Guia de pantallas
        • KlipperScreen Android (Wifi)
        • KlipperScreen - MKS TS35
        • KlipperScreen - Raspberry Pi 5" DSI
      • Macros - Mejoras
        • Mallado de cama inteligente
        • Test de cinemática
        • Cambio Filamentos/M600
        • Pausado en capa
      • CANbus
        • ‼️CANbus Troubleshooting
        • Octopus/Octopus Pro + EBB Toolhead (CANbridge)
        • Bigtreetech Manta + EBB Toolhead
      • Impresión desde USB
      • VPN con ZeroTier
    • ‼️Klipper Troubleshooting
    • Guía Calibración Impresoras 3D FDM/Filamento
  • ℹ️GUÍAS ESPECÍFICAS KLIPPER
    • Creality
      • Creality K2 Plus
      • Creality K1 & K1 Max
    • QIDI
      • QIDI Plus 4
      • QIDI X-MAX 3
    • Bigtreetech Hurakan
    • RatRig V-Core 3
    • RatRig V-Minion
  • 🎨ERCF
    • Enraged Rabbit Carrot Feeder (ERCF)
  • 🌐3DWORK
    • Quieres promocionar tus productos/empresa?
Con tecnología de GitBook
En esta página
  • Generación de Gcode
  • Gcode de inicio y fin
  • START_PRINT
  • END_PRINT
  • Configurando nuestro laminador para usar las macros START_PRINT y END_PRINT
  • Subir gcodes desde el laminador
  • Thumbnails
  • Progreso de capas
  • Coasting y Advanced extruder pressure

¿Te fue útil?

  1. Klipper
  2. Configuración

Configuración Klipper en laminadores

AnteriorVelocidad MáximaSiguienteSKEW : compensación chasis/cinemática

Última actualización hace 2 meses

¿Te fue útil?

Klipper es un firmware de impresoras 3D increíblemente flexible que podemos configurar basándonos en ficheros de configuración.

Generación de Gcode

Los laminadores disponen de una opción para indicar el tipo de gcode (G-Code flavor) que queremos generar.

Normalmente, estos usan por defecto Marlin que funciona bien con Klipper al igual que Smoothieware.

Nuestro laminador favorito, SuperSlicer o Bambu Studio/OrcaSlicer (PrusaSlicer lo tendrá disponible a partir de la versión 2.6) tiene una opción específica para Klipper que podemos encontrar en el perfil de impresora General/Firmware:

A continuación tenéis links a grupos de laminadores en Telegram por si necesitáis más información:

Laminadores como Cura necesitan de ciertos ajustes para evitar que generen ciertos gcodes que pueden no llevarse bien con Klipper, de igual forma laminadores con G-Code flavor Marlin2 pueden ocasionar problemas similares

Importante!!!...Bambu Studio/OrcaSlicer

Bambu Studio/OrcaSlicer (fork del primero con opciones interesantes añadidas):

Bambu Studio utiliza ARC, significa que usa los gcodes G2/G3, por defecto en algunos perfiles y que funcione correctamente necesitaremos activar el soporte ARC en nuestro Klipper.

IMPORTANTE!!! por la forma de funcionar de Klipper ARC no proporciona mejoras en la calidad de las piezas y si más carga al procesar el gcode. Os aconsejamos ir a la parte final y deshabilitar las funciones ARC del laminador.

Lo ideal es crear un nuevo fichero de configuración, bambu_studio.cfg por ejemplo, y añadirlo como include en nuestro printer.cfg.

bambu_studio.cfg
[gcode_arcs]
resolution: 0.1

[gcode_macro m201]
gcode:
  {% if 'X' in params or 'Y' in params %}
    {% set accel = (params.X|default(params.Y)|float,
                    params.Y|default(params.X)|float)|min %}
      SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5}
  {% else %}
    SET_VELOCITY_LIMIT
  {% endif %}

[gcode_macro m203]
gcode:
  {% if 'X' in params or 'Y' in params %}
    {% set speed = (params.X|default(params.Y)|float,
                       params.Y|default(params.X)|float)|min %}
    SET_VELOCITY_LIMIT VELOCITY={speed}
  {% else %}
    SET_VELOCITY_LIMIT
  {% endif %}

[gcode_macro M205]
gcode:
  {% if 'X' in params or 'Y' in params %}
    {% set corner_speed = (params.X|default(params.Y)|float,
                       params.Y|default(params.X)|float)|min %}
    SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed}
  {% else %}
    SET_VELOCITY_LIMIT
  {% endif %}

[gcode_macro M900]
gcode:
      SET_PRESSURE_ADVANCE ADVANCE={params.K}

Tenéis un ejemplo de nuestro compañer Laureano a modo de ejemplo también:

En el caso que no queráis usar ARC porque vuestra máquina no lo soporte o simplemente porque no le veis beneficio aseguraos que las siguientes funciones están deshabilitadas:

  • Arc fitting

  • Z-hop type : Spiral lift

Gcode de inicio y fin

Los laminadores suelen contar con gcodes de inicio y de final que se encargan de realizar los procesos pre y post-impresión que pueden impactar en la calidad de nuestra impresión.

Dado que en Klipper podemos configurar nuestras propias macros, algo que suele ser muy útil es la creación de macros para el inicio de impresión (START_PRINT) y final de impresión (END_PRINT).

Os vamos a sugerir como poder personalizar vuestros gcodes pre y post usando las macros de Klipper que os van a permitir:

START_PRINT

  • Recuperar automáticamente el tamaño de impresión, diámetro del filamento y nozzle

  • Purga de línea inteligente

  • Temperaturas de precalentado

  • Temperaturas de impresión

IMPORTANTE!!!

Configuración Linea Purga Inteligente.

  • Puede ser necesario que vuestra sección [extruder] se indique el max_extrude_cross_section... un valor de 5 debería de ser suficiente generalmente:

printer.cfg
[extruder]
...
max_extrude_cross_section: 5

Los siguientes ajustes se han de realizar en la macro START_PRINT en la sección inicial donde se encuentran las variables de configuración:

  • Mediante variable_adaptive_enable , con valor True nuestra línea de purga va a ser dinámica en base al tamaño de nuestra pieza a imprimir en el caso de False realizará una gota de purgado

  • En variable_flow_rate podemos ajustar el máximo flow rate de nuestro extrusor. El valor de 12mm3/s suele ser válido para sistemas de extrusión normales y 24 para alto flujo

  • variable_line_length donde indicaremos el tamaño deseado en mm de nuestra línea de purga... un valor de 1/5 de nuestro eje X suele ser lo indicado

  • variable_purge_amount la cantidad de filamento en mm que queremos purgar

  • variable_x_default, y mismo parámetro para y, serán las coordenadas donde queremos que comience nuestra línea de purga. En el caso de tener activada la línea de purga automática no se tiene en cuenta

También contamos con la macro SETUP_START_PRINT que desde la UI podemos ajustar estos parámetros.

IMPORTANTE!!!

Configuración Nivelación.

En el ejemplo START_PRINT incluido en esta guía facilita el proceso de nivelación pudiendo adaptarse a diferentes usos: Los siguientes ajustes se han de realizar en la macro START_PRINT en la sección inicial donde se encuentran las variables de configuración:

  • variable_calibrate_bed_mesh para indicar si queremos hacer una malla al inicio de cada impresión (True) o si queremos aprovechar un mallado ya guardado (False).

También podemos añadir la siguiente macro para que haga el proceso de igual forma que se hacía antes del cambio en Klipper.

[delayed_gcode bed_mesh_init]
initial_duration: .01
gcode: 
  BED_MESH_PROFILE LOAD=default

En el ejemplo START_PRINT incluido en esta guía usaremos notificaciones para indicar en que paso estamos durante el proceso de inicio de impresión por lo que necesitamos que tu printer.cfg o includes del mismo tengan la sección [respond]

printer.cfg
[respond]

END_PRINT

  • Ejecutar una retracción del filamento

  • Presentar la impresión para poder retirarla de forma sencilla

  • Apagado de los motores

Configurando nuestro laminador para usar las macros START_PRINT y END_PRINT

Para ejecutar estas macros en nuestro laminador:

Estas configuraciones suelen encontrarse dentro de las opciones dentro de la configuración de impresora. Revisa en el caso de tu laminador donde ajustar

  • gcode de inicio START_PRINT, usando placeholders para pasar los valores de temperatura de filamento y cama de forma dinámica:

M190 S0 ; Prevents prusaslicer engine from prepending m190 to the gcode ruining our macro
M109 S0 ; Prevents prusaslicer engine from prepending m109 to the gcode ruining our macro
SET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count] ; Provide layer information
START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[first_layer_bed_temperature] CHAMBER=[chamber_temperature] PRINT_MIN={first_layer_print_min[0]},{first_layer_print_min[1]} PRINT_MAX={first_layer_print_max[0]},{first_layer_print_max[1]}

PrusaSlicer

M190 S0 ; Prevents prusaslicer from prepending m190 to the gcode ruining our macro
M109 S0 ; Prevents prusaslicer from prepending m109 to the gcode ruining our macro
SET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count] ; Provide layer information
START_PRINT EXTRUDER_TEMP=[first_layer_temperature[initial_extruder]] BED_TEMP=[first_layer_bed_temperature] PRINT_MIN={first_layer_print_min[0]},{first_layer_print_min[1]} PRINT_MAX={first_layer_print_max[0]},{first_layer_print_max[1]}

SuperSlicer - contamos con la opción de poder ajustar la temperatura de cerramiento (CHAMBER)

M190 S0 ; Prevents prusaslicer from prepending m190 to the gcode ruining our macro
M109 S0 ; Prevents prusaslicer from prepending m109 to the gcode ruining our macro
SET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count] ; Provide layer information
START_PRINT EXTRUDER_TEMP=[first_layer_temperature[initial_extruder]] BED_TEMP=[first_layer_bed_temperature] CHAMBER=[chamber_temperature] PRINT_MIN={first_layer_print_min[0]},{first_layer_print_min[1]} PRINT_MAX={first_layer_print_max[0]},{first_layer_print_max[1]}
START_PRINT EXTRUDER_TEMP={material_print_temperature_layer_0} BED_TEMP={material_bed_temperature_layer_0} PRINT_MIN=%MINX%,%MINY% PRINT_MAX=%MAXX%,%MAXY%
START_PRINT EXTRUDER_TEMP={temperature_extruder1} BED_TEMP={temperature_heatbed}
START_PRINT EXTRUDER_TEMP=[extruder0_temperature] BED_TEMP=[bed0_temperature]

Los placeholders son unos "alias" o variables que usan los laminadores para que a la hora de generar el gcode sustituyen por los valores configurados en el perfil de impresión.

El uso de estos permiten que nuestras macros sean dinámicas.

  • gcode de final END_PRINT, en este caso al no usar placeholders es común a todos los laminadores

END_PRINT

Subir gcodes desde el laminador

Podemos subir nuestros gcodes directamente desde el laminador, algo que es muy cómodo. Moonraker emula la API de Octoprint, algo muy útil para hacerlo compatible con cualquier herramienta que use Octoprint.

Para habilitar la emulación Octoprint tendremos que añadir al ficher de configuración de Moonraker lo siguiente:

[octoprint_compat]

Habilitaremos el modo experto y cambiaremos las opciones en Printer Settings / General como podemos ver en la siguiente captura.

Os recordamos que lo hemos de configurar desde una "Impresora Física"

Instalaremos la extensión OctoPrint-Connection desde el Marketplace. Iremos a Settings > Printer > Manage Printers y buscaremos el botón Connect OctoPrint y añadiremos nuestra impresora tal como vemos en la siguiente captura, podemos poner cualquier cosa en API Key.

Thumbnails

Podemos generar previews de nuestras piezas que podemos visualizar en nuestra UI de Klipper para identificar mejor la pieza.

Cambiaremos al modo Experto y en General / Firmware pondremos 32x32,400x300 en G-code thumbnails:

Cambiaremos al modo Experto y en Printer Settings :

Para que podamos disponer del progreso de capas en nuestra UI es aconsejable configurar correctamente nuestro laminador:

Para habilitar la previsualización abriremos Advanced en Printer Settings, habilitaremos la opción Gcode Thumbnails for Pctoprint and Mainsail y en Resolution pondremos 400x400:

Progreso de capas

Para poder disponer del progreso de capas en nuestra UI de Klipper:

Para poder obtener más información detallada sobre el progreso de la impresión podemos mejorar desde el laminador de la siguiente manera:

  • En las opciones de la impresora iremos a Machine G-code

  • Añadiremos lo siguiente en Layer Change Gcode

M117 Layer {layer_num+1}/[total_layer_count] : {filament_settings_id[0]}

  • Iremos a Printer Settings > Custom Gcode > Start Gcode

SET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]

  • Iremos a Printer Settings > Custom Gcode > After layer change Gcode y añadiremos el siguiente gcode :

SET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}
M117 Layer {layer_num+1}/[total_layer_count] : {filament_settings_id[0]}

En el caso de cura, la forma más rápida y sencilla, instalaremos la extensión Display Filename and Layer on LCD

También podremos además usar la extensión Post processing para ello:

  • Abriremos el menu de extensiones y utilizaremos Post processing, haremos click en Modify G-Code

  • Pulsaremos Add Script y seleccionamos Search and Replace

  • En Search buscaremos por:

;(LAYER|LAYER_COUNT):(\d+)

  • En Replace pondremos:

;\1:\2\n_CURA_SET_PRINT_STATS_INFO \1=\2

  • Marcaremos Use Regular Expresions y cerramos

En nuestra configuración de Klipper añadiremos esta macro:

[gcode_macro _CURA_SET_PRINT_STATS_INFO]
gcode:
  {% if params.LAYER_COUNT is defined %}
    SET_PRINT_STATS_INFO TOTAL_LAYER={params.LAYER_COUNT}
  {% endif %}
  {% if params.LAYER is defined %}
    SET_PRINT_STATS_INFO CURRENT_LAYER={(params.LAYER | int) + 1}
  {% endif %}

Nuestra UI de Klipper puede usar diferentes metodos para el cálculo del tiempo estimado de acabado (estimación y ETA). Normalmente podremos seleccionar el método que más nos guste o se ajuste a nuestra máquina en la configuración del UI y podremos, normalmente, seleccionar entre el fichero, filamento o el slicer:

En el caso que usemos KlipperScreen podemos mejorar la información mostrada sobre las capas ajustando:

Coasting y Advanced extruder pressure

Por otro lado, las funciones que suelen ir bien es emplear los valores de retracciones desde el laminador, las opciones de wipe o wipe on retract.

Bambu Studio/OrcaSlicer ->

SuperSlicer ->

PrusaSlicer ->

Volviendo a Cura, os aconsejamos utilizar el script del compañero donde con supodemos añadir cualquier ajuste para mejorar el funcionamiento con Klipper.

Si buscas un sistema más completo, avanzado y personalizable a los scripts básicos que te sugerimos a continuación te aconsejamos que revises nuestro.

Hacer el proceso de homing, y

Otro ajuste necesario para vuestra sección [extruder] se indique el ... el valor aconsejable suele ser >101 (en caso de no estar definido usa 50) para por ejemplo permitir los tests típicos de calibración del extrusor. Deberías ajustar el valor en base a lo comentado anteriormente del test o la configuración de tu variable_line_length y/o variable_purge_amount.

variable_calibrate_z_tilt si contamos doble Z con z-tilt podremos hacer un nivelado (True) o no (False).

Deberemos de instalar el plugin desde el menú Help/Show configuration Folder... copiaremos el script del link anterior dentro de la carpeta script. Reiniciamos Cura e iremos a Extensions/Post processing/Modify G-Code y seleccionaremos Mesh Print Size.

En los siguientes links podéis encontrar un listado de estos para: , (además de los del anterior), y .

OrcaSlicer suele funcionar directamente, tenemos las opciones para ajustar la generación en las opciones avanzadas del perfil de impresión:

Instalaremos el plugin/extensión Cura2Moonraker y podemos seguir esta

En el caso de seleccionar varios hará una media de ellos.

Estas opciones habilitadas puede provocar calidad pobre de nuestras impresiones y lo aconsejable es la utilización de .

🖇️
https://t.me/bambulabs_studio
https://t.me/superslicer
https://t.me/prusaslicer
Pedro Lamas
post-processing script
https://gist.github.com/LauOtero/9a5d392c374791fe4faace74c3a9979e
bundle para Klipper modular aquí
z-tilt
nivelado
max_extrude_only_distance
Z-tilt
Post Process Plugin (by frankbags)
PrusaSlicer
SuperSlicer
Bambu Studio
Cura
guía
Pressure Advance
- English
https://gist.github.com/alienboyxp/fe225e1667da13557c270b7e5b73db10
https://gist.github.com/alienboyxp/1fe5c57b40c09a9d0095d027ffc0f5d7
Ejemplo para PrusaSlicer/SuperSlicer