With the increasing use of Klipper or Octoprint to provide our printers with new management functions, the use of SBCs such as Raspberry Pi affected the availability and price of this type of devices.
Bigtreetech with its CB1 has managed to cover that space of lack of devices. Using its CB1 modules in different products such as its Manta series of electronics, Pad of all-in-one screens and to compete directly in format with this Bigreetech Pi.
As always before continuing with the article, remind you that you can join 3DWork in our Telegram channel full of deranged by 3D printing, or in our social networks Facebook, Twitter, Instagram.
Bigtreetech Pi
As we have mentioned, the shortage of this type of devices as well as the growing use of Klipper for our printers was taken advantage of by Bigtreetech to offer an alternative with its CB1 that they integrated into different lines of their products.
To compete directly with Raspberry Pi they took out their Bigtreetech Pi that we can use as a replacement for these (it would be the equivalent of a Raspberry Pi 3 B) given its practically identical physical format.
Below we will review some of its technical specifications:
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 |
Something that will undoubtedly fall in love with some of us is that we can feed our Bigtreetech Pi both in the traditional way and from a dedicated connector to be able to use our printer source for it.
As always Bigtreetech includes everything you need for the start-up of our Bigtreetech Pi… and how could not miss our favorite duckling!!
También os facilitamos algunos esquemas:
We already told you previously that this Bigtreetech Pi would be the equivalent of a Raspberry Pi 3 B, mounting this an Allwinner H616 MCU with four Cortex-A53 cores at 1.5GHz which on paper gives us about 300Mhz more than the Raspberry Pi 3 B. Continuing with the comparisons, the Bigtreetech Pi mounts the same Cortex-A53 cores but in this case at 1.5GHz and mounting twice the RAM than the Raspberry Pi Zero 2 W.
Expansion/Enhancements
We also have the typical GPIO pins, in the previous schematics section you can find the pin diagram, to be able to manage sensors and other devices although it must be clarified that these GPIO pins are not directly compatible with those of Raspberry. In any case, they are accessible from the system or usually from Klipper when mounting our Bigtreetech Pi as a second MCU.
In addition, we have multiple specific expansion connectors:
Bigtreetech Pi has a connector for the use of an accelerometer in Klipper that allows us, in a simple and precise way, our Input Shaper.
In the event that we want to use an accelerometer of this type, we must follow the following steps:
- we will edit our /boot/BoardEnv file using SSH.txt :
sudo nano /boot/BoardEnv.txt
- within the BoardEnv.txt we will uncomment the following line
overlays=spidev0_0
that will enable us the SPI channel necessary for communication with our accelerometer. And press CTRL + X and Y to save the changes:
- We will restart our Bigtreetech Pi
reboot
- Once our Bigtreetech Pi is restarted, and from the web interface, we will update our printer.cfg (or the include that we need in case you have a modular installation) to define our accelerometer:
[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
Now it only remains to follow the Input Shaper process to use our accelerometer.
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
Commissioning
Now that we know our Bigtreetech Pi in depth and what it can offer us, it’s time to get down to work to start our Bigtreetech Pi.
Although we can use our Bigtreetech Pi in virtually any application where we would use a Raspberry Pi we are going to focus on the use with our printers, specifically using Klipper.
Once we have downloaded the Klipper distribution that we like the most, we will use Raspberry Pi Imager or balenaEtcher to transfer the Klipper image to our SD card. A card of at least 16-32Gb is advisable.
For this guide we will use RatOS which is the Klipper distribution that we usually use. The steps are very simple, once we have opened Raspberry Pi Imager, we will select Use custom and choose our image to apply in our SD,
After the process and from the explorer of our computer we will access our SD where we will have a partition called BOOT.
In this we will find a system file.cfg where we will adjust our WiFi configuration where we will adjust our WIFI_SSID and WIFI_PASSWD to the data of our network:
Once we have these settings we will only have to introduce the SD in our Bigtreetech Pi and turn it on!
Configuring Klipper
If everything has gone correctly in a few minutes we will have our Bigtreetech Pi available in our network.
To start with the configuration we will connect to the web interface (Mainsail) from our web browser using http://btt-cb1.local or if we customize this name during the configuration we will use the custom one.
In order to find the IP of our Bigtreetech Pi we can use Fing which is a multiplatform application that will scan us and list all the devices in our network. It should appear with the hostname btt-cb1 or the one defined in our system.cfg above.
Once our IP is identified, we will go to our browser and use it to access the Klipper web interface… We advise you that the first thing to do is an update of all Klipper components:
As a first step we are going to connect to our Bigtreetech Pi using SSH, in our case we use Terminus as an SSH client because it is cross-platform, free, quite simple and intuitive.
Once we connect and control access by SSH it is usually advisable to install Kiauh.
Kiauh is something like a Swiss key for Klipper since it contains some functions that can be useful in certain circumstances, for example when some functions or modules of Klipper do not work properly, or simply for installation of certain extra modules in a simple way. To install Kiauh:
sudo apt-get update && sudo apt-get install git -y
cd ~ && git clone https://github.com/th33xitus/kiauh.git
Once Kiauh is installed we will launch it with:
./kiauh/kiauh.sh
From the console we will have some menus to be able to see that we have installed and managed installations, updates, eliminated Klipper modules as well as advanced special options.
Returning to the web interface we only have to create and apply the Klipper firmware to our MCU (electronics) and find our serialID, you have information about these steps here.
Once we have applied the firmware to our MCU and with the communication serialID we only have to generate and adjust our Klipper machine configuration, connection, and macros that we want to use.
If everything goes well, our Bigtreetech Pi will be able to connect to our MCU and our screen will show a control interface of this!!
We advise you to follow the steps described in our Klipper configuration guides, some of which you can launch from the screen options themselves, we advise you to follow the configuration guides in order to make sure we leave everything perfect.
Control multiple printers
As we have already mentioned on many occasions, Klipper is an extremely versatile system that together as a host like our Bigtreetech Pi can allow us to control several printers simultaneously.
We already explained this topic in our guide to the Bigtreetech Pad 7 where you have the details of the process.
Adjustments of our slicer with Klipper
Klipper is an incredibly flexible and powerful 3D printer firmware as we have seen, an important aspect is its integration and configuration of our slicer.
An important aspect is to make sure that our slicer generates the slice or g-code (G-code flavor) valid for it to be interpreted by Klipper. Today slicers such as PrusaSlicer/SuperSlicer and Bambu Studio/OrcaSlicer support the generation of the g-code for Klipper for which they are usually the most advisable.
Other slicers can be used without problem, since Klipper can process g-codes generated for Marlin or Smoothiware, but may need certain adjustments to avoid including g-codes that are not supported by Klipper. Similarly, generating g-code for other systems can cause similar problems, for example, selecting Marlin2.
In this case, it is advisable to review the configuration of our slicer and select to generate the laminate in Klipper, Marlin, or Smoothiware format… in this order ideally.
Another important aspect is to adjust our start and end of print g-codes, at least, for the use of Klipper macros instead of the traditional and limited g-codes. You can find more information and details in the Klipper configuration guide in laminators. By way of example:
The use of macros in Klipper will allow us to raise the control and customization of our machines to incredible levels.
Another great improvement is that we can upload our g-codes directly from the laminator, something that is very comfortable. Moonraker emulates the Octoprint API, something very useful to make it compatible with any tool that uses Octoprint
Déjanos un comentario