Con el creciente uso de Klipper o Octoprint para dotar a nuestras impresoras de nuevas funciones de gestión, el uso de SBCs como Raspberry Pi afectó a la disponibilidad y precio de este tipo dispositivos.
Bigtreetech con su CB1 ha logrado cubrir ese espacio de falta de dispositivos. Utilizando sus módulos CB1 en diferentes productos como su serie Manta de electrónicas, Pad de pantallas todo en uno y para competir directamente en formato con esta Bigreetech Pi.
Como siempre antes de seguir con el artículo, recordarte que puedes unirte a 3DWork en nuestro canal de Telegram lleno de trastornados por la impresión 3D, o en nuestras redes sociales Facebook, Twitter, Instagram.
Bigtreetech Pi
Tal como hemos comentado, la escasez de este tipo de dispositivos así como la creciente utilización de Klipper para nuestras impresoras fue aprovechado por Bigtreetech para ofrecer una alternativa con su CB1 que integraron en diferentes líneas de sus productos.
Para competir directamente con Raspberry Pi sacaron su Bigtreetech Pi que podemos usar como un reemplazo de estas (sería el equivalente a una Raspberry Pi 3 B) dado su formato físico prácticamente idéntico.
A continuación vamos a revisar algunas de sus especificaciones técnicas:
CPU | Allwinner H616, Quad-Core Cortex-A53 @1.5GHz |
GPU | Mali G31 MP2, OpenGL 3.2 |
RAM | 1GB DDR3 SDRAM |
COMs | Fast Ethernet 100Mbps WiFi 2.4G/802.11 b/g/n USB2.0x4 USB Type-Cx1 ADXL345 Accelerometer (* ADXL345 sensor not included) Port USB/CAN (* require USB adapter not included) IR Receiver |
Audio | 3.5mm jack, HDMI |
Video | HDMIx1: HDMI 2.0A, 4K SPI Display Port |
GPIO | 40-pin GPIO |
Power | DC 5V/2A from USB Type-C DC 12/24V from Power connector |
Algo que sin duda nos va a enamorar a algunos es que podamos alimentar nuestra Bigtreetech Pi tanto de la forma tradicional como desde un conector dedicado para poder utilizar nuestra fuente de impresora para ello.
Como siempre Bigtreetech incluye todo lo necesario para la puesta en marcha de nuestra Bigtreetech Pi… y como no podría faltar nuestro patito preferido!!!
También os facilitamos algunos esquemas:
Ya os comentamos anteriormente que esta Bigtreetech Pi sería el equivalente a una Raspberry Pi 3 B, montando esta una MCU Allwinner H616 con cuatro cores Cortex-A53 a 1.5GHz lo que sobre el papel nos da unos 300Mhz más que la Raspberry Pi 3 B. Siguiendo con las comparativas, la Bigtreetech Pi monta los mismos cores Cortex-A53 pero en este caso a 1.5GHz y montando el doble de RAM que la Raspberry Pi Zero 2 W.
Expansión/Mejoras
También disponemos de los típicos pines GPIO, en la sección de esquemas anterior podéis encontrar el diagrama de pines, para poder gestionar sensores y otros dispositivos aunque hay que aclarar que estos pines GPIO no son directamente compatibles con los de Raspberry. En cualquier caso son accesibles desde el sistema o normalmente desde Klipper al montar nuestra Bigtreetech Pi como segunda MCU.
Además, contamos con múltiples conectores de expansión específicos:
Bigtreetech Pi dispone de un conector para el uso de un acelerómetro en Klipper que nos permita, de una forma sencilla y precisa, nuestro Input Shaper.
En el caso de que queramos usar un acelómetro de este tipo deberemos de seguir los siguientes pasos:
- editaremos mediante SSH nuestro fichero /boot/BoardEnv.txt :
sudo nano /boot/BoardEnv.txt
- dentro del BoardEnv.txt descomentaremos la siguiente línea
overlays=spidev0_0
que nos habilitará el canal SPI necesario para la comunicación con nuestro acelerómetro. Y pulsaremos CTRL+X y Y para guardar los cambios:
- Reiniciaremos nuestra Bigtreetech Pi
reboot
- Una vez reiniciada nuestra Bigtreetech Pi, y desde el interfaz web, actualiaremos nuestro printer.cfg (o el include que necesitemos en caso que tengas una instalación modular) para definir nuestro acelerómetro:
[adxl345]
cs_pin: host:gpio67
spi_bus: spidev0.0
axes_map: x,y,z
[resonance_tester]
accel_chip: adxl345
accel_per_hz: 70
probe_points: 117.5,117.5,10
Ahora solo queda seguir el proceso de Input Shaper para usar nuestro acelerómetro.
Bigtreetech Pi dispone también de un conector CANbus para la conexión a este bus de extensiones como toolheads.
El nombre del pin de control que podemos encontrar en el esquema anterior para controlar el ventilador de nuestra Bigtreetech Pi es el nombre que hace referencia al pin de su GPIO pero este no está expuesto en el conector.
Para calcular el pin GPIO correcto a utilizar en nuestro Klipper deberemos de utilizar la siguiente fórmula:
[(PG – PA)*32] + {Pin Number} = GPIO pin
Donde tenemos:
- Px es… PA=1, PB=2…PG=7
- Pin Number para PG19 = 19
Con lo que nos queda la siguiente fórmula y valor a utilizar:
[(7- 1)*32] + 19 = 211 GPIO pin
Con esto nos queda que deberemos usar en nuestro Klipper:
pin: host:gpio211
Ahora en nuestro printer.cfg o include, en el caso de usar una configuración modular, lo añadiremos de la siguiente forma:
Conexión a Bigtreetech Pi como segunda MCU
[mcu host]
serial: /tmp/klipper_host_mcu
Añadiendo la gestión de ventilador de la electrónica del host:
[temperature_fan bigtreetech_pi]
pin: host:gpio211
kick_start_time: 0.8
#shutdown_speed: 0
off_below: 0.1
max_power: 1.0
#fan_speed: 0.6
sensor_type: temperature_host
control: pid
min_temp: 0
max_temp: 85
#max_delta: 5.0
pid_kp: 1.0
pid_ki: 0.5
pid_kd: 2.0
min_speed: 0.1
max_speed: 0.6
target_temp: 38
Bigtreetech Pi dispone de un conector HDMI para la conexión de pantallas donde poder, por ejemplo, mostrar el interfaz KlipperScreen. Estas pantallas suelen requerir de la conexión USB para poder habilitar la parte táctil.
Por otro lado normalmente el sistema automáticamente detecta la resolución HDMI de nuestra pantalla pero en el caso que no sea así deberemos de ajustar el valor de extraargs=video
, en nuestro /boot/BoardEnv.txt, para indicar la resolución de nuestro dispositivo. Como ejemplo:
- BTT-HDMI7 resolution = 1024×600:
extraargs=video=HDMI-A-1:1024x600-24@60
- BTT-HDMI5 resolution = 800×480:
extraargs=video=HDMI-A-1:800x480-24@60
Bigtreetech Pi dispone también de un conector SPI para la conexión de pantallas de este tipo.
Dicho lo anterior y en el caso que queramos habilitar una pantalla SPI en nuestra Bigtreetech Pi habilitaremos overlays=tft35_spi
en nuestro /boot/BoardEnv.txt. Tendremos que tener en cuenta la siguiente información para nuestra configuración Klipper:
SPI1_CLK=PH6
SPI1_MISO=PH8
SPI1_MOSI=PH7
TFT35_SPI_CS=PC7
MCP2515_CS=PC11
MCP2515_IRQ=PC9
Puesta en marcha
Ahora que ya conocemos a fondo nuestra Bigtreetech Pi y lo que puede ofrecernos es hora de ponernos manos a la obra para poner en marcha nuestra Bigtreetech Pi.
Aunque podemos utilizar nuestra Bigtreetech Pi en prácticamente cualquier aplicación donde usaríamos una Raspberry Pi nosotros nos vamos a centrar en el uso con nuestras impresoras, en concreto usando Klipper.
Una vez descargada la distribución de Klipper que más nos guste, emplearemos Raspberry Pi Imager o balenaEtcher para transferir la imagen de Klipper a nuestra tarjeta SD. Es aconsejable una tarjeta de al menos 16-32Gb.
Para esta guía usaremos RatOS que es la distribución de Klipper que solemos usar normalmente. Los pasos son muy sencillos, una vez tengamos abierto Raspberry Pi Imager, seleccionaremos Use custom y elegiremos nuestra imagen a aplicar en nuestra SD,
Finalizado el proceso y desde el explorador de nuestro ordenador accederemos a nuestra SD donde tendremos una partición llamada BOOT.
En esta encontraremos un fichero system.cfg donde ajustaremos nuestra configuración WiFi donde ajustaremos nuestro WIFI_SSID y WIFI_PASSWD a los datos de nuestra red:
Una vez tengamos estos ajustes tan solo tendremos que introducir la SD en nuestra Bigtreetech Pi y encenderla!!
Configurando Klipper
Si todo ha ido correctamente en unos minutos ya tendremos disponible nuestra Bigtreetech Pi en nuestra red.
Para comenzar con la configuración nos conectaremos a la interfaz web (Mainsail) desde nuestro navegador web usando http://btt-cb1.local o si personalizamos durante la configuración este nombre usaremos el personalizado.
Para poder encontrar la IP de nuestra Bigtreetech Pi podemos usar Fing que es una aplicación multiplataforma que nos escaneará y listará todos los dispositivos de nuestra red. Debería aparecer con el nombre de host btt-cb1 o aquel definido en nuestro system.cfg anteriormente.
Una vez identificada nuestra IP iremos a nuestro navegador y la usaremos para acceder a la interfaz web de Klipper… os aconsejamos que lo primero a hacer sea una actualización de todos los componentes de Klipper:
Como primer paso vamos a conectarnos a nuestra Bigtreetech Pi usando SSH, en nuestro caso utilizamos Terminus como cliente SSH porque es multiplataforma, gratuito, bastante sencillo e intuitivo.
Una vez ya conectamos y controlamos el acceso por SSH suele ser aconsejable la instalación de Kiauh.
Kiauh es algo así como una llave suiza para Klipper ya que contiene algunas funciones que nos pueden ser útiles en determinadas circunstancias, por ejemplo cuando algunas funciones o módulos de Klipper no funcioan como es debido, o simplemente para instalación de determinados módulos extras de una forma sencilla. Para instalar Kiauh:
sudo apt-get update && sudo apt-get install git -y
cd ~ && git clone https://github.com/th33xitus/kiauh.git
Una vez instalado Kiauh lo lanzaremos con:
./kiauh/kiauh.sh
Desde la consola dispondremos de unos menús para poder ver que tenemos instalado y gestionar instalaciones, actualizaciones, eliminar módulos de Klipper además de opciones especiales avanzadas.
Volviendo a la interfaz web solo nos queda crear y aplicar el firmware Klipper a nuestra MCU (electrónica) y encontrar nuestro serialID, tenéis información de estos pasos aquí.
Una vez ya tenemos aplicado el firmware a nuestra MCU y con el serialID de comunicación solo nos queda generar y ajustar nuestra configuración de máquina de Klipper, conexión y macros que queramos utilizar.
Si todo ha ido bien, nuestra Bigtreetech Pi ya podrá conectar a nuestra MCU y nuestra pantalla mostrará una interfaz de control de esta!!!
Os aconsejamos seguir los pasos descritos en nuestras guías de configuración de Klipper, algunos de ellos podréis lanzarlos desde las propias opciones de la pantalla, os aconsejamos seguir por orden las guías de configuración para asegurarnos que dejamos todo perfecto.
Controlar varias impresoras
Como ya hemos comentado en muchas ocasiones, Klipper es un sistema extremadamente versátil que junto como un host como nuestra Bigtreetech Pi nos puede permitir controlar varias impresoras de forma simultánea.
Dado que ya explicamos este tema en nuestra guía de la Bigtreetech Pad 7 donde tenéis el detalle del proceso.
Ajustes de nuestro laminador con Klipper
Klipper es un firmware de impresoras 3D increíblemente flexible y potente como hemos visto, un aspecto importante es su integración y configuración de nuestro laminador.
Un aspecto importante es asegurarnos que nuestro laminador genera el laminado o g-code (G-code flavor) válido para que este sea interpretado por Klipper. A día de hoy laminadores como PrusaSlicer/SuperSlicer y Bambu Studio/OrcaSlicer soportan la generación del g-code para Klipper por los que suelen ser los más aconsejables.
Otros laminadores se pueden utilizar sin problema, dado que Klipper puede procesar g-codes generados para Marlin o Smoothiware, pero pueden necesitar de ciertos ajustes para evitar que se incluyan códigos g-code que no están soportados por Klipper. De igual forma generar g-code para otros sistemas puede ocasionar problemas similares, por ejemplo seleccionar Marlin2.
En este caso es aconsejable revisar la configuración de nuestro laminador y seleccionar que genere el laminado en formato Klipper, Marlin o Smoothiware… por este orden idealmente.
Otro aspecto importante es ajustar nuestros g-codes de inicio y fin de impresión, al menos, para el uso de macros de Klipper en lugar que los tradicionales y limitados g-codes. Podéis encontrar más información y detalles en la guía de configuración de Klipper en laminadores. A modo de ejemplo:
El uso de macros en Klipper nos va a permitir elevar el control y personalización de nuestras máquinas a niveles increíbles.
Otra gran mejora es que podemos subir nuestros g-codes directamente desde el laminador, algo que es muy cómodo. Moonraker emula la API de Octoprint, algo muy útil para hacerlo compatible con cualquier herramienta que use Octoprint
Me ha cenido de lujo por que ya estaba perdido.
Gracias por todo
Genial!!! es un buen SBC ya sea para Klipper, Octoprint u otros proyectos.