bigtreetech pi

Bigtreetech Pi : the π alternative

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

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.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FjQo6cLQqwuVFKyAtoUb9%2Fimage

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:

CPUAllwinner H616, Quad-Core Cortex-A53 @1.5GHz
GPUMali G31 MP2, OpenGL 3.2
COMsFast 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
Audio3.5mm jack, HDMI
VideoHDMIx1: HDMI 2.0A, 4K
SPI Display Port
PowerDC 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.

spaces%2F MTqLw6KI5FruaRNEMZD

As always Bigtreetech includes everything you need for the start-up of our Bigtreetech Pi… and how could not miss our favorite duckling!!

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FEHr1aGmmgdyjKrZlBctQ%2Fimage

También os facilitamos algunos esquemas:

image 1
image 2
image 3

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.


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.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FFmn2CQM1kQrwuKaBiCsH%2Fimage

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.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FRsFl7s0RsOeeFZEtXqzP%2Fimage


Although the Bigtreetech Pi has a connector for the use of this accelerometer it is important to clarify that it is not included in the kit and it is necessary to buy it separately

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:
spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FuIHcp6l6qRdCjjo4LsF4%2Fimage
  • We will restart our Bigtreetech Pi
  • 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:
cs_pin: host:gpio67
spi_bus: spidev0.0
axes_map: x,y,z
accel_chip: adxl345
accel_per_hz: 70
probe_points: 117.5,117.5,10

Bigtreetech Pi as second MCU:

Remember that in order to access the pins of the it is necessary that this as the second MCU in your Klipper configuration by performing the following process that you have in the link and add it to your Klipper configuration:

[mcu host]
serial: /tmp/klipper_host_mcu

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.

Puerto CANbus:

Aunque la Bigtreetech Pi dispone de un conector CAN es importante aclarar que requiere de un módulo USB que no viene incluído en el kit y es necesario comprarlo por separado

image 4
image 5


Aunque la Bigtreetech Pi dispone de un conector CAN es importante aclarar que requiere de un módulo USB que no viene incluído en el kit y es necesario comprarlo por separado

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.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FzR6T46fPiu02utGZvYQo%2Fimage

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.

NO es aconsejable habilitar una pantalla SPI cuando utilizamos CAN.

Los dispositivos CAN suele ser crítico el flujo de datos y en tiempo real por lo que al compartir el mismo bus entre pantalla SPI y CAN puede provocar problemas de rendimiento… algo crítico normalmente para dispositivos CAN.

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:

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FSpOVpqsNqye95kV1qiRD%2Fimage


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.

image 75

Speaking of Klipper we will not tire of indicating that Bigtreetech is a brand that actively supports Klipper since 2022.

For us as Klipper users we have to give value… first, because we make sure that by using Bigtreetech products we will have the best experience with Klipper… second, by supporting Bigtreetech’s products we are supporting the development and advancement of 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,

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2F45wssDcCpSEtGcLNMGX6%2Fimage
spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FSNph9COwk7mgHYL32RhC%2Fimage

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:

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FLJhqHC9BASv1F22HjuB5%2Fimage

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.

spaces%2F MTqLw6KI5FruaRNEMZD

What to check if we have network problems:

In the event that we do not find the IP we will connect the SD back to our computer and review the system file.cfg in search of any failure when adding our WiFi data.

In the case of using RatOS we have the advantage that our Bigtreetech Pi will mount a WiFi access point from where we can configure it. In this case we will connect to the access point called RatOS, Raspberry password, and from our browser we will connect to following the steps that the configuration wizard will indicate.

Remember that in the system itself.cfg mentioned above there is configuration for the access point in case you want to use the printer in locations without WiFi network.

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:

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FCpyeqRceuGR2nzBqIeR0%2Fimage

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.

SSH connection data:

As we mentioned we have two distributions to choose from for our Bigtreetech Pi and depending on the choice the user/password to connect may vary:

  • In the case of using the Bigtreetech image for CB1:
    • User: Biqu
    • Password: Biqu
  • If we use the RatOS image:
    • User: PI
    • Password: Raspberry

For security it is advisable to change the password, in any case, if we do not have our Bigtreetech Pi device exposed we can keep it at least initially until we know the system better.

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

Once Kiauh is installed we will launch it with:

image 76
Aspecto de Kiauh.

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.

How many printers can my Bigtreetech Pi support?

As we did with our Pad 7, in our tests we have controlled up to 3 printers simultaneously without major performance problems.

It is important to indicate that without using any webcam for image processing, and by the load of the system we believe that it could control 4 printers without that load of image processing

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.

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FRwlhTjD484Si6Q8zJ7OE%2Fimage
Example of G-code flavor configuration in OrcaSlicer

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:

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FLobq1EoY1y4ZXZcabTJb%2Fimage
Example of G-codes start and end in OrcaSlicer

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

spaces%2F MTqLw6KI5FruaRNEMZD 887967055%2Fuploads%2FvCVgiZX4hdYdJI7fNBh0%2Fimage
OrcaSlicer integration for sending g-codes directly from the rolling mill
3D enthusiasts