> 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

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**.

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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/configuracion-marlin/puesta-en-marcha-inicial.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.
