# Marlin Troubleshooting

{% hint style="info" %}
**English**: Use your browser's built-in translation — Chrome and Edge detect the language automatically and offer to translate the page.
{% endhint %}

Aquí encontrarás los problemas más frecuentes al compilar, flashear o usar Marlin, junto con sus causas y soluciones.

## Errores de compilación

| Error                                         | Causa                                                  | Solución                                                                                                   |
| --------------------------------------------- | ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------- |
| `#error MOTHERBOARD value is not valid`       | El valor de `MOTHERBOARD` en Configuration.h no existe | Busca tu placa en `Marlin/src/core/boards.h` y usa el valor correcto                                       |
| `#error "Serial port..." is not available`    | Puerto serial incorrecto para la placa                 | Revisa `SERIAL_PORT` en Configuration.h — muchas placas STM32 usan `-1` para USB nativo                    |
| `region 'flash' overflowed`                   | El firmware compilado no cabe en la flash de la placa  | Desactiva funciones no necesarias o usa un entorno con más flash (ej: `STM32F407VG` en vez de `STM32F103`) |
| `#error "NOZZLE_PARK_FEATURE is required..."` | Función dependiente no habilitada                      | Lee el mensaje de error: indica qué `#define` habilitar para resolverlo                                    |
| `Cannot open source file "..."`               | Librería de PlatformIO no descargada                   | Ejecuta `PlatformIO: Clean` y vuelve a compilar para que descargue dependencias                            |

## Errores al flashear

| Error                                        | Causa                                                           | Solución                                                                                              |
| -------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| Puerto COM no aparece                        | Driver no instalado o cable sin datos                           | Instala el driver CH340/CP2102 según el chip USB de tu placa; usa cable USB con datos (no solo carga) |
| `avrdude: verification error`                | Flash incorrecta o protegida                                    | Verifica que el `.hex` corresponde al procesador correcto (mega2560 ≠ mega1280)                       |
| Firmware flasheado pero impresora no arranca | Bootloader corrupto o configuración errónea                     | Reflashea el bootloader con un programador externo o verifica `MOTHERBOARD`                           |
| Pantalla en blanco tras actualización        | Cambio en el protocolo de comunicación o reset EEPROM necesario | Envía `M502` + `M500` para resetear la EEPROM a valores por defecto                                   |

## Problemas de comportamiento

| Síntoma                                        | Causa probable                                        | Solución                                                                                       |
| ---------------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| Eje se mueve en dirección contraria            | `INVERT_X_DIR` (o Y/Z/E) incorrecto                   | Cambia el valor true/false del eje correspondiente en Configuration.h                          |
| El homing no para / activa el endstop al revés | Lógica de endstop invertida                           | Cambia `X_HOME_DIR` o usa `#define ENDSTOPPULLUP_XMIN` según el tipo (NO/NC)                   |
| `Printer halted. kill() called`                | Error crítico de temperatura o protección activada    | Revisa los valores de `TEMP_SENSOR_*` y las protecciones `THERMAL_PROTECTION_*`                |
| Temperatura errática o `-14°C` constante       | Termistor mal configurado o desconectado              | Verifica `TEMP_SENSOR_0` — el valor debe coincidir con el termistor instalado                  |
| `Heating failed` al calentar                   | Calefactor no llega a temperatura en tiempo           | Ajusta `WATCH_TEMP_INCREASE` y `WATCH_TEMP_PERIOD` o revisa la resistencia del heater          |
| Steps/mm incorrectos tras actualización        | EEPROM con valores viejos                             | Envía `M502` para cargar los del firmware y `M500` para guardarlos                             |
| `Probing Failed` durante G29                   | Sonda no alcanza el punto de sondeo                   | Ajusta `X_PROBE_OFFSET_FROM_EXTRUDER` / `Y_PROBE_OFFSET_FROM_EXTRUDER` o los límites de sondeo |
| Ventilador de capa no responde a M106          | `EXTRUDER_AUTO_FAN` o pin incorrecto                  | Verifica `FAN_PIN` en los pins de tu placa; revisa si está controlado por `EXTRUDER_AUTO_FAN`  |
| ABL/BLTouch no despliega la sonda              | Pin de control incorrecto                             | Verifica `SERVO0_PIN` o `Z_PROBE_PIN` en el fichero pins de tu placa                           |
| Impresión se desplaza en capas (layer shift)   | Corriente de driver insuficiente o sobrecalentamiento | Ajusta `#define X_CURRENT` en Configuration\_adv.h; mejora la ventilación de los drivers       |

## Problemas con la pantalla

| Síntoma                                         | Causa                                                | Solución                                                                          |
| ----------------------------------------------- | ---------------------------------------------------- | --------------------------------------------------------------------------------- |
| Pantalla en blanco (retroiluminación encendida) | Encoder o tipo de pantalla incorrecto                | Verifica `LCD_LANGUAGE`, `DISPLAY_CHARSET_HD44780` y el modelo en Configuration.h |
| Pantalla TFT muestra "No printer attached"      | Baudrate incorrecto o `SERIAL_PORT_2` no configurado | Ajusta `BAUDRATE` a 115200 y habilita `SERIAL_PORT_2` para la TFT                 |
| Menú de nivelación no aparece                   | Función no compilada                                 | Habilita `LCD_BED_LEVELING` en Configuration.h                                    |

## Herramientas de diagnóstico

```gcode
M115   ; información del firmware y capacidades
M119   ; estado de todos los finales de carrera
M503   ; configuración activa completa (pasos, PID, offsets...)
M155 S2  ; reportar temperaturas cada 2 segundos
```

{% hint style="info" %}
**Pronterface** es la herramienta más cómoda para diagnosticar: conecta via USB, envía gcodes y ve los mensajes de respuesta en tiempo real. Más info en la guía de [Pronterface](/marlin/troubleshooting-marlin/pronterface.md).
{% endhint %}

## Guías específicas de esta sección

{% content-ref url="/pages/ogpQJHsC8x4RN82qpTu8" %}
[Pronterface](/marlin/troubleshooting-marlin/pronterface.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MX8-EfV5xaNW8bowUOx" %}
[Control de ventiladores con MOSFET externo](/marlin/troubleshooting-marlin/control-de-ventiladores-con-mosfet-externo.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MXNGvSDMeuv\_P1ndDa1" %}
[Reparar pin sensor temperatura](/marlin/troubleshooting-marlin/reparar-pin-sensor-temperatura.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://marlin.3dwork.io/marlin/troubleshooting-marlin.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
