# Klipper en Raspberry Pad 5

La **Raspberry Pad 5** de **Bigtreetech** parece a simple vista una pantalla táctil de 5 pulgadas... nada más lejos de la realidad.

## Raspberry Pad 5

{% embed url="<https://youtu.be/0glRpsoWSQI>" %}

Por la parte trasera vemos que cuenta con un módulo **Raspberry Pi Compute Module 4**, o CM4 de aquí adelante, que **permite conectar directamente módulos MCU con formato CM4**. Además, también contamos con un arsenal de conexiones como puerto **HDMI con soporte 2K**, un **GPIO**, puerto **USB-C**, conectores **USB 2.0**, interfaz **CSI** e incluso un conector Ethernet **RJ-45** para conexión a nuestras redes por cable.

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

{% hint style="warning" %}
**La Raspberry Pad 5 no incluye el módulo CM4 el cual ha de comprarse aparte.**

**El módulo CB1 de Bigreetech, equivalente a CM4, no es compatible en este caso con la Raspberry Pad 5.**

**Tampoco lleva incluída la batería RTC (Real Time Clock) de 3v CR1200.**
{% endhint %}

En cuanto a la parte gráfica de la pantalla, **contamos con un panel IPS con hasta cinco capturas de pulsaciones simultáneas** y una **resolución de 800x480 píxeles**. También es de agradecer disponer de tres pulsadores para controlar el brillo y el giro de la pantalla.

La **Raspberry Pad 5** puede ser aliado para muchos de vuestros proyectos. En nuestro caso nos vamos a centrar en su uso como host **Klipper** para nuestras impresoras.

Anteriormente os hemos contado que la **Raspberry Pad 5** cuenta con un conector para la conexión de un módulo **CM4**, pero… que es exactamente un **CM4**?

Básicamente, un módulo **CM4** es una pequeña placa que incorpora un **ARM Cortex-A72**, el mismo usado por una Raspberry Pi 4. Estos módulos están fabricados para, como en nuestro caso con la **Raspberry Pad 5**, otra controladora que le facilite interfaces o funciones como USB, salidas de video, etc.

Teniendo en cuenta las limitaciones y precio de **Raspberry Pi**, el empleo de estos módulos **CM4** junto con nuestra **Raspberry Pad 5** nos va a permitir tener, para nuestro caso, un host **Klipper** potente gracias al **CM4** y capaz en opciones gracias a la parte **Raspberry Pad 5** de conexiones y pantalla.

## Preparando nuestra Raspberry Pad 5

Ahora que tenemos toda la información de nuestra **Raspberry Pad 5** es hora de comenzar a prepararla para instalar **Klipper**.

El primer paso a realizar es la instalación del módulo **CM4** el cual, junto con los tornillos suministrados, anclaremos en el zócalo **CM4** de nuestra **Raspberry Pad 5**.

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

{% hint style="warning" %}
**IMPORTANTE!!**

**el módulo CM4 ha de ser instalado correctamente, tal como vemos en la imagen antrior la serigrafía Made in UK tiene que quedar en el lado de los conectores USB del Pad 5.**
{% endhint %}

Siguiendo con el módulo **CM4** es importante identificar que tipo de módulo vamos a usar, básicamente tenemos 4 combinaciones con diferentes configuraciones.

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

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

Por un lado tenemos que identificar si nuestro **CM4** es la **versión con eMMC o Lite**, ya que va a afectar en la forma de instalar nuestro **Klipper**.

## Instalando Klipper

A continuación os detallamos el proceso para instalar Klipper tanto en módulos CM4 Lite como en módulos con eMMC. En nuestro caso utilizamos nuestra distribución favorita MainsailOS.

### Para módulos CM4 Lite (sin eMMC)

Si nuestro módulo es un CM4 Lite, sin eMMC, deberemos instalar nuestra imagen de MainsailOS usando nuestra SD:

* Insertaremos nuestra SD en nuestro ordenador, os aconsejamos una SD de al menos 16Gb-32Gb y que tenga una velocidad de lecturas/escrituras lo mejor posible para una mejor experiencia.
* Abriremos nuestro **Raspberry Pi Imager**, si no lo tenéis instalados podéis descargarlo desde [aquí](https://www.raspberrypi.com/software/)
* El primer paso será seleccionar el OS a instalar donde elegiremos **Other specific-purpose Os -> 3D printing -> MainsailOS** y seleccionaremos la versión que mejor se adapte a nuestras necesidades:

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

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

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

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

* Una vez seleccionado nuestro OS el siguiente paso será **escoger nuestra unidad SD**
* Antes de proceder a aplicar la imagen del OS a nuestra SD, y para ahorraros pasos posteriormente, **os aconsejamos ajustar las opciones avanzadas como habilitar SSH o configuración WiFi usando el icono del engranaje**

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

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

* Con todo bien ajustado procederemos a escribir en nuestra SD MainsailOS

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

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

* Una vez finalizado el proceso insertaremos la SD en el zócalo de nuestra Raspberry Pad 5

{% hint style="info" %}
La Raspberry Pad 5 cuenta con 3 leds para los diagnósticos del sistema que nos pueden a ayudar a identificar problemas:

* ROJO, nos indica el estado de la alimentación
* AZUL, muestra que nuestro módulo CM4 está alimentado
* VERDE, el OS de nuestro módulo CM4 está ejecutándose
  {% endhint %}

En el caso que falle el proceso de configuración WiFi podemos volver a poner la SD en nuestro ordenador y ajustar el fichero wpa\_supplicant... a continuación tenéis un generador de configuraciones para verificar que lo hacéis de forma correcta.

{% embed url="<https://codepen.io/LilTrublMakr/full/yRGPrv>" %}

### Para módulos CM4 eMMC

En el caso que nuestro módulo **CM4** cuente con eMMC deberemos de realizar la instalación de una forma diferente a la anterior siguiendo estos pasos:

{% hint style="warning" %}
Instalar el OS para Klipper en la SD no nos va a funcionar si nuestro módulo CM4 cuenta con eMMC.
{% endhint %}

* Descargaremos Raspberry Pi Imager
* También la utilidad **RPIboot** ([Windows](https://github.com/raspberrypi/usbboot/blob/master/win32/rpiboot_setup.exe)/[Mac\&Linux](https://github.com/raspberrypi/usbboot#building)) de Raspberry

{% hint style="info" %}
Si usamos Mac o Linux va a ser un poco más laborioso el usar RPIboot ya que tendremos que compilarla, desde el link anterior para las versiones [Mac\&Linux](https://github.com/raspberrypi/usbboot#building) tenemos más detallados los pasos:

* En el caso de Linux y desde su terminal:

```bash
sudo apt install git libusb-1.0-0-dev pkg-config
git clone --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
make
sudo ./rpiboot
```

* En el caso de Mac

```bash
git clone --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
brew install libusb
brew install pkg-config
make
sudo ./rpiboot
```

{% endhint %}

* Ajustaremos los **switches USBOTG y el BOOT en las posiciones tal como veis en la siguiente imagen** para **entrar en modo BOOT nuestro módulo CM4**:

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

* **Lanzaremos RPIboot** y **conectaremos nuestra Raspberry Pad 5 mediante USB C**. Si todo ha ido correctamente nos **montará nuestro módulo CM4 como una unidad de nuestro ordenador**
* Abriremos **Raspberry Pi Imager** y realizaremos el mismo proceso para aplicar la imagen en la SD pero en este caso elegimos nuestra **Raspberry Pad 5**
* Una vez finalizado el proceso de instalación **desconectaremos el cable USB C a nuestra Raspberry Pad 5**
* Cambiaremos los **switches USBOTG y el BOOT en las posiciones originales**

## **Ajustes MainsailOS**

{% hint style="warning" %}
IMPORTANTE!!!

Nos hemos de asegurar que a partir de este paso nuestra Raspberry Pad 5 está conectada a una fuente de alimentación correcta porque podemos encontrarnos con problemas relacionados como lentitud, reinicios o falta de conectividad WiFi.
{% endhint %}

* **Conectaremos de nuevo el cable USB C de carga** y usaremos nuestra aplicación [**Fing**](https://www.fing.com/) desde nuestro teléfono, o cualquier otra que nos permita encontrar los equipos conectados en nuestra red, para detectar la IP asignada a nuestra **Raspberry Pad 5** y poder conectarnos por SSH
* Lo primero será instalar los drivers necesarios para que funcione la pantalla:

```bash
sudo wget https://datasheets.raspberrypi.com/cmio/dt-blob-disp1-cam1.bin -O /boot/dt-blob.bin
```

{% hint style="warning" %}
En el caso que queramos volver a usar la conexión HDMI deberemos eliminar el fichero /boot/dt-blob.bin
{% endhint %}

* Nuestra **Raspberry Pad 5 viene equipada con un hub USB 2.0 pero por defecto el OS de los módulos CM4 puede llevarlo desactivado**. Para habilitarlo pondremos en modo BOOT nuestro módulo CM4 como realizamos previamente o colocaremos la SD en nuestro ordenador para editar el fichero config.txt añadiendo al final:

{% code title="config.txt" %}

```bash
dtoverlay=dwc2,dr_mode=host
```

{% endcode %}

* **Instalaremos KlipperScreen** desde nuestro terminal SSH si no lo lleva nuestra distribución de MainsailOS

```bash
cd ~/
git clone https://github.com/jordanruthe/KlipperScreen.git
cd ~/KlipperScreen
./scripts/KlipperScreen-install.sh
```

{% hint style="success" %}
Os aconsejamos añadir esta sección al final de vuestro moonraker.conf:

```django
[update_manager KlipperScreen]
type: git_repo
path: ~/KlipperScreen
origin: https://github.com/jordanruthe/KlipperScreen.git
env: ~/.KlipperScreen-env/bin/python
requirements: scripts/KlipperScreen-requirements.txt
install_script: scripts/KlipperScreen-install.sh
managed_services: KlipperScreen
```

{% endhint %}

Si todo ha ido bien ya podremos acceder al interfaz web de Klipper desde nuestro navegador desde cualquier dispositivo de tu red y acceso mediante KlipperScreen usando vuestra pantalla.

Los siguientes pasos será crear tu printer.cfg, crear y aplicar el firmware Klipper a tu electrónica si no lo tiene todavía y encontrar el serial\_ide para nuestro printer.cfg.


---

# 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://klipper.3dwork.io/klipper/instalacion/klipper-en-raspberry-pad-5.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.
