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

# Puesta en Marcha Inicial

Guía completa de primeros pasos al implementar Marlin en tu impresora 3D, desde la instalación del firmware hasta las primeras impresiones.

Bienvenido a la guía de primeros pasos con Marlin. Aquí aprenderás cómo preparar tu impresora desde cero, cargar el firmware, conectarte y realizar los ajustes básicos necesarios para imprimir con seguridad y calidad.

{% hint style="info" %}
Esta guía asume que ya tienes Marlin compilado para tu placa controladora. Si necesitas compilar Marlin por primera vez, consulta la [Guía de Compilación de Marlin](/marlin/marlin-guia-compilacion.md).
{% endhint %}

## Resumen del Proceso

Estos son los pasos que seguiremos en orden:

{% stepper %}
{% step %}

### 1. Carga del Firmware

Cargar el binario compilado en tu placa controladora
{% endstep %}

{% step %}

### 2. Conexión Inicial

Establecer conexión con la impresora (Pronterface, pantalla LCD u OctoPrint)
{% endstep %}

{% step %}

### 3. Verificación de Endstops

Comprobar que los sensores de fin de carrera funcionan correctamente
{% endstep %}

{% step %}

### 4. Verificación de Motores

Confirmar que los motores responden correctamente
{% endstep %}

{% step %}

### 5. Verificación de Sensores

Comprobar temperatura hotend, cama y otros sensores
{% endstep %}

{% step %}

### 6. Calibración Básica

Ajustar Z-offset, E-steps y temperatura
{% endstep %}

{% step %}

### 7. Primeras Pruebas

Primeros movimientos y pruebas de impresión
{% endstep %}
{% endstepper %}

***

## 1. Carga del Firmware

### Requisitos Previos

Antes de cargar el firmware, asegúrate de tener:

* **Placa controladora compatible** (Arduino Mega, RAMPS, BigTreeTech SKR, MKS, Creality, etc.)
* **Marlin compilado** (`.hex` o `.bin` según tu placa)
* **Cable USB** o **acceso a tarjeta SD** (según tu placa)
* **Software de carga** (varía según la placa)

{% hint style="warning" %}
**Desconecta la impresora de la corriente eléctrica antes de instalar o actualizar la placa controladora.**
{% endhint %}

### Proceso de Carga

{% tabs %}
{% tab title="Arduino Mega (RAMPS, MKS Gen)" %}

1. **Conecta** la placa Arduino al ordenador por USB
2. **Abre Arduino IDE** y selecciona:
   * **Board**: Arduino Mega 2560
   * **Port**: El puerto COM que aparezca
3. **Carga el firmware**: `Sketch → Upload`
4. Espera a que aparezca "Upload complete"

```
Sketch uses 258048 bytes (100%) of program storage space.
Global variables use 8204 bytes (100%) of dynamic memory.
Upload complete.
```

{% hint style="success" %}
Si ves este mensaje, la carga fue exitosa.
{% endhint %}
{% endtab %}

{% tab title="BigTreeTech SKR, Creality v4.x (STM32) — RECOMENDADO" %}
**Método recomendado: Tarjeta SD (funciona en todos los casos)**

1. **Copia el archivo `.bin` compilado** a una **tarjeta microSD formateada en FAT32**
2. **Inserta la tarjeta en la placa**
3. **Reinicia la impresora** (desconecta y vuelve a conectar la corriente)
4. **El firmware se cargará automáticamente** (puedes ver un LED parpadeando)
5. **Espera 30-60 segundos** a que finalice
6. **Reinicia nuevamente** para aplicar completamente

{% hint style="info" %}
Este es el método más fiable y no requiere herramientas especiales.
{% endhint %}
{% endtab %}

{% tab title="Creality (CR-10, Ender 3, etc.)" %}
Las placas Creality usan bootloaders propietarios. El método varía según el modelo:

**Ender 3 / CR-10 v1 (8-bit):**

* Usa Arduino IDE (como Arduino Mega)

**Ender 3 v2 / CR-6 (STM32):**

* Tarjeta SD (método recomendado)
* Manual USB si es necesario

**K1 / K1 Max:**

* No compatible con Marlin (usan Klipper)

Consulta el manual de tu impresora para confirmación.
{% endtab %}

{% tab title="Anycubic, Anet, Otras" %}
**Anycubic i3 Mega / Mega X:**

* Copia el `.hex` a tarjeta SD con nombre específico (ej: `FIRMWARE.hex`)
* Inserta en la impresora
* El nombre del archivo cambiará cuando termine

**Anet A8 / A6:**

* Usa Arduino IDE con Board "Anet V1.0"

**Recomendación**: Consulta el [manual oficial de Marlin](/marlin/marlin-guia-compilacion.md) o el fabricante.
{% endtab %}
{% endtabs %}

### Verificación de Carga

Tras cargar el firmware, deberías ver:

1. **LEDs de la placa** parpadeando o brillando
2. **Pantalla LCD** (si la tienes) mostrando el menú Marlin
3. **Sin mensajes de error** de conexión

***

## 2. Conexión Inicial

Tienes varias opciones para conectarte y controlar tu impresora. Elige la que mejor se adapte a tu setup:

### Opción A: Pantalla LCD / Interface de Marlin

Si tu impresora tiene **pantalla LCD inteligente** que se conecta por serial (RXD/TXD), puedes usarla directamente sin ordenador.

**Ventaja**: Control total sin necesidad de host externo. **Desventaja**: Pantalla más pequeña, menos información.

### Opción B: Pronterface (Recomendado para Empezar)

Pronterface es una aplicación de escritorio simple y directa. Hay una guía detallada en el space: [Pronterface](/marlin/troubleshooting-marlin/pronterface.md)

**Pasos rápidos:**

1. **Descarga Pronterface** desde [pronterface.com](https://www.pronterface.com/)
2. **Conecta la placa USB** a tu ordenador
3. **Abre Pronterface**
4. Selecciona el **puerto COM** (el que aparezca en el dropdown)
5. Configura **velocidad en baudios: 250000**
6. Haz clic en **Connect**

{% hint style="info" %}
Si no aparece puerto COM:

* Instala drivers USB (FTDI, CH340, etc. según tu placa)
* En Linux/Mac usa: `ls /dev/ttyUSB*` o `ls /dev/ttyACM*`
  {% endhint %}

### Opción C: OctoPrint (Avanzado)

OctoPrint requiere una **Raspberry Pi** u otro host (ordenador, NAS, etc.) permanentemente encendido.

**Ventaja**: Control remoto, mejoras con plugins **Desventaja**: Requiere hardware adicional, más complejo de configurar

Hay guías de instalación en la sección [OctoPrint](https://github.com/alienboyxp/gitbook_es_marlin_3dwork_io/blob/main/octoprint/README.md) si deseas explorarlo después.

**Para empezar, usa Pronterface.** Es simple y no requiere hardware adicional.

***

## 3. Verificación de Endstops

Los **endstops** son sensores que detectan los límites de los ejes. Marlin los debe detectar correctamente antes de poder mover nada.

### Comprobar Estado de Endstops

En Pronterface (u otro interface), envía este comando:

```
M119
```

Deberías ver algo como:

```
x_min: open  y_min: open  z_min: open
```

Todos deben estar en estado **`open`** (abiertos/sin pulsar) inicialmente.

### Probar Cada Endstop

Presiona **manualmente cada endstop** mientras envías `M119` de nuevo:

```
x_min: TRIGGERED  (cuando presionas el X)
y_min: TRIGGERED  (cuando presionas el Y)
z_min: TRIGGERED  (cuando presionas el Z)
```

{% hint style="danger" %}
**Si algún endstop NO cambia de estado**:

* Revisa la conexión del sensor en la placa
* Verifica que el sensor no esté defectuoso
* Comprueba que está configurado en `configuration.h`

Consulta: [Reparar pin sensor temperatura](/marlin/troubleshooting-marlin/reparar-pin-sensor-temperatura.md) para diagnóstico más detallado.
{% endhint %}

***

## 4. Verificación de Motores

Una vez que los endstops funcionan, prueba que los motores responden correctamente.

### Desde Pantalla Marlin (Recomendado)

Si tu impresora tiene **pantalla LCD**, es la forma más segura de probar motores:

{% stepper %}
{% step %}

### Accede al Menú de Movimiento

En la pantalla Marlin:

1. Presiona el botón **MENU** (botón central, esquina inferior derecha)
2. Selecciona **Prepare** → **Move Axis** (o **Mover Eje**)
3. Selecciona el eje que deseas probar (**X**, **Y** o **Z**)
   {% endstep %}

{% step %}

### Mueve el Motor

En el menú de movimiento:

* **Presiona UP/DOWN** para cambiar la distancia a mover (10mm, 1mm, 0.1mm, etc.)
* **Presiona el botón central (OK)** para mover el eje

{% hint style="danger" %}
**IMPORTANTE antes de mover Z**: asegúrate de que la cama está **bajada lo suficiente** para que la boquilla no golpee. Si es la primera vez, baja la cama manualmente primero.
{% endhint %}
{% endstep %}

{% step %}

### Observa el Movimiento

* ¿Se mueve el motor suavemente?
* ¿Hace ruido extraño (chirridos, crujidos)?
* ¿Se mueve en la dirección correcta?

Si algo falla, detén inmediatamente y revisa las conexiones.
{% endstep %}
{% endstepper %}

**Para ver exactamente cómo se vería en tu pantalla LCD, mira este video:**

{% embed url="<https://www.youtube.com/watch?v=8mdIYlbM6CM>" %}

**Flujo de navegación del menú:**

```
┌─────────────────────────────────┐
│ PANTALLA INICIO                 │
│ ┌─────────────────────────────┐ │
│ │ Marlin 2.1.2                │ │
│ │ T: 23.5°C / 0°C             │ │
│ │ B: 22.0°C / 0°C             │ │
│ │ Status: Ready               │ │
│ └─────────────────────────────┘ │
│ Presiona MENU                   │
└────────────┬────────────────────┘
             │
             ▼
┌─────────────────────────────────┐
│ MENÚ PRINCIPAL                  │
│ ┌─────────────────────────────┐ │
│ │ > Prepare       (← Seleccionado)│
│ │   Print                     │ │
│ │   Control                   │ │
│ │   Info                      │ │
│ └─────────────────────────────┘ │
│ Presiona OK                     │
└────────────┬────────────────────┘
             │
             ▼
┌─────────────────────────────────┐
│ PREPARE MENU                    │
│ ┌─────────────────────────────┐ │
│ │ > Move Axis     (← Seleccionado)│
│ │   Preheat PLA               │ │
│ │   Preheat PETG              │ │
│ │   Cool Down                 │ │
│ └─────────────────────────────┘ │
│ Presiona OK para entrar         │
└────────────┬────────────────────┘
             │
             ▼
┌─────────────────────────────────┐
│ MOVE AXIS MENU                  │
│ ┌─────────────────────────────┐ │
│ │ > Move X        (← Seleccionado)│
│ │   Move Y                    │ │
│ │   Move Z                    │ │
│ │   Move E                    │ │
│ └─────────────────────────────┘ │
│ Usa UP/DOWN para cambiar distancia│
│ Presiona OK para mover          │
└─────────────────────────────────┘
```

**Cómo usar el menú:**

1. Usa **UP/DOWN** para navegar entre opciones
2. Presiona **OK** para entrar/seleccionar
3. En "Move Axis", usa **UP/DOWN** para cambiar distancia (10mm → 1mm → 0.1mm)
4. Presiona **OK** para ejecutar el movimiento
5. Presiona **BACK** para salir del menú

### Desde Pronterface o Terminal

Si no tienes pantalla, usa **Pronterface**. Aquí puedes ver la interfaz en detalle:

{% embed url="<https://www.youtube.com/watch?v=txj41rRdQ7s>" %}

**Pasos en Pronterface:**

1. Busca la sección **"Control"** en la interfaz
2. Encontrarás campos para **Move X**, **Move Y**, **Move Z**
3. Ingresa una distancia (ej: 10) y presiona el botón correspondiente

**Mover X 10mm:**

```
G1 X10 F1500
```

**Mover Y 10mm:**

```
G1 Y10 F1500
```

**Mover Z 5mm (hacia arriba):**

```
G1 Z5 F300
```

**Volver a origen (todos los ejes deben estar hastiado los endstops):**

```
G28
```

{% hint style="info" %}
**F1500** es la velocidad (mm/min). Para Z es más lenta (F300) porque es crítica.
{% endhint %}

***

## 5. Verificación de Sensores (Temperaturas)

Marlin debe detectar correctamente los sensores de temperatura. Pruébalos sin calor primero, después con un secador de pelo.

### Desde Pantalla Marlin

**Pantalla de inicio mostrando temperaturas:**

```
┌─────────────────────────┐
│  Marlin 2.1.2           │
│ T: 23.5°C / 0°C         │
│ B: 22.0°C / 0°C         │
│ Status: Ready           │
│                         │
│ [Menú] [Imprimir]       │
└─────────────────────────┘

Leyenda:
T = Temperatura Hotend (actual/objetivo)
B = Temperatura Cama (actual/objetivo)
23.5°C = Temperatura actual
/0°C = Temperatura objetivo (0=apagado)
```

**Ver temperaturas en tiempo real:**

1. En la **pantalla de inicio**, ya ves las temperaturas actuales constantemente actualizadas
2. Si presionas **MENU** → **Control** → **Temperature**, verás un gráfico histórico de las variaciones de temperatura

**Para ver cómo se ve en una pantalla real:**

{% embed url="<https://www.youtube.com/watch?v=8mdIYlbM6CM>" %}

Más información: [Documentación oficial: LCD Menu](https://marlinfw.org/docs/features/lcd_menu.html)

**Prueba de Temperatura:**

{% stepper %}
{% step %}

### Capta la temperatura inicial

Anota la temperatura que muestra (ej: 23.5°C hotend, 22°C cama)
{% endstep %}

{% step %}

### Aplica calor con un secador de pelo

* Coloca un **secador de pelo en aire tibio** (no caliente)
* Apunta al **nozzle** durante 5-10 segundos
* Observa la **pantalla Marlin**

La temperatura debe **subir gradualmente** (hacia 30-35°C)
{% endstep %}

{% step %}

### Retira el secador

La temperatura debe **bajar gradualmente** de nuevo

Si **NO sube ni baja**, el sensor está defectuoso o mal conectado.
{% endstep %}

{% step %}

### Repite para la cama

Aplica calor al **cristal/cama** y verifica que **B** cambia
{% endstep %}
{% endstepper %}

### Desde Pronterface o Terminal

**Ver estado actual en Pronterface:**

* Busca la sección **"Temperature"** en la interfaz
* Verás campos etiquetados como **"T"** (hotend) y **"B"** (cama)
* Los números se actualizan en tiempo real

**Ver estado actual por terminal:**

```
M105
```

Resultado esperado:

```
ok T:23.5 /0 B:22 /0
```

* **T:23.5**: Temperatura actual hotend
* **/0**: Temperatura objetivo hotend (0 = apagado)
* **B:22**: Temperatura actual cama
* **/0**: Temperatura objetivo cama

**Aplicar calor con secador de pelo:**

1. Ejecuta `M105` varias veces mientras aplicas calor con el secador
2. La temperatura **T** debe subir gradualmente (23 → 28 → 32 → etc.)
3. Cuando retires el calor, debe bajar gradualmente

**Ejemplo de prueba real:**

```
M105
ok T:23.5 /0 B:22 /0

(Aplica calor con secador durante 10 segundos)

M105
ok T:28.2 /0 B:22 /0

M105
ok T:32.5 /0 B:22 /0

(Retira el calor)

M105
ok T:28.1 /0 B:22 /0    ← Bajando gradualmente
```

**Para ver Pronterface en funcionamiento:**

{% embed url="<https://www.youtube.com/watch?v=txj41rRdQ7s>" %}

{% hint style="danger" %}
**Si la temperatura NO cambia**: el termistor está desconectado o mal configurado. Revisa la conexión y el tipo de termistor en `configuration.h`.
{% endhint %}

***

## 6. Calibración Básica

### Z-Offset (Solo si tienes Sensor de Nivelación)

{% hint style="warning" %}
**IMPORTANTE**: El Z-offset **SOLO se usa si tienes un sensor de nivelación** (BLTouch, inductivo, capacitivo, etc.).

**Si NO tienes sensor**, la nivelación es **tradicional**: ajusta manualmente la **cama con las tuercas** (a veces, si los endstops son fijos, ajusta el endstop Z).

Consulta: [Asistente Z-Offset \[Marlin\]](/marlin/configuracion-marlin/nivelacion/asistente-z-offset-marlin.md) para guía detallada.
{% endhint %}

El **Z-offset** determina la distancia entre la boquilla y la cama cuando Z=0. **Solo relevante si tienes sensor.**

**Procedimiento:**

{% stepper %}
{% step %}

### Calienta la impresora

```
M104 S200
M140 S60
M109 S200
M190 S60
```

Espera a que alcance temperatura.
{% endstep %}

{% step %}

### Haz home

```
G28
```

{% endstep %}

{% step %}

### Ve a Z=0

```
G1 Z0
```

{% endstep %}

{% step %}

### Ajusta manualmente

Coloca un papel bajo la boquilla y ajusta hasta que rozar levemente. Anota el valor de Z que muestra.
{% endstep %}

{% step %}

### Calcula y actualiza

Ese valor es tu **Z-offset**. Actualiza `configuration.h`:

```cpp
#define NOZZLE_TO_PROBE_OFFSET { 0, 0, -0.5 }
                                          ^
                                    Tu Z-offset
```

{% endstep %}
{% endstepper %}

**Para procedimiento más detallado con herramientas de calibración automática**, consulta: [Asistente Z-Offset \[Marlin\]](/marlin/configuracion-marlin/nivelacion/asistente-z-offset-marlin.md)

***

### E-Steps (Calibración de Extrusión)

Los **E-steps** determinan cuánto filamento se extruye por cada paso del motor. Es una de las calibraciones más importantes para obtener buenas impresiones.

**Consulta la guía completa de calibración**: [Calibración 3D → 2. Pasos Extrusor](https://labs.3dwork.io/guias-impresion-3d/calibracion_3d#id-2.-pasos-extrusor)

**Resumen rápido:**

{% stepper %}
{% step %}

### Calienta a temperatura de filamento

```
M104 S200
M109 S200
```

{% endstep %}

{% step %}

### Marca el filamento

Haz una marca a **120mm** desde la entrada del extrusor
{% endstep %}

{% step %}

### Extruye 100mm

```
G1 E100 F300
```

{% endstep %}

{% step %}

### Mide la distancia real

¿Cuántos mm se movió realmente el filamento?

Ejemplo: de 120mm a 20mm = 100mm (correcto)
{% endstep %}

{% step %}

### Calcula nuevos E-steps

```
E-steps nuevos = E-steps actual × (100 / distancia real)

Ejemplo:
- E-steps actual: 93
- Distancia real: 98mm
- E-steps nuevos = 93 × (100/98) = 94.9 ≈ 95
```

{% endstep %}

{% step %}

### Actualiza configuration.h

```cpp
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 95 }
                                                      ^
                                                 Nuevo valor
```

Recompila y carga el firmware.
{% endstep %}
{% endstepper %}

Para calibración más precisa y métodos avanzados, consulta la [Guía de Calibración 3D](https://labs.3dwork.io/guias-impresion-3d/calibracion_3d#id-2.-pasos-extrusor).

***

## 7. Test de Movimiento Básico

### Desde Pantalla Marlin

**Lo que ves en la pantalla LCD:**

```
┌─────────────────────────┐
│   > Prepare             │
│     Move Axis           │
│     Preheat PLA         │
│     Cool Down           │
│                         │
│ [Presiona OK →]         │
└─────────────────────────┘
```

Luego al seleccionar "Move Axis":

```
┌─────────────────────────┐
│   Move Axis             │
│   > Move X              │
│     Move Y              │
│     Move Z              │
│     Move E              │
│                         │
│ [Presiona OK →]         │
└─────────────────────────┘
```

**Mover ejes individuales:**

{% stepper %}
{% step %}

### Accede a Move Axis

1. **MENU** → **Prepare** → **Move Axis**
2. Selecciona el eje (**X**, **Y**, **Z** o **E**)
3. Cambia la distancia (10mm, 1mm, etc.)
4. Presiona **OK** para ejecutar el movimiento

**Referencia visual**: Mira este vídeo para ver exactamente cómo se vería en tu pantalla:

{% embed url="<https://www.youtube.com/watch?v=8mdIYlbM6CM>" %}

También consulta la [documentación oficial de Marlin](https://marlinfw.org/docs/features/lcd_menu.html).
{% endstep %}

{% step %}

### Observa cada eje

* **X**: ¿Se mueve hacia la izquierda/derecha suavemente?
* **Y**: ¿Se mueve hacia adelante/atrás suavemente?
* **Z**: ¿Se mueve hacia arriba/abajo sin tropezar?
* **E**: ¿Gira el extrusor suavemente?

{% hint style="danger" %}
Si **Z hace ruido extraño** o **Z se atasca**, detén inmediatamente. Verifica que no hay objetos bloqueando.
{% endhint %}
{% endstep %}

{% step %}

### Repite varios movimientos

Mueve cada eje varias veces para estar seguro de que funciona consistentemente.
{% endstep %}
{% endstepper %}

### Desde Pronterface o Terminal

Para usar Pronterface y realizar movimientos, consulta este video:

{% embed url="<https://www.youtube.com/watch?v=txj41rRdQ7s>" %}

**Movimiento X:**

```
G1 X10 F1500
G1 X20 F1500  (mueve a 20mm total)
G1 X0 F1500   (vuelve a origen)
```

**Movimiento Y:**

```
G1 Y10 F1500
G1 Y20 F1500
G1 Y0 F1500
```

**Movimiento Z (más lento):**

```
G1 Z5 F300    (sube 5mm)
G1 Z10 F300   (sube otros 5mm)
G1 Z0 F300    (vuelve a z=0)
```

**Movimiento Extrusor (sin carga):**

```
G1 E5 F300    (extruye 5mm)
G1 E-5 F300   (retrae 5mm)
```

**Homing completo (vuelve a los endstops):**

```
G28
```

***

## 8. Nivelación de Cama

### Con Sensor de Nivelación

Si tienes **BLTouch**, **inductivo**, **capacitivo** u otro sensor:

```
G29
```

Marlin sondea automáticamente varios puntos y crea un mapa. Toma 30-60 segundos.

**Guías específicas por tipo de sensor:**

* [BLTouch / 3DTouch / CRTouch / MicroProbe](/marlin/configuracion-marlin/nivelacion/bltouch-3dtouch.md)
* [PINDAv2 / Inductivos](/marlin/configuracion-marlin/nivelacion/pindav2.md)
* [Sensorless Homing](/marlin/configuracion-marlin/nivelacion/sensorless-homing-en-marlin.md)

### Sin Sensor (Nivelación Manual Tradicional)

Ajusta **manualmente la cama** con las tuercas en cada esquina:

1. **Haz home**: `G28`
2. **Ve a esquina frontal izquierda**: `G1 X10 Y10 Z0`
3. **Coloca un papel bajo la boquilla**
4. **Ajusta la tuerca de altura hasta rozar levemente**
5. **Repite para cada esquina**

**Guía completa**: [Nivelación Manual MESH](/marlin/configuracion-marlin/nivelacion/nivelado-manual-mesh.md)

***

## 9. Primeras Pruebas

**Precalienta:**

```
M104 S200
M140 S60
M109 S200
M190 S60
```

**Carga un archivo G-code simple** (cubo pequeño 20×20×10 mm)

**Inicia la impresión** desde Pronterface o pantalla

**Observa la primera capa:**

* ¿Línea fina y uniforme?
* ¿Filamento sin tirones?
* ¿Boquilla correctamente ajustada?

Si no es perfecta, **ajusta Z-offset y reinicia**.

***
