> 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/sensor-nivelacion/biqu-microprobe.md).

# BIQU MicroProbe

El BIQU MicroProbe es un sensor de nivelación con pin retráctil, similar en concepto al BLTouch pero con un funcionamiento electrónico diferente y algunas ventajas interesantes respecto a él.

<figure><img src="/files/F9tSZsmYDMUi9xWVe5sf" alt=""><figcaption><p>Diagrama de conexiones del BIQU MicroProbe</p></figcaption></figure>

**Características principales:**

* Tamaño reducido e integrable en casi cualquier cabezal
* Peso reducido — minimiza el impacto en inercias y vibraciones
* Instalación similar a un BLTouch
* Buena precisión y fiabilidad
* Pin de contacto reemplazable
* Compatible con una amplia variedad de impresoras y electrónicas
* Precio competitivo

## Dónde comprarlo

{% tabs %}
{% tab title="AliExpress" %}
{% embed url="<https://s.click.aliexpress.com/e/182731559?productUrl=https://www.aliexpress.com/item/1005006314165426.html>" %}
{% endtab %}
{% endtabs %}

{% hint style="info" %}
} Si utilizas los links de compra, el precio del producto será el mismo que si accedes de manera habitual, pero a 3DWork le quedará una pequeña comisión. Algo que nos ayudará a soportar el proyecto y continuar generando contenido.
{% endhint %}

{% hint style="warning" %}
**Diferencias importantes respecto al BLTouch**

<img src="/files/CQJJ6tt2Wv5us9jYQi6N" alt="" data-size="original">

**V1 vs V2**: existen dos versiones con polaridad de señal invertida.

* **V1**: trigger en **HIGH** — pin de señal sin modificador (`^PIN`)
* **V2**: trigger en **LOW** — pin de señal con modificador negado (`^!PIN`)

**La V2 necesita una señal pull-up fuerte**. En algunas electrónicas puede dar problemas con ciertos pines que no tienen pull-up externo suficiente. Si el sensor no responde correctamente, prueba con otro pin o añade una resistencia pull-up externa.

Verifica la versión de tu sensor antes de copiar ninguna configuración.
{% endhint %}

## Compilación y flasheo del firmware

El MicroProbe no requiere flasheo de firmware adicional. Se conecta directamente a la electrónica de la impresora como un sensor de probe estándar.

## Configuración Klipper

La configuración del MicroProbe usa la sección `[probe]` estándar de Klipper con el añadido de un pin de servo para controlar el despliegue y recogida del pin.

### Estructura general

```ini
# Pin de control servo (despliegue/recogida)
[output_pin probe_enable]
pin: PIN_SERVO          # Ajusta al pin de tu electrónica
value: 0                # Recogido por defecto

# Sensor probe
[probe]
pin: ^!PIN_SEÑAL        # V1: ^PIN  |  V2: ^!PIN
deactivate_on_each_sample: False
x_offset: 0.0           # Offset real de tu instalación
y_offset: 0.0           # Offset real de tu instalación
z_offset: 0.0           # Se calibra con PROBE_CALIBRATE
speed: 5.0
lift_speed: 10.0
samples: 2              # Número de muestras por punto
samples_result: median  # median o average
sample_retract_dist: 3.0
samples_tolerance: 0.050
samples_tolerance_retries: 3
activate_gcode:
    Probe_Deploy
    G4 P500             # 500ms para desplegar
deactivate_gcode:
    Probe_Stow

# Macros de despliegue y recogida
[gcode_macro Probe_Deploy]
gcode:
    SET_PIN PIN=probe_enable VALUE=1

[gcode_macro Probe_Stow]
gcode:
    SET_PIN PIN=probe_enable VALUE=0
```

{% hint style="info" %}
**`samples`, `samples_tolerance` y `samples_tolerance_retries`** son parámetros recomendados para mejorar la fiabilidad de las medidas. Con `samples: 2` y `samples_result: median`, Klipper toma 2 lecturas por punto y usa la mediana — si las lecturas difieren más de `samples_tolerance` (50 µm), lo reintenta hasta 3 veces. Esto evita resultados erróneos por vibraciones o ruido eléctrico.
{% endhint %}

### Configuración por electrónica

{% tabs %}
{% tab title="M8P v2.0" %}
Cableado:

<figure><img src="/files/X9ah7l1de4DsfaeFoqKs" alt=""><figcaption></figcaption></figure>

```ini
[output_pin probe_enable]
pin: PD12

[probe]
pin: ^!PD13  # V1: ^PD13  |  V2: ^!PD13
```

{% endtab %}

{% tab title="M8P v1.1" %}
Cableado:

<figure><img src="/files/kWJk3un44LrNe3ur5gdY" alt=""><figcaption></figcaption></figure>

```ini
[output_pin probe_enable]
pin: PB1

[probe]
pin: ^!PB2  # V1: ^PB2  |  V2: ^!PB2
```

{% endtab %}

{% tab title="M5P" %}
Cableado:

<figure><img src="/files/24M0nrjMPQJUQWTgWNZ9" alt=""><figcaption></figcaption></figure>

```ini
[output_pin probe_enable]
pin: PC15

[probe]
pin: ^!PC13  # V1: ^PC13  |  V2: ^!PC13
```

{% endtab %}

{% tab title="Octopus" %}
Cableado:

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

```ini
[output_pin probe_enable]
pin: PB6

[probe]
pin: ^!PB7  # V1: ^PB7  |  V2: ^!PB7
```

{% endtab %}

{% tab title="Octopus MAX" %}
Cableado:

<figure><img src="/files/WwXli6CquwXwNglZ0u3r" alt=""><figcaption></figcaption></figure>

```ini
[output_pin probe_enable]
pin: PB6

[probe]
pin: ^!PB15  # V1: ^PB15  |  V2: ^!PB15
```

{% endtab %}

{% tab title="E3 EZ" %}
Cableado:

<figure><img src="/files/VuCpQYAx9dlFfxcHXWBb" alt=""><figcaption></figcaption></figure>

```ini
[output_pin probe_enable]
pin: PA7

[probe]
pin: ^!PA6  # V1: ^PA6  |  V2: ^!PA6
```

{% endtab %}

{% tab title="SKR 3" %}
Cableado con Z-Endstop:

<figure><img src="/files/QH4uBbvLbIhZZTzUPOud" alt=""><figcaption></figcaption></figure>

O usando el conector PROBE:

<figure><img src="/files/xuPmAjbdTfAXKmOMDpm8" alt=""><figcaption></figcaption></figure>

```ini
[output_pin probe_enable]
pin: PE5

[probe]
pin: ^!PC13  # V1: ^PC13  |  V2: ^!PC13
```

{% endtab %}

{% tab title="MINI E3 v3.0" %}
Cableado:

<figure><img src="/files/ShR1GWg55tTbfNatv8lK" alt=""><figcaption></figcaption></figure>

```ini
[output_pin probe_enable]
pin: PA1

[probe]
pin: ^!PC14  # V1: ^PC14  |  V2: ^!PC14
```

{% endtab %}
{% endtabs %}

### Safe Z Homing

Es muy recomendable añadir `[safe_z_home]` para que el homing Z se realice siempre con el sensor desplegado en una posición segura:

```ini
[safe_z_home]
home_xy_position: X_CENTRO, Y_CENTRO  # Ajusta al centro de tu cama
speed: 100
z_hop: 10           # Sube Z antes de mover a la posición de home
z_hop_speed: 20
```

Sustituye `X_CENTRO, Y_CENTRO` por las coordenadas del centro de tu área de impresión (teniendo en cuenta el offset XY del sensor).

### Bed Mesh

Añade la sección `[bed_mesh]` ajustada a tu impresora:

```ini
[bed_mesh]
speed: 150
horizontal_move_z: 10
mesh_min: XMIN, YMIN    # Mínimo alcanzable por el sensor (nozzle offset incluido)
mesh_max: XMAX, YMAX    # Máximo alcanzable por el sensor
probe_count: 5, 5       # Puntos de sondeo en X e Y
mesh_pps: 2, 2
algorithm: bicubic
fade_start: 1
fade_end: 10
```

Para calcular correctamente `mesh_min` y `mesh_max` teniendo en cuenta el offset XY del sensor, consulta la [guía de sensores de nivelación](/klipper/empezamos/sensor-nivelacion.md).

## Comprobaciones previas — antes del primer home

Antes de lanzar ningún `G28`, verifica que el sensor funciona correctamente:

**1. Despliega el pin:**

```gcode
Probe_Deploy
```

**2. Con el pin desplegado, lanza:**

```gcode
QUERY_PROBE
```

Debe devolver `probe: open`.

**3. Recoge el pin:**

```gcode
Probe_Stow
```

**4. Activa manualmente el sensor acercando un objeto metálico al pin y lanza:**

```gcode
QUERY_PROBE
```

Debe devolver `probe: TRIGGERED`.

### Si el comportamiento es el inverso

Cambia el modificador del pin en la sección `[probe]`:

* Si tienes `^!PIN`, cámbialo a `^PIN`
* Si tienes `^PIN`, cámbialo a `^!PIN`

### Si el pin no se despliega o recoge

* Verifica el cableado físico
* Comprueba que el pin configurado en `[output_pin probe_enable]` corresponde al puerto donde está conectado el sensor
* Revisa en el log de Klipper que la sección se está cargando correctamente

### Si el estado no cambia al activar el sensor

* Verifica el cableado de la señal
* Prueba a cambiar entre pull-up y pull-down en la definición del pin
* En la V2, asegúrate de que el pin tiene suficiente pull-up — considera usar otro pin o añadir resistencia pull-up externa

## Calibración del Z-Offset

Una vez que las comprobaciones son correctas, calibra el z-offset:

```gcode
G28
PROBE_CALIBRATE
```

Sigue el asistente para ajustar la altura del nozzle con el papel. Al terminar, acepta y guarda:

```gcode
SAVE_CONFIG
```

Más información en la [guía de sensores de nivelación → ajuste del z-offset](/klipper/empezamos/sensor-nivelacion.md#ajuste-del-z-offset-usando-papel-o-galga).
