> For the complete documentation index, see [llms.txt](https://klipper.3dwork.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://klipper.3dwork.io/klipper/empezamos/retracciones-en-firmware.md).

# Retracciones en firmware

{% hint style="danger" %}
Aunque poder controla las retracciones desde el firmware puede tener algunos puntos positivos dado que en un momento dado podremos realizar el ajuste fino, probablemente **la gestión de estas desde el laminador va a aportar más opciones y ajustes aún perdiendo ese ajuste "en caliente".**

**Aconsejamos el usar el proceso clásico de ajuste de retracciones por el laminador tal y como tenéis en la** [**guía de calibración FDM**](https://github.com/alienboyxp/gitbook_es_klipper_3dwork_io/blob/main/broken/pages/-MTqPy_NKPC-R-jkDi7M/README.md#8.-retracciones)**.**
{% endhint %}

Una funcionalidad interesante es la de ejecutar el control de las retracciones desde el firmware Klipper.

## Habilitar las retracciones por firmware en nuestro laminador:

Para ello deberemos realizar los siguientes pasos:

{% tabs %}
{% tab title="PrusaSlicer/SuperSlicer" %}
Iremos a Printer Settings/General/Advanced y marcaremos la opción Use firmware retraction:

<figure><img src="/files/9UbHs5LYeTsbaZcKUxgX" alt=""><figcaption></figcaption></figure>

Esto generará códigos G10 y G11 en nuestro gcode para que el firmware identifique cuando realizar el proceso.
{% endtab %}

{% tab title="Cura" %}
Para Cura, a partir de la v5, es necesario instalar la extensión/módulo Printer Settings y desde ahi activar las retracciones por firmware.
{% endtab %}
{% endtabs %}

## Habilitar las retracciones por firmware en nuestro Klipper:

Para ello tan solo deberemos de ir a nuestro printer.cfg y añadir la siguiente sección:

{% code title="/printer.cfg" %}

```django
[firmware_retraction]
retract_length: 0.8
retract_speed: 60
unretract_extra_length: 0
unretract_speed: 60
```

{% endcode %}

{% hint style="info" %}
Obviamente debereis ajustar estos valores a vuestra máquina, normalmente ajustando con los que tengáis en vuestro laminador.
{% endhint %}

## Test de retracciones

A continuación os sugerimos un sencillo test de retracciones desde Klipper.

* Realizaremos un laminado de la siguiente figura de test, recordad tener activadas las retracciones por firmware en vuestro laminador (podéis revisar el gcode generado en busca de G10/G11

<figure><img src="/files/1nKlNiHijyn59APLx9eF" alt=""><figcaption></figcaption></figure>

{% file src="/files/Qu1OD0c2dhAAJtOV78LV" %}

* Lo enviamos a la impresora y al inicio de la impresión lanzamos la siguiente macro desde nuestro terminal

```
TUNING_TOWER COMMAND=SET_RETRACTION PARAMETER=RETRACT_LENGTH START=0 FACTOR=0.05
```

* Este proceso variará la distancia de retracción de 0 a 5mm, podremos ver en la consola el proceso
* Para calcular el valor idóneo mediremos la altura en la que no tenemos artefactos o estos son inapreciables y realizaremos la siguiente fórmula:

```
// Formula
retraccion = START + altura_deseada * FACTOR
// Ejemplo lanzado
retraccion = 0 + altura_deseada * 0.05
```
