Loading repository data…
Loading repository data…
3dwork-io / repository
Desde 3Dwork hemos recopilado y ajustando un conjunto de macros, configuraciones de máquinas y electrónicas, así como otras herramientas para una gestión sencilla y potente de Klipper. Gran parte de este paquete está basado en RatOS mejorando las partes que creemos interesantes, así como otras aportaciones de la comunidad.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
⚠️ ADVERTENCIA GUÍA EN PROCESO!!! Aunque las macros son totalmente funcionales, están en continuo desarrollo. Úsalas bajo tu propia responsabilidad!!!
Changelog
07/12/2023 - Añadido soporte para automatizar la creación de firmware para electrónicas Bigtreetech
Desde 3Dwork hemos recopilado y ajustando un conjunto de macros, configuraciones de máquinas y electrónicas, así como otras herramientas para una gestión sencilla y potente de Klipper.
Gran parte de este paquete está basado en RatOS mejorando las partes que creemos interesantes, así como otras aportaciones de la comunidad.
Para instalar nuestro paquete para Klipper seguiremos los siguientes pasos
Nos conectaremos a nuestro host por SSH y lanzaremos los siguientes comandos:
cd ~/printer_data/config
git clone https://github.com/3dwork-io/3dwork-klipper.git
⚠️ NOTA Si el directorio de tu configuración de Klipper está personalizado, recuerda ajustar el primer comando adecuadamente a tu instalación.
ℹ️ INFORMACIÓN PARA NUEVAS INSTALACIONES Dado que Klipper no permite el acceso a las macros sin un printer.cfg válido y conexión a una MCU, podemos usar esta configuración temporal:
- Asegúrate de tener el host como segunda MCU
[mcu]
serial: /tmp/klipper_host_mcu
[printer]
kinematics: none
max_velocity: 1
max_accel: 1
[gcode_macro PAUSE]
rename_existing: PAUSE_BASE
gcode:
M118 Please install a config first!
[gcode_macro RESUME]
rename_existing: RESUME_BASE
gcode:
M118 Please install a config first!
[gcode_macro CANCEL_PRINT]
rename_existing: CANCEL_BASE
gcode:
M118 Please install a config first!
[idle_timeout]
gcode:
{% if printer.webhooks.state|lower == 'ready' %}
{% if printer.pause_resume.is_paused|lower == 'false' %}
M117 Idle timeout reached
TURN_OFF_HEATERS
M84
{% endif %}
{% endif %}
# 2 hour timeout
timeout: 7200
[temperature_sensor raspberry_pi]
sensor_type: temperature_host
[skew_correction]
[input_shaper]
[virtual_sdcard]
path: ~/printer_data/gcodes
[display_status]
[pause_resume]
[force_move]
enable_force_move: True
[respond]
Esto permitirá iniciar Klipper y acceder a las macros.
Gracias a Moonraker podemos usar su update_manager para poder estar al día de las mejoras que podamos ir introduciendo en el futuro.
Desde Mainsail/Fluidd editaremos nuestro moonraker.conf (debería encontrarse a la misma altura que vuestro printer.cfg) y añadiremos al final del fichero de configuración:
[include 3dwork-klipper/moonraker.conf]
⚠️ ADVERTENCIA Recuerda hacer el paso de instalación previamente si no Moonraker generará un error y no podrá iniciar.
Por otro lado en el caso que el directorio de tu configuración de Klipper esté personalizado recuerda ajustar el path de forma adecuada a tu instalación.
Siempre hemos comentado que RatOS es una de las mejores distribuciones de Klipper, con soporte a Raspberry y a módulos CB1, en gran medida por sus configuraciones modulares y sus estupendas macros.
Algunas macros añadidas que nos van a ser de utilidad:
| Macro | Descripción |
|---|---|
| MAYBE_HOME | Nos permite optimizar el proceso de homing solamente realizando este en aquellos ejes que no están con homing. |
| PAUSE | Mediante las variables relacionadas nos permite gestionar una pausa con un parking del cabezal más versátil que las macros normales. |
| SET_PAUSE_AT_LAYER | |
| SET_PAUSE_AT_NEXT_LAYER | Una muy útil macro que integra Mainsail en su UI para poder realizar una pausa a demanda en una capa en concreto... por si se nos olvidó al realizar el laminado. |
| También contamos con otra para ejecutar el pausado en la capa siguiente. | |
| RESUME | Mejorada dado que permite detectar si nuestro nozzle no está a la temperatura de extrusión para poder solventarlo antes de que muestre un error y dañe nuestra impresión. |
| CANCEL_PRINT | Que permite el uso del resto de macros para realizar una cancelación de impresiónn correctamente. |
Además otra ventaja de ellas es que están integradas con Mainsail con lo que tendremos nuevas funciones en nuestra UI como podéis ver a continuación:

| Macro | Descripción |
|---|---|
| START_PRINT | Nos permitirá poder iniciar nuestras impresiones de una forma segura y al estilo Klipper. Dentro de esta encontraremos algunas funciones interesantes como: |
| • Smart nozzle preheating when using a probe sensor | |
| • Posibilidad de uso de z-tilt mediante variable | |
| • Mallado de cama adaptativo, forzado o desde una malla guardada | |
| • Línea de purga personalizable entre normal, línea de purgado adaptativa o gota de purgado | |
| • Macro segmentada para poder personalizarse tal como os mostraremos más adelante | |
| END_PRINT | Macro de fin de impresión donde también disponemos de segmentación para poder personalizar nuestra macro. También contamos con aparcado dinámico del cabezal. |
Conjunto de macros que nos van a permitir gestionar diferentes acciones con nuestro filamento como la carga o descarga de este.
| Macro | Descripción |
|---|---|
| M600 | Nos va a permitir compatibilidad con el gcode M600 normalmente usado en los laminadores para el cambio de filamento. |
| UNLOAD_FILAMENT | Configurable mediante las variables nos va a permitir una descarga de filamentos asistida. |
| LOAD_FILAMENT | Igual que la anterior pero relacionada con la carga del filamento. |
⚠️ ADVERTENCIA SECCIÓN EN PROCESO!!!
Spoolman es un gestor de bobinas de filamento que se integra en Moonraker y que nos permite gestionar nuestro stock y disponibilidad de filamentos.

No vamos a entrar en la instalación y configuración de este dado que es relativamente sencillo utilizando las instrucciones de su Github, en cualquier caso os aconsejamos utilizar Docker por simplicidad y recordad activar la configuración en Moonraker requerida:
moonraker.conf
[spoolman]
server: http://192.168.0.123:7912
# URL to the Spoolman instance. This parameter must be provided.
sync_rate: 5
# The interval, in seconds, between sync requests with the
# Spoolman server. The default is 5.
| Macro | Descripción |
|---|---|
| SET_ACTIVE_SPOOL | Nos permite indicar cual es el ID de la bobina a usar |
| CLEAR_ACTIVE_SPOOL | Nos permite resetear la bobina activa |
Lo ideal en cada caso sería el añadir en nuestro laminador, en los gcodes de filamentos para cada bobina la llamada a esta, y recuerda cambiar el ID de esta una vez consumida para poder llevar un control de lo que resta de filamento en la misma!!!

⚠️ ADVERTENCIA SECCIÓN EN PROCESO!!!
Suele ser normal que contemos con diferentes superficies de impresión dependiendo del acabado que queramos tener o el tipo de filamento.
Este conjunto de macros, creadas por Garethky, van a permitirnos tener tener un control de estas y en especial el ajuste correcto de ZOffset en cada una de ellas al estilo que contamos en máquinas Prusa. A continuación podéis ver algunas de sus funciones:
Por otro lado tenemos algunos requerimientos para implementarlo (se intentará agregar en la lógica del PRINT_START del bundle en un futuro activando por variable esta función y creando una macro de usuario previa y posterior para poder meter eventos de usuario):
Ejemplo de archivo de configuración de variables
[Variables]
build_sheet flat = {'name': 'flat', 'offset': 0.0}
build_sheet installed = 'build_sheet textured_pei'
build_sheet smooth_pei = {'name': 'Smooth PEI', 'offset': -0.08999999999999997}
build