# Pressure Advance

**Pressure Advance** (PA) compensa el retraso entre el movimiento del cabezal y la respuesta real de la extrusión. Cuando el nozzle acelera, la presión en el interior del hotend tarda un instante en igualarse — sin PA el resultado son esquinas con falta de material al entrar y exceso al salir. Con PA bien calibrado las esquinas quedan limpias y las líneas tienen un ancho homogéneo.

<figure><img src="https://content.gitbook.com/content/H6gCE2fgkkpOScJ72TP7/blobs/Cyf1a43j9ZECenbAPFnn/image.png" alt=""><figcaption><p>Gráfica generada con <a href="https://github.com/Klipper3d/klipper/blob/master/scripts/graph_extruder.py">graph_extruder.py</a> mostrando el efecto de PA en la extrusión</p></figcaption></figure>

{% tabs %}
{% tab title="PA demasiado bajo" %}
Falta material al entrar en la esquina (zona de aceleración) y exceso al salir (zona de desaceleración). Las líneas rápidas muestran un ancho irregular.
{% endtab %}

{% tab title="PA correcto" %}
Esquinas limpias y bien definidas. Ancho de línea homogéneo tanto en zonas lentas como rápidas.
{% endtab %}

{% tab title="PA demasiado alto" %}
Exceso de material al entrar en la esquina y falta al salir. Las esquinas quedan redondeadas hacia dentro. La extrusión puede ser entrecortada.
{% endtab %}
{% endtabs %}

![](https://content.gitbook.com/content/H6gCE2fgkkpOScJ72TP7/blobs/golNNt184xM9cJ8EXPfd/image.png)

{% hint style="info" %}
**Cuándo recalibrar PA:**

* Al cambiar el tipo de filamento (PLA, PETG, ABS, ASA, flexible...)
* Al cambiar de marca o incluso de color dentro del mismo material
* Si modificas la temperatura de impresión de forma significativa
* Tras cualquier cambio físico en el cabezal (nozzle, barrel, PTFE, extrusora)
* Al activar o desactivar [Input Shaper](https://klipper.3dwork.io/klipper/empezamos/input-shaper)
  {% endhint %}

{% hint style="danger" %}
Antes de calibrar PA asegúrate de tener el [extrusor correctamente calibrado](https://klipper.3dwork.io/klipper/empezamos/calibracion-extrusor-e-steps). Un e-steps incorrecto invalida el resultado del test.
{% endhint %}

## Valores de referencia por tipo de extrusor

Estos son rangos orientativos. Tu valor exacto depende de tu setup concreto.

| Tipo de extrusor                             | Rango típico PA |
| -------------------------------------------- | --------------- |
| Extrusión directa (Orbiter, BMG, Sherpa...)  | 0.02 – 0.08     |
| Extrusión directa con barrel largo o volcano | 0.05 – 0.15     |
| Bowden corto (< 200 mm)                      | 0.1 – 0.4       |
| Bowden largo (> 400 mm)                      | 0.4 – 1.0       |

Si con un PA de 1.0 no ves mejora en la calidad, probablemente el problema está en otra parte (temperatura, flujo, retracción).

***

## Cómo funciona el test

El test de PA imprime líneas a tres velocidades distintas en secuencia — lenta / rápida / lenta — y analiza las transiciones:

<figure><img src="https://content.gitbook.com/content/H6gCE2fgkkpOScJ72TP7/blobs/MRre2oFEWV3qIjpiUZbg/image.png" alt=""><figcaption></figcaption></figure>

| Zona                        | Qué observar                                               |
| --------------------------- | ---------------------------------------------------------- |
| **1 — Arranque lento**      | Referencia: extrusión estable sin presión                  |
| **2 — Transición a rápido** | Con PA bajo: falta material al inicio. Con PA alto: exceso |
| **3 — Zona rápida estable** | Debe ser uniforme                                          |
| **4 — Transición a lento**  | Con PA bajo: exceso al frenar. Con PA alto: falta          |
| **5 — Zona lenta final**    | Debe volver a ser uniforme como la zona 1                  |

La línea con la transición más limpia entre zonas — sin huecos ni bultos — indica el valor correcto.

***

## Métodos de calibración

### OrcaSlicer — calibración integrada (recomendado)

[OrcaSlicer](https://github.com/SoftFever/OrcaSlicer) incluye generadores de test de PA directamente en el menú de calibración, sin necesidad de instalar nada extra.

{% tabs %}
{% tab title="Test de líneas" %}
El más rápido y visual. Depende de que tus primeras capas sean buenas — asegúrate de tener bien ajustado el Z-offset antes.

1. En OrcaSlicer: **Calibration → Pressure Advance → Line Method**
2. Selecciona tu impresora y filamento
3. Elige **Direct Drive** o **Bowden** según tu setup
4. Imprime y busca la línea con el trazado más homogéneo en las tres zonas

<figure><img src="https://content.gitbook.com/content/H6gCE2fgkkpOScJ72TP7/blobs/FGvTR5M1IQoCCANrhv2F/orca_pa.gif" alt=""><figcaption></figcaption></figure>

![](https://content.gitbook.com/content/H6gCE2fgkkpOScJ72TP7/blobs/EAS1qyisAf80gyQihRNn/image.png)

5. Lee el valor PA de esa línea y [aplícalo a tu configuración](#ajustando-el-valor-de-pa)
   {% endtab %}

{% tab title="Test de torre" %}
Más lento pero no depende de la calidad de la primera capa. Más fiable en máquinas con primera capa irregular.

1. En OrcaSlicer: **Calibration → Pressure Advance → Tower Method**
2. Selecciona tu impresora y filamento
3. Elige **Direct Drive** o **Bowden**
4. El PA incrementa 0.002 por cada 1 mm de altura (extrusión directa) o 0.02 (bowden)
5. Imprime y localiza la altura con las mejores esquinas

![](https://content.gitbook.com/content/H6gCE2fgkkpOScJ72TP7/blobs/o6KZqvGn4ltufHkMzNpo/image.png)

6. Calcula el valor: `PA = altura_mm × factor` (ej: 8 mm × 0.002 = 0.016)
7. [Aplica el valor a tu configuración](#ajustando-el-valor-de-pa)
   {% endtab %}
   {% endtabs %}

### Generador online (Andrew Ellis)

Una alternativa sólida si no usas OrcaSlicer.

1. Accede al [generador de patrones PA de Ellis](https://andrewellis93.github.io/pressure_advance/pressure_advance.html)

{% hint style="warning" %}
Lee los tooltips de la página — son importantes. Si controlas la aceleración desde el laminador, asegúrate de marcar la opción de control de aceleración en perímetros externos.
{% endhint %}

2. Genera y descarga el G-code del test
3. Imprime y elige el valor más bajo entre los que parecen buenos — ante la duda, siempre el menor

<figure><img src="https://content.gitbook.com/content/H6gCE2fgkkpOScJ72TP7/blobs/KX5lcfIPc6gcxDe0YrsL/image.png" alt=""><figcaption><p>Ejemplo del test de Ellis: en este caso se elegiría 0.05 en lugar de 0.06 por ser el menor con buen resultado</p></figcaption></figure>

4. [Aplica el valor a tu configuración](#ajustando-el-valor-de-pa)

### Macro de test — PRESSURE\_ADVANCE\_TEST

Una macro para lanzar el test directamente desde Klipper sin salir a un laminador externo:

* Calienta cama y hotend a las temperaturas que indiques
* Hace home y sondeo de cama automáticamente
* Imprime 20 líneas incrementando el PA según los parámetros

```gcode
PRESSURE_ADVANCE_TEST BED_TEMP=65 EXTRUDER_TEMP=205 PA_START=0.01 PA_STEP=0.01 NZL=0.4
```

| Parámetro       | Descripción                           |
| --------------- | ------------------------------------- |
| `BED_TEMP`      | Temperatura objetivo de la cama       |
| `EXTRUDER_TEMP` | Temperatura del hotend                |
| `PA_START`      | Valor PA inicial (línea 1)            |
| `PA_STEP`       | Incremento por línea                  |
| `NZL`           | Diámetro del nozzle (por defecto 0.4) |

Para calcular el valor final: `PA = PA_START + (PA_STEP × número_línea)` — ej: `0.01 + (0.01 × 11) = 0.12`

Código de la macro:

{% embed url="<https://gist.github.com/LauOtero/6e11df5a5c6ef28f793720e628ec49db>" %}

### TUNING\_TOWER — método oficial Klipper

El método más básico. Usa el modelo `square_tower.stl` de Klipper y el comando `TUNING_TOWER` para variar el PA por altura durante la impresión.

1. Descarga [square\_tower.stl](https://www.klipper3d.org/prints/square_tower.stl)
2. Lamina con: 120 mm/s, 1 perímetro, 0% relleno, 0 capas superiores, ventilación máxima
3. Inicia la impresión y en cuanto empiece lanza en la consola:

{% tabs %}
{% tab title="Extrusión directa" %}

```gcode
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005
```

{% endtab %}

{% tab title="Bowden" %}

```gcode
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}

* Puedes parar la impresión en cuanto veas que las esquinas empiezan a degradarse
* Algunos gcodes de inicio pueden resetear el TUNING\_TOWER — en ese caso añade el comando directamente al gcode de inicio temporalmente
* `TUNING_TOWER` ajusta valores por altura de capa, no por tiempo
  {% endhint %}

4. Mide con calibre la altura de la zona con mejores esquinas (evita el punto de costura)
5. Calcula: `PA = START + (FACTOR × altura_mm)` — ej: con FACTOR=.005 y altura 12.9 mm → `0 + (.005 × 12.9) = 0.0645`

![](https://content.gitbook.com/content/H6gCE2fgkkpOScJ72TP7/blobs/gw3X0WKj5ubuEQNW9Wnr/image.png)

***

## Ajustando el valor de PA <a href="#ajustando-el-valor-de-pa" id="ajustando-el-valor-de-pa"></a>

### En printer.cfg (permanente)

```ini
[extruder]
pressure_advance: 0.05        # Sustituye con tu valor
pressure_advance_smooth_time: 0.040   # Ver nota abajo
```

### En tiempo real (sin reiniciar)

```gcode
SET_PRESSURE_ADVANCE ADVANCE=0.05
```

El valor se aplica de inmediato pero se pierde al reiniciar. Úsalo para probar antes de guardarlo en el cfg.

### Por filamento en el laminador

La forma más práctica cuando usas varios materiales con PA diferente es configurarlo en el perfil de filamento del laminador:

{% tabs %}
{% tab title="OrcaSlicer / Bambu Studio" %}
En el perfil de filamento: **Filament → Flow ratio and Pressure Advance** → activa PA e introduce tu valor.

![](https://content.gitbook.com/content/H6gCE2fgkkpOScJ72TP7/blobs/wTi8czr0tErt8Gug2ehH/image.png)

O mediante G-code de inicio de filamento si quieres más control:

```gcode
SET_PRESSURE_ADVANCE ADVANCE=0.05
```

{% endtab %}

{% tab title="PrusaSlicer / SuperSlicer" %}
En el G-code de inicio del perfil de filamento. También puedes aplicar PA diferente por diámetro de nozzle con condicionales:

```gcode
{if nozzle_diameter[0]==0.4}SET_PRESSURE_ADVANCE ADVANCE=0.05
{elsif nozzle_diameter[0]==0.6}SET_PRESSURE_ADVANCE ADVANCE=0.08
{elsif nozzle_diameter[0]==0.8}SET_PRESSURE_ADVANCE ADVANCE=0.12
{endif}
```

{% endtab %}
{% endtabs %}

***

## pressure\_advance\_smooth\_time

`pressure_advance_smooth_time` es un parámetro secundario que suaviza los cambios de PA en el tiempo para evitar vibraciones en la extrusora. El valor por defecto es `0.040` segundos y en la mayoría de setups no necesita tocarse.

```ini
[extruder]
pressure_advance: 0.05
pressure_advance_smooth_time: 0.040  # Default — no tocar si no hay problemas
```

**Cuándo ajustarlo:**

* Si notas ruido o vibración en la extrusora durante las esquinas → prueba reducir a `0.020`
* En bowden largo con PA alto → valores de `0.040–0.060` suelen dar mejores resultados
* En extrusoras directas muy sensibles → mantén en `0.020–0.040`

{% hint style="warning" %}
Un `smooth_time` alto con Input Shaper activo puede crear desincronías entre el movimiento del cabezal y la extrusión. Si usas IS, mantén `smooth_time` en el valor por defecto o más bajo.
{% endhint %}

***

## Resolución de problemas

| Síntoma                                       | Causa probable                                                      | Solución                                             |
| --------------------------------------------- | ------------------------------------------------------------------- | ---------------------------------------------------- |
| No encuentro un valor que mejore las esquinas | Extrusor mal calibrado, temperatura incorrecta, o desgaste mecánico | Verifica e-steps, temperatura y estado de engranajes |
| Líneas inconsistentes en todo el test         | Flujo inestable, temperatura demasiado baja                         | Sube temperatura 5-10°C y repite                     |
| PA bowden > 1.0 sin mejora                    | Tubo PTFE suelto o dañado, anclajes neumáticos desgastados          | Inspecciona y reemplaza el PTFE y los PC4            |
| Con IS activado las esquinas empeoran         | Interacción PA + Input Shaper                                       | Recalibra PA con IS activado, reduce `smooth_time`   |
| Extrusora hace ruido en esquinas              | `smooth_time` demasiado bajo                                        | Aumenta a `0.040` o `0.060`                          |
