# Instalación

{% 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 %}

## ¿Qué necesitamos?

* **Raspberry Pi o cualquier host que pueda correr Linux**, normalmente se aconseja Raspberry Pi dado que la mayoría de distribuciones y herramientas son totalmente compatibles con ellas y en otros dispositivos se ha de realizar una instalación manual e incluso adaptar algunas partes.

{% hint style="success" %}
Si elegimos instalar nuestro host Klipper en una Raspberry Pi, es aconsejable al menos una Raspberry Pi 3B/Zero W 2 o superior.

También es importante que el cargador que alimente esta sea el oficial o uno adecuado para alimentar estos tipos de dispositivos.

Otras alternativas populares y completamente compatibles con MainsailOS/Klipper:

* **BTT Pi / CB2** — placas SBC de Bigtreetech, muy comunes en impresoras BTT y Voron
* **Mellow FLY-Pi / Gemini** — alternativas de Mellow con buena compatibilidad
* **Orange Pi Zero 2W / 3 LTS** — opción económica con imágenes Armbian compatibles

En todos estos casos los requerimientos de hardware son similares: mínimo 1 GB RAM, almacenamiento eMMC o SD de buena calidad.
{% endhint %}

* **SD**, aconsejable que sea rápida y con espacio suficiente para almacenar el sistema y archivos gcode normalmente entre 16-64Gb que sea de Class 10 (velocidad).
* **Cable conexión entre nuestra Pi y nuestra electrónica/impresora**, ya sea USB que es lo más normal o vamos a conectar usando USART u otro tipo de conexión como CAN disponer del cable correspondiente en cada caso.\
  Es importante que este cable sea de la mayor calidad y que este quede correctamente conectado/fijado entre dispositivos para evitar que las vibraciones o movimientos de nuestra máquina puedan afectar a la conexión.

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FuK9y7dfVBAiM67eNULFk%2Fimage.png?alt=media&#x26;token=61fc6a73-1cb0-4774-96cf-8d4bd9de7e29" alt=""><figcaption></figcaption></figure>

## **Antes de comenzar!!!**

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

Por favor entiende que instalar **Klipper** en tu impresora require de cierta experiencia con impresoras 3d, hardware y software. Puede no ser una tarea trivial para gente que se acaba de iniciar en el mundo 3D o que no dispone de unos mínimos conocimientos ya que puedes romper tu impresora o pi durante el proceso

Lee antes la guía completa y entiende todos los pasos que explicamos. Si tienes cualquier duda del proceso por favor te aconsejamos unirte al grupo de Telegram <https://t.me/Klipper_Firmware_ES> donde seguro te echaran una mano.

{% hint style="danger" %}
**No nos hacemos cargo de cualquier daño, problema o fallo que se pueda ocasionar siguiendo estas guías, todos los pasos han sido probados o son las instrucciones de los propios fabricantes/desarrolladores y no deberían de ocasionar fallos.**

**Se intentan mantener al día pero puede darse el caso que, por actualizaciones, estos pasos puedan variar sin previo aviso.**

**Estás haciendo estos cambio bajo tu propia responsabilidad!!!**
{% endhint %}

## Instalando Klipper usando imágenes preconfiguradas para Raspberry Pi

Aunque os mostraremos como instalar el sistema usando un sistema base de Raspberry también **disponemos de distribuciones de Klipper con todo preinstalado que suele ser la alternativa más sencilla y rápida para tener nuestro Klipper montado en especial para usuarios sin experiencia en Linux o Klipper**.

Principalmente contamos con varias distribuciones: **MainsailOS** especialmente indicada para usuarios que comienzan con Klipper, **FluiddOS** como alternativa a MainsailOS con interfaz Fluidd, y **RatOS** para usuarios más experimentados que quieran sacar provecho de su configuración modular y macros avanzadas.

{% hint style="info" %}
Os aconsejamos instalar como complemente a cualquier distribución/imagen de Klipper que os sugerimos a continuación que os [**instaléis Kiauh**](#instalando-kiauh) ya que añade una serie de ayudas extras interesantes.
{% endhint %}

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>MainsailOS</strong>: La distribución Klipper con todos los componentes preinstalados lo cual nos ahorra bastante tiempo.<br>Especialmente indicado si tenemos una Raspberry Pi o Orange Pi.</td><td></td><td></td><td><a href="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FwdLNlnN97Ed8169wtanz%2Fmainailos-sdcard-logo.png?alt=media&#x26;token=a6b79ce0-f3d9-428b-95dc-89dd86f43a16">mainailos-sdcard-logo.png</a></td><td><a href="#mainsailos">#mainsailos</a></td></tr><tr><td><strong>RatOS:</strong> Otra distribución de Klipper basada en MainsailOS y que además soporta hosts, aparte de los soportados por MainsailOS, CB1 de Bigtreetech.<br>Destaca sobre MainsailOS por su soporte nativo a impresoras Ratrig, Voron y Prusa con sus configuraciones modulares.<br>Además, cuenta con extensiones y macros muy potentes instaladas.</td><td></td><td></td><td><a href="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FHbwQ1VB99KIJYJHBi8qN%2Fimage.png?alt=media&#x26;token=6fecf929-4de4-4129-888b-a26b9689201b">image.png</a></td><td><a href="#ratos">#ratos</a></td></tr><tr><td><strong>Kiauh</strong>: es un grandísimo avance para Klipper. Kiauh permite mediante unos sencillos menus instalar Klipper y sus principales componentes de una forma sencilla.<br>En este caso podremos instalar y gestionar Klipper en cualquier tipo de host.</td><td></td><td></td><td><a href="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2F29QNibFvOMTj0vMwBLjq%2Fimage.png?alt=media&#x26;token=d03732bd-3cb4-4e93-9305-25436835d2b5">image.png</a></td><td><a href="#kiauh-instalando-klipper-de-forma-manual-asistida">#kiauh-instalando-klipper-de-forma-manual-asistida</a></td></tr></tbody></table>

{% tabs %}
{% tab title="MainsailOS" %}

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FWYnU9jPXQbs2D6MxNxPv%2Fimage.png?alt=media&#x26;token=eab30777-1958-4dc7-8cd5-5b29457caf11" alt="" width="188"><figcaption></figcaption></figure>

Una de las opciones es usar la distribución de Mainsail llamada **MainsailOS**:

1. **Descargaremos** la última versión de **MainsailOS** desde [**aquí**](https://github.com/mainsail-crew/MainsailOS/releases) **desde el apartado Assets que deberemos desplegar o hacer mostrar todos los que existen**. Disponemos de soporte para basados en Raspberry y Armbian (OrangePi) que podemos identificar por el nombre fácilmente.\
   ![](https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2Fdkf8s0jLzByicXFFyCCk%2Fimage.png?alt=media\&token=537e76f8-1353-4da4-9e1d-76d1c37e4c5b)

{% hint style="info" %}
**DESCARGA DE LA IMAGEN DESDE RASPBERRY PI IMAGER DIRECTAMENTE:**\
En el caso que utilicemos [**Raspberry Pi Imager**](https://www.raspberrypi.com/software/) directamente desde sus opciones podremos elegir que se descargue MainsailOS desde la opción `CHOOSE OS`:

<img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FoHZ5z7v3AxPkfI5rktuY%2Fimage.png?alt=media&#x26;token=72e8f4ae-2936-4419-8cec-9f8eccc83355" alt="" data-size="original">
{% endhint %}

{% hint style="warning" %}
**La selección de la imagen de Raspberry Pi OS 32b o 64b dependerá que nuestra Pi la soporte:**

<img src="https://content.gitbook.com/content/H6gCE2fgkkpOScJ72TP7/blobs/ylgfMdhUk4KlhrRLCncr/image.png" alt="" data-size="original">

Normalmente la instalación de la versión 32b suele ser más segura aunque actualmente los diferentes componentes de Klipper así como sus dependencias (Python) soportan sin problema entornos de 32/64b.

Identificaremos entre 32b o 64b para SBC Raspberry por el nombre del fichero:

<img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FSp6jXwd1oKdJ7xpLJZ0E%2Fimage.png?alt=media&#x26;token=0c5c77c2-2b12-4d6e-b50a-91123299983b" alt="" data-size="original">

Aparecen varios ficheros a descargar, el correcto (fijarse en el tamaño) suele ser el acabado en .img.xz:

<img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2Fz31WuH8r2Nwws8ZLuyUE%2Fimage.png?alt=media&#x26;token=41ff20b7-5043-4e09-bb01-12364b3b5c05" alt="" data-size="original">
{% endhint %}

1. Descomprimiremos el zip donde obtendremos un .img
2. Utilizando [**BalenaEtcher**](https://www.balena.io/etcher/) o [**Raspberry Pi Imager**](https://www.raspberrypi.com/software/) escribiremos .img a nuestra SD (8GB o mayor además de idealmente que sea una SD de alta velocidad)

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FUHmSbwnQMJHlKhbueOEA%2Fchrome-capture-2024-3-18.gif?alt=media&#x26;token=372c820a-dd75-48f0-af3b-8240ba4c007f" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
**ESTE PROCESO BORRARÁ TODO EL CONTENIDO DE NUESTRA SD.**
{% endhint %}

* Colocaremos la SD en nuestro host y alimentaremos para que arranque.

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FXLZbLR3TjMAVmGMKN2K2%2Fchrome-capture-2024-3-182.gif?alt=media&#x26;token=1c9f1c95-5f19-4366-a957-9bd64e6de848" alt=""><figcaption></figcaption></figure>

* Si usamos wifi, y no hicimos la configuración de esta en el caso de usar Raspberry Pi Imager, editaremos el fichero *mainsailos-wpa-supplicant.txt* donde añadiremos la información de nuestra red wifi.
* Una vez todo iniciado comprobaremos que podemos acceder al interfaz web de Klipper, cuando [encontremos la IP asignada de nuestra red a nuestro host](https://klipper.3dwork.io/empezamos/puesta-en-marcha-inicial#conexion-al-interfaz-web-de-klipper), ya podremos conectar nuestra impresora a nuestro host.

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2F43AGieFKzFS2F6WygL8W%2Fchrome-capture-2024-3-183.gif?alt=media&#x26;token=3daab8e0-5083-4f03-ad97-95427a2cb883" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
**Una vez tengamos instalado nuestro Klipper os sugerimos continuar con la** [**guía de primeros pasos en Klipper**](https://klipper.3dwork.io/klipper/empezamos/puesta-en-marcha-inicial) **donde veremos como conectarnos al interfaz web, SSH, primeras comprobaciones y ajustes, etc...fácilmente**
{% endhint %}
{% endtab %}

{% tab title="FluiddOS" %}

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

**FluiddOS** es la distribución oficial de Fluidd, con todos los componentes de Klipper preinstalados y la interfaz Fluidd como front-end. Es una excelente alternativa a MainsailOS para quienes prefieran Fluidd.

1. Descarga la última versión desde [**aquí**](https://github.com/fluidd-core/FluiddPI/releases) desde el apartado Assets. Hay versiones para Raspberry Pi y Armbian (Orange Pi).
2. Descomprime el .img.xz
3. Escribe la imagen con [**Raspberry Pi Imager**](https://www.raspberrypi.com/software/) o [**BalenaEtcher**](https://www.balena.io/etcher/) en tu SD (mínimo 8 GB, Class 10 o superior)

{% hint style="danger" %}
**ESTE PROCESO BORRARÁ TODO EL CONTENIDO DE NUESTRA SD.**
{% endhint %}

* Coloca la SD en el host y alimenta para que arranque.
* Si usas wifi, edita el fichero *fluiddpi-wpa-supplicant.txt* con los datos de tu red antes del primer arranque.
* Una vez iniciado, accede al interfaz web cuando encuentres la IP del host en tu red.

{% hint style="success" %}
**Una vez tengamos instalado nuestro Klipper os sugerimos continuar con la** [**guía de primeros pasos en Klipper**](https://klipper.3dwork.io/klipper/empezamos/puesta-en-marcha-inicial) **donde veremos como conectarnos al interfaz web, SSH, primeras comprobaciones y ajustes, etc...**
{% endhint %}
{% endtab %}

{% tab title="RatOS" %}

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FHbwQ1VB99KIJYJHBi8qN%2Fimage.png?alt=media&#x26;token=6fecf929-4de4-4129-888b-a26b9689201b" alt=""><figcaption></figcaption></figure>

Al igual que Mainsail **RatOS** de Ratrig también ha creado una distribución con todo instalado para sus máquinas basado en Mainsail y que sin duda aún sin tener una Ratrig, también tiene soporte por defecto para máquinas Voron y Prusa, las macros que incluyen puede ser una gran base para nuestro Klipper.

1. Descargaremos la última versión de RatOS desde [**aquí**](https://github.com/Rat-OS/RatOS/releases) **desde el apartado Assets que deberemos desplegar o hacer mostrar todos los que existen**. Disponemos de soporte para basados en Raspberry y CB1 (Bigtreetech) que podemos identificar por el nombre facilmente.\
   ![](https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2Fdk6j9hqxB3DApJTrZk06%2Fimage.png?alt=media\&token=5d5016a5-1e31-40a2-bdc3-cfedf3c6345f)
2. Descomprimiremos el zip donde obtendremos un .img
3. Utilizando [**BalenaEtcher**](https://www.balena.io/etcher/) o [**Raspberry Pi Imager**](https://www.raspberrypi.com/software/) escribiremos .img a nuestra SD (8GB o mayor además de idealmente que sea una SD de alta velocidad)

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FUHmSbwnQMJHlKhbueOEA%2Fchrome-capture-2024-3-18.gif?alt=media&#x26;token=372c820a-dd75-48f0-af3b-8240ba4c007f" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
**ESTE PROCESO BORRARÁ TODO EL CONTENIDO DE NUESTRA SD.**
{% endhint %}

* Colocaremos la SD en nuestro host y alimentaremos para que arranque.

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FXLZbLR3TjMAVmGMKN2K2%2Fchrome-capture-2024-3-182.gif?alt=media&#x26;token=1c9f1c95-5f19-4366-a957-9bd64e6de848" alt=""><figcaption></figcaption></figure>

* RatOS crea un **punto de acceso wifi llamado RatOS** al que podremos conectarnos para realizar la configuración una vez conectados [http://RatOS.local/configure](http://ratos.local/configure) o <http://192.168.50.1/configure> para configurar los parámetros de nuestra wifi.
* Una vez todo iniciado comprobaremos que podemos acceder al interfaz web de Klipper, cuando [encontremos la IP asignada de nuestra red a nuestro host](https://klipper.3dwork.io/empezamos/puesta-en-marcha-inicial#conexion-al-interfaz-web-de-klipper), ya podremos conectar nuestra impresora a nuestro host.

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2F43AGieFKzFS2F6WygL8W%2Fchrome-capture-2024-3-183.gif?alt=media&#x26;token=3daab8e0-5083-4f03-ad97-95427a2cb883" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
**Una vez tengamos instalado nuestro Klipper os sugerimos continuar con la** [**guía de primeros pasos en Klipper**](https://klipper.3dwork.io/klipper/empezamos/puesta-en-marcha-inicial) **donde veremos como conectarnos al interfaz web, SSH, primeras comprobaciones y ajustes, etc...**
{% endhint %}
{% endtab %}

{% tab title="Kiauh" %}
Kiauh : Instalando Klipper de forma manual asistida

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2F29QNibFvOMTj0vMwBLjq%2Fimage.png?alt=media&#x26;token=d03732bd-3cb4-4e93-9305-25436835d2b5" alt=""><figcaption></figcaption></figure>

**Kiauh** es un grandísimo avance para Klipper. Kiauh permite mediante unos sencillos menus instalar Klipper y sus principales componentes de una forma sencilla:

* Instalación de Klipper
* Instalar Moonraker (API que permite interactuar con Klipper por terceros como Mailsail, Fluidd o KlipperScreen)
* Instalación de diferentes interfaces web como Mainsail, Fluidd, Duet Web Control o Octoprint
* Instalar KlipperScreen (un fork de OctoScreen para Klipper)
* Actualizar todos los componentes (Octoprint de ser instalado se gestionará directamente desde el mismo)
* Eliminar cualquier componente
* Hacer un backup del sistema
* Preparar el firmware Klipper para nuestra MCU (placa de la impresora)
* Detectar el serial donde comunicar con nuestras MCU

Puedes encontrar un listado completo de las características [aquí](https://github.com/th33xitus/kiauh/blob/master/docs/features.md).

**Kiauh se hace una herramienta indispensable en el caso que optemos por una distribución Linux que no cuente preinstalados los componentes Klipper.**

#### Preparación de nuestro host Klipper

{% hint style="danger" %}
**ESTE PASO ES NECESARIO SI NO HEMOS OPTADO POR UTILIZAR UNA DISTRIBUCIÓN CON TODO INSTALADO COMO LAS ANTERIORES SUGERIDAS.**

**ESTE PROCESO NO ES ACONSEJABLE PARA USUARIOS SIN UN MINIMO EXPERIENCIA EN LINUX O KLIPPER.**
{% endhint %}

Para poder instalar Klipper debemos preparar nuestro host Klipper. Esta guía no va a entrar en detalle este paso tan solo haremos un listado rápido de los pasos a seguir basados en un host como Raspberry Pi:

* Descargaremos una imagen de [Raspberry Pi OS Lite](https://www.raspberrypi.org/documentation/installation/installing-images/README.md) y la "quemaremos" en nuestra SD usando [**BalenaEtcher**](https://www.balena.io/etcher/) o [**Raspberry Pi Imager**](https://www.raspberrypi.com/software/).\
  En el caso que no uses una Pi usaremos la imagen del sistema más adecuado a nuestro host

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FUHmSbwnQMJHlKhbueOEA%2Fchrome-capture-2024-3-18.gif?alt=media&#x26;token=372c820a-dd75-48f0-af3b-8240ba4c007f" alt=""><figcaption></figcaption></figure>

* Colocaremos la SD en nuestro host y alimentaremos para que arranque.

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FXLZbLR3TjMAVmGMKN2K2%2Fchrome-capture-2024-3-182.gif?alt=media&#x26;token=1c9f1c95-5f19-4366-a957-9bd64e6de848" alt=""><figcaption></figcaption></figure>

* Verificaremos que nuestro host Klipper arranca y podemos conectarnos por red wifi o cable
* Habilitaremos SSH y verificaremos que podemos conectar por SSH
* En el caso que nuestro host Klipper sea una Pi:
  1. Ejecutaremos `sudo raspi-config`
     1. Haremos un reset del password por defecto
     2. configuraremos el hostname si queremos
* Ejecutaremos `sudo apt-get update` y `sudo apt-get upgrade` para actualizar nuestra pi

{% hint style="warning" %}
**La selección de la imagen de Raspberry Pi OS 32b o 64b dependerá que nuestra Pi la soporte:**

<img src="https://content.gitbook.com/content/H6gCE2fgkkpOScJ72TP7/blobs/ylgfMdhUk4KlhrRLCncr/image.png" alt="" data-size="original">

**Normalmente la instalación de la versión 32b suele ser más segura aunque actualmente los diferentes componentes de Klipper así como sus dependencias (Python) soportan sin problema entornos de 32/64b**
{% endhint %}

#### Instalando Kiauh

Ahora que ya tenemos el sistema base en nuestro host Klipper, esta actualizado y podemos conectarnos por SSH a ella comenzaremos a instalar Kiauh

```bash
sudo apt-get update && sudo apt-get install git -y
cd ~ && git clone https://github.com/dw-0/kiauh.git
./kiauh/kiauh.sh
```

{% hint style="info" %}
Con estos comandos hacemos...

* Instalamos git para la gestión de repositorios
* Clonamos el repositorio de Kiauh
* Permitimos que los scripts descargados puedan ser ejecutados
* Ejecutamos Kiauh

Si necesitamos volver a lanzar Kiauh en el futuro podemos ir a `home/pi/kiauh (o el path de instalación elegido) y ejecutar ./kiauh.sh`
{% endhint %}

Una vez hemos realizado el proceso completo y lanzamos Kiauh deberíamos ver un menú como este:

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

{% hint style="success" %}
**En el caso que vengas de la instalación de una distribución con todo pre-instalado como MainsailOS/RatOS/FluiddOS no es necesario que realices los siguientes pasos de instalación de otros componentes de Klipper ya que estos ya estarán instalados**.
{% endhint %}

#### Instalando Klipper y Moonraker

Para nuestra guía vamos a usar Klipper que es el core del sistema y Moonraker que va a crear una API para poder gestionar la comunicación entre Klipper.

De las opciones del menú elegiremos la opción 1 para acceder al menú de instalación

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

Volveremos a elegir la opción 1 y comenzaremos el proceso de instalación:

* Eligiremos compilar nuestro firmware
* Por ahora no elegiremos actualizar nuestra MCU

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

#### Instalando un interfaz para acceder a Klipper

Existen diferentes formas de gestionar Klipper, recomendamos el uso de Mainsail o Fluidd, es posible usar Octoprint también pero creemos que no es la mejor opción salvo casos puntuales ya que es más de uso general y Mainsail/Klipper son desarrollos específicos para Klipper.

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

La instalación es bastante sencilla y similar a la que realizamos en el punto anterior tan solo seleccionando el interfaz que más nos guste y seguir el asistente/indicaciones.

Es importante comentar que podemos instalar diferentes interfaces siempre y cuando usemos un puerto diferente para cada uno, aquí Kiauh también nos ayuda.

Otra función muy interesante, en este caso de Mainsail, es que podemos usar el interfaz online y dar de alta nuestra impresora sin necesitar nada instalado aunque en ocasiones podemos perder alguna funcionalidad.

{% embed url="<http://my.mainsail.xyz>" %}

{% hint style="info" %}
Para permitir que [my.mainsail.xyz](http://my.mainsail.xyz/) acceda a nuestra instalación local tenemos que permitir en nuestro moonraker.conf añadiendo o revisando que tengamos el siguiente codigo:

```
[authorization]
cors_domains:
    https://my.mainsail.xyz
    http://my.mainsail.xyz
    http://*.local
trusted_clients:
 10.0.0.0/8
 127.0.0.0/8
 169.254.0.0/16
 172.16.0.0/12
 192.168.0.0/16
 FE80::/10
 ::1/128
```

{% endhint %}
{% endtab %}
{% endtabs %}

## Firmware Klipper manualmente

Una vez ya tenemos nuestro OS instalado y con Klipper, Moonraker y la interfaz que más nos guste instalada, es hora de pasar a crear nuestro firmware Klipper.

Ya que hemos Klipper este nos va a permitir de una forma muy sencilla a los diferentes pasos para realizar el proceso.

### Creando el firmware

{% tabs %}
{% tab title="Manualmente" %}
Para poder generar nuestro firmware Klipper manualmente:

* Nos aseguraremos que tenemos instala la utilidad make

```bash
sudo apt install make
```

* Una vez instalado make nos iremos a la carpeta klipper y lanzaremos el configurador para nuestro firmware

```bash
 cd ~/klipper
 make clean
 make menuconfig
```

* Configuraremos las opciones necesarias para nuestra electrónica, usando la tecla Q para salir del configurador y Y para guardar los cambios. Ej. SKR Mini E3 v3 aunque más abajo tenéis más ejemplos

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

* Una vez ya tenemos la configuración de nuestra electrónica lista lanzaremos el proceso make para que se compile nuestro firmware:

```bash
make
```

* Aplicaremos el firmware creado dependiendo de nuestra electrónica. En electrónicas modernas de 32b se suele copiar el firmware generado (por ejemplo con Filezilla y generando una conexión SFTP) .../out/klipper.bin a nuestro ordenador y de ahí a la SD con el nombre que sea necesario para nuestra electronica... para electrónicas SKR suele ser firmware.bin y para ver que se aplicó correctamente debería de cambiar a firmware.cur.

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

{% hint style="info" %}
En determinados casos podremos actualizar la electrónica directamente por USB/USART:

Lanzaremos el comando ls para listar nuestra electrónica:

***ls /dev/serial/by-id/\****

Deberiamos obtener algo como...

***/dev/serial/by-id/usb-1a86\_USB2.0-Serial-if00-port0***

Y utilizaremos ese identificador serial o serial ID para lanzar el comando flash:

***sudo service klipper stop***

***make flash FLASH\_DEVICE=/dev/serial/by-id/usb-1a86\_USB2.0-Serial-if00-port0***

***sudo service klipper start***
{% endhint %}
{% endtab %}

{% tab title="Kiauh" %}
Accederemos a **Kiauh** desde SSH

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

Elegiremos la opción más adecuada para nuestra placa ya que en ocasiones nos interesará solamente hacer el Build del firmware para después extraerlo, Flash to aplicarlo a nuestra placa si es compatible con el proceso o Build + Flash que realizaría todo el proceso.

{% hint style="warning" %}
**IMPORTANTE!!!**\
**En el caso de realizar el proceso Build + Flash tenemos que tener en cuenta el método de actualización de nuestra electrónica ya que Kiauh no es siempre compatible o puede dar problemas.**
{% endhint %}
{% endtab %}

{% tab title="Bundle Klipper 3Dwork" %}
Disponemos de un bundle de Klipper creado por nosotros y basado en RatOS para que el acceso a macros avanzadas y a configuraciones custom sea más sencillo.

Dentro de estas funciones se dispone de unas macros que permiten compilar firmware Klipper para las electrónicas soportadas de uns forma sencilla.

Si quieres más información la tienes en el [siguiente enlace](https://klipper.3dwork.io/mejoras/3dwork-klipper-bundle#macros-de-configuracion-de-maquina).
{% endtab %}

{% tab title="Creality Sonic Pad" %}
{% hint style="warning" %}
**El Creality Sonic Pad fue descontinuado por Creality en 2024 y ya no tiene soporte oficial activo. No lo recomendamos para nuevas instalaciones. Si ya dispones de uno, aquí tienes cómo generar firmware desde él.**
{% endhint %}

Aunque no es un dispositivo que solamos aconsejar, te invitamos a [leer esta información](https://klipper.3dwork.io/troubleshooting#creality-sonic-pad) que te puede ser interesante, os vamos a dar unas indicaciones para poder generar el firmware Klipper desde este dispositivo para poder añadir impresoras no soportadas por defecto.

**Herramientas:**

* Cliente SSH siempre aconsejamos [**Terminus**](https://termius.com/download/) por ser multiplataforma, sencillo y no tiene coste para el uso de administrar tus máquinas con Klipper. También dispones de otras como [**Putty**](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html).\
  Tenéis más información sobre [qué es SSH aquí](https://klipper.3dwork.io/empezamos/puesta-en-marcha-inicial#conexion-a-ssh).
* Utilidad sFTP para transferir ficheros desde la Sonic Pad, os aconsejamos [WinSCP](https://winscp.net/eng/download.php) o [Cyberduck](https://cyberduck.io/)
* Acceso root a la Sonic Pad... dentro de los menús de esta... `Setup > Advanced Options > Root Access`

**Pasos a seguir:**

* Abriremos nuestro cliente SSH (PuTTy) y pondremos la IP así como el nombre y usuario que obtuvimos en la Sonic Pad al activar el acceso root

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FlPXlrCBmlQj599Z1taEn%2Fimage.png?alt=media&#x26;token=0742490e-ee78-4cf0-8552-be125a4783ba" alt=""><figcaption></figcaption></figure>

* Escribiremos `cd /usr/share/klipper`

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FuJeUNgG5dpMJ4n1uzS6u%2Fimage.png?alt=media&#x26;token=e6103913-77ea-4bbc-af2e-f043abf6de8a" alt=""><figcaption></figcaption></figure>

* Lanzaremos el comando `make clean` para limpiar cualquier configuración previa.

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FhdQHElCm6tUh5PqjhoM9%2Fimage.png?alt=media&#x26;token=f8b82dc7-5017-453f-b857-60404e145716" alt=""><figcaption></figcaption></figure>

* Ahora un `make menuconfig`

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FpHCIH0btOnnmKww7bMzS%2Fimage.png?alt=media&#x26;token=831ee778-758c-4c68-83f5-c53944468815" alt=""><figcaption></figcaption></figure>

* Tendremos un menú donde tendremos que elegir las opciones para nuestra electrónica, normalmente encontramos los parámetros básicos en los cfg de ejemplo que tenemos en el [repositorio de Klipper en Github](https://github.com/Klipper3d/klipper/tree/master/config), en la parte inicial de los mismos

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FqXGvu70AuPbq7cMvRnhH%2Fimage.png?alt=media&#x26;token=471ee72b-743a-4ece-a225-2449eb436928" alt=""><figcaption></figcaption></figure>

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2F4SEftU2KJX49uVhpJQgq%2Fimage.png?alt=media&#x26;token=08fa8fe6-1567-4424-a98f-6f340eb6d3c2" alt=""><figcaption><p>Las opciones y nombres de la captura pueden variar dependiendo de la versión de firmware</p></figcaption></figure>

* Una vez tengamos las opciones pulsaremos `Q` para salir y `Y` para guardar los cambios
* Ejecutaremos el comando `make`

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FkWLeufLRESBjAnq3KJrV%2Fimage.png?alt=media&#x26;token=ebf385d7-0b08-47d7-846e-ebaff0018155" alt=""><figcaption></figcaption></figure>

* Esperaremos unos minutos a que el firmware se acabe de generar, este quedará dentro del directorio/path `/out/klipper.bin`... la extensión puede depender del modelo de electrónica que hayamos seleccionado

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2F8zMq1XiBzPReYr2LyPxa%2Fimage.png?alt=media&#x26;token=4b647dd8-87b5-46ac-ae66-f73c8009daea" alt=""><figcaption></figcaption></figure>

* Ahora con el firmware Klipper creado y con el cliente sFTP, WinSCP por ejemplo, utilizando la IP y el usuario/contraseña que usamos para entrar en nuestra Sonic Pad por SSH nos conectaremos a esta e iremos al directorio/path `/usr/share/klipper/out/` y descargaremos el firmware a nuestro ordenador
* Seguiremos las instrucciones del fabricante de nuestra electrónica para aplicar el firmware a ella.
  * en electrónicas de 32b normalmente renombraremos el firmware de klipper.bin a firmware.bin, algunas electrónicas pueden requerir otro nombre o que este no coincida con el último aplicado, colocaremos el fichero en una microSD (con formato FAT32/4096 e idealmente <2GB) y reiniciaremos la electrónica
  * en electrónicas de 8b normalmente aplicaremos por USB el firmware desde un laminador como PrusaSlicer o Cura
* Si se aplicó todo correctamente podremos pasar al paso siguiente, [verificar la conexión](#verificando-la-conexion) entre nuestra Sonic Pad y nuestra electrónica/MCU
* Recuerda que para añadir impresoras de terceros has de poner el nuevo printer.cfg en un USB (con formato FAT32/4096) en el conector USB2 (abajo izquierda) y la impresora conectada en el USB1 ajustando el printer.cfg
  {% endtab %}
  {% endtabs %}

Os facilitamos la configuración para las electrónicas que hemos probado:

{% tabs %}
{% tab title="Generales Klipper" %}
Desde el [repositorio de Klipper](https://github.com/Klipper3d/klipper/tree/master/config) podéis encontrar muchos ejemplos para diferentes electrónicas.
{% endtab %}

{% tab title="SKR" %}

#### SKR Octopus PRO

Elegiremos las siguientes opciones dependiendo del procesador/version de nuestra Octopus:

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

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

#### SKR MINI E3 V3

Elegiremos las siguientes opciones dependiendo del procesador/version de nuestra Mini E3 v3:

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

Una vez tengamos todas las opciones ajustadas pulsaremos ***q*** para salir y "***Yes***" para almacenar la configuración, si lanzamos el proceso desde Kiauh nos realizará directamente el comando ***make***.

Una vez terminado el compilado del firmware podremos encontrar el binario ***klipper.bin*** en el directorio ***/home/pi/klipper/out*** el cual podremos aplicar directamente por DFU o usando la SD tal como tenemos en [**nuestra guía**](https://klipper.3dwork.io/klipper/broken-reference).
{% endtab %}

{% tab title="FYSETC" %}
Elegiremos las siguientes opciones dependiendo del procesador/version de nuestra Spider:

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

{% hint style="info" %}
**Si tu Spider es posterior al 23/6/2021 elige como Bootloader offset 32KiB bootloader.**

**Si tu Spider es anterior al 23/6/2021 elige como Bootloader offset 64KiB bootloader.**
{% endhint %}

Una vez tengamos todas las opciones ajustadas pulsaremos ***q*** para salir y "***Yes***" para almacenar la configuracion, si lanzamos el proceso desde Kiauh nos realizará directamente el comando ***make***.

Una vez terminado el compilado del firmware podremos encontrar el binario ***klipper.bin*** en el directorio ***/home/pi/klipper/out*** el cual podremos aplicar directamente por DFU o usando la SD tal como tenemos en [**nuestra guía**](https://klipper.3dwork.io/klipper/broken-reference).
{% endtab %}

{% tab title="MKS" %}
MKS cuenta con un repositorio de ejemplos para Klipper que es de agradecer. Podéis encontrarlos en el siguiente [link](https://github.com/makerbase-mks/Klipper-for-MKS-Boards).
{% endtab %}
{% endtabs %}

{% hint style="success" %}
3Dwork Klipper Bundle:

Desde 3Dwork mantenemos un[ **bundle para Klipper**](https://klipper.3dwork.io/klipper/mejoras/3dwork-klipper-bundle) que incluye macros, configuraciones de máquinas, etc... entre ellas damos soporte a diferentes electrónicas que utilizando una [macro podemos compilar](https://klipper.3dwork.io/mejoras/3dwork-klipper-bundle#impresoras-y-electronicas) nuestro firmware Klipper de una forma totalmente automatizada y sencilla.
{% endhint %}

## Firmware Klipper pre-generado desde Auto Builder 3Dwork

También contamos con un sistema de auto builder de firmware Klipper basado en nuestro bundle que compila, para las electrónicas soportadas, para diferentes electrónicas de forma diaria.

{% hint style="danger" %} <mark style="color:red;">**EL USO DE ESTOS FIRMWARE KLIPPER PRE-GENERADOS SON BAJO VUESTRA PROPIA RESPONSABILIDAD!!!**</mark>\ <mark style="color:red;">**Siempre aconsejamos que cada usuario cree por si mismo su firmware desde su host Klipper.**</mark>
{% endhint %}

Del siguiente listado haremos click en nuestra electrónica y nos descargaremos el firmware Klipper compilado a aplicar en nuestra electrónica siguiendo las instrucciones del fabricante!!!

<figure><img src="https://276162026-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FH6gCE2fgkkpOScJ72TP7%2Fuploads%2FjY5GhfxJUmgLysxG17ix%2Fimage.png?alt=media&#x26;token=36d34d73-6016-4f93-b32c-afde779bd102" alt=""><figcaption></figcaption></figure>

{% embed url="<https://gist.github.com/alienboyxp/ee10a0c32420ef6c082c1344a51059f3>" %}

## Katapult — Actualización de firmware sin SD

**Katapult** (antes CanBoot) es un bootloader para microcontroladores que permite actualizar el firmware Klipper directamente desde el host **sin necesidad de extraer la SD ni usar DFU**. Es especialmente útil para electrónicas con conexión CAN bus o USB.

{% hint style="success" %}
Katapult es el método recomendado para mantener actualizado el firmware en electrónicas modernas BTT, Mellow y similares. Una vez instalado, basta con ejecutar un script desde el host para actualizar.
{% endhint %}

### ¿Cuándo usar Katapult?

* Electrónicas conectadas por **CAN bus** (EBB, U2C, etc.) — es prácticamente obligatorio
* Cualquier electrónica donde quieras evitar sacar la SD para cada actualización
* Setups con múltiples MCUs (placa principal + cabezal CAN)

### Instalación básica

```bash
cd ~
git clone https://github.com/Arksine/katapult
cd katapult
make menuconfig   # configura para tu MCU específica
make
```

Después de compilar, el bootloader se aplica por DFU una única vez. Las actualizaciones posteriores se hacen desde el host:

```bash
python3 ~/katapult/scripts/flashtool.py -i can0 -u <uuid> -f ~/klipper/out/klipper.bin
```

{% hint style="info" %}
Consulta la [documentación oficial de Katapult](https://github.com/Arksine/katapult) y las guías específicas de tu electrónica para los parámetros correctos de `menuconfig`. Los ajustes varían según el modelo y la frecuencia del cristal.
{% endhint %}

## Verificando la conexión

Ahora que tenemos nuestro firmware Klipper en nuestra electrónica procederemos a verificar que tenemos comunicación con ella, un paso previo y necesario antes de continuar con la configuración de Klipper.

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

Elegiremos el tipo de conexión entre nuestra electrónica y la Pi, normalmente y aconsejable USB:

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

{% hint style="info" %}
**En el caso que usemos Klipper por los pines GPIO deberemos habilitar la comunicación serial en nuestra pi, para simplificar el proceso teneis aqui unos comandos para que sea más sencillo:**

**sudo raspi-config nonint do\_serial 2**

**echo dtoverlay=pi3-disable-bt | sudo tee -a /boot/config.txt**

**sudo reboot**
{% endhint %}

En el caso que no detecte nuestra electrónica deberemos verificar el proceso de aplicar el firmware Klipper o el cableado:

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

En el este correcto nos listará un dispositivo, es importante anotarse este ya que lo necesitaremos más adelante:

![Deberemos copiar lo marcado para usarlo en los ficheros de configuración de Klipper](https://content.gitbook.com/content/H6gCE2fgkkpOScJ72TP7/blobs/doV7PrklaMgf0jkuD0RE/image.png)

{% hint style="info" %}
En el caso que no realicemos el proceso desde Kiauh podemos usar el comando ***ls /dev/serial/by-id*** para listar los dispositivos conectados.
{% endhint %}

{% hint style="info" %}
**Conexión por CAN bus**: Si tu electrónica usa CAN en lugar de USB, el dispositivo no aparecerá en `/dev/serial/by-id`. Para verificar la conexión CAN:

```bash
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
```

Esto listará los UUIDs de todos los dispositivos CAN detectados en la red. Apunta el UUID de tu electrónica, lo necesitarás en la sección `[mcu]` de `printer.cfg`:

```ini
[mcu]
canbus_uuid: XXXXXXXXXXXXXXXX
```

{% endhint %}
