• Models
  • Contests
  • Slicer
  • Login
  • Start Here
    thingiverse-iconprintables-iconcults3d-iconmakerworld-iconmyminifactory-icon

    3D GO

    3D ModelsContestsCollectionsSaved ModelsOn a mobile device?

3D GO

Privacy Policy
BTT CB1 Customization 3D Printer File Image 1
BTT CB1 Customization 3D Printer File Thumbnail 1

BTT CB1 Customization

Yell avatarYell

October 5, 2025

printables-icon
DescriptionCommentsTags

Description

 

  

ko-fi.com/yell3d

 

2025 Update

Grab a new SDCard (a good one)

  • flash the 3.0.0 image MINIMAL 
  • https://github.com/bigtreetech/CB1 
  • see release right hand for download link
  • see bottom of the github for instructions
  • when configuring name your use “pi” to not deal with other stuff

install additional software

sudo apt install python3-serial

fix qlen

sed -i 's/ 1024/ 128/g' /etc/network/interfaces.d/can0

Install Kalico and the rest

cd ~ && git clone https://github.com/dw-0/kiauh.git
./kiauh/kiauh.sh
  3) Yes, remember my choice for next time 
  S) [Settings]
    1) Set Klipper source repository
      https://github.com/KalicoCrew/kalico
      main
      Y
      B
  1) [Install]
    1) [Klipper]
      ###### Number of Klipper instances to set up (default=1): 1
      ###### Create example printer.cfg? (Y/n): n
    2) [Moonraker]
      ###### Create example moonraker.conf? (Y/n): Y
    3) [Mainsail]
      ###### Download the recommended Mainsail-Config? (Y/n): y
      ###### Configure Mainsail for port (default=80): 80
    7) [KlipperScreen]
      Press enter for default (Yes)
      Backend Xserver or Wayland (cage)? [X/w]X
      Install NetworkManager for the network panel [Y/n]n
    8) [Crowsnest]
      Do you want to add 'update manager' entry to your moonraker.conf?[Y/n]:n
      Reboot NOW? [y/N]: N
    ###### Perform action: q

why Kalico? because klipper breaks stuff and there are nome neat danger options like

[danger_options]
multi_mcu_trsync_timeout:   0.07
minimal_logging:            True
log_velocity_limit_changes: False
autosave_includes:          True

Use mainsail/fluid to upload your printer config

Migrate Migrate print statistics

cd printer_data/database/

sudo systemctl stop moonraker

mv moonraker-sql.db moonraker-sql.db.orig


# replace the first part with the folder where the moonraker-sql from
# your old sdcard is. this example assumes its right next to your 
# printer.cfg

mv ../config/moonraker-sql.db .

sudo systemctl start moonraker

 

 

__________________________________________________________________________________________

 

STOP here, usually is is enough.

 

__________________________________________________________________________________________

 

 

 

OLD Can Info

Essential 

Dont undo them, they dont hurt and have a huge impact. You need to restart the appropriated Service to apply changes.

# ssh into the pi and execute the following single line command

~/moonraker-env/bin/pip install -r ~/moonraker/scripts/moonraker-speedups.txt

 

# DISABLE arc fitting in Slicer
# reduce gcode arcs in your printer.cfg

[gcode_arcs]
resolution: 0.3 ; down from Klipper stock 0.1
# edit moonraker.cfg

[file_manager]
default_metadata_parser_timeout: 30 ; ref. happy hare

[update_manager]
enable_auto_refresh: False ; because mainsail sets it to true
# edit: /etc/network/interfaces.d/can0 change
# Change txqueuelen to 128 (down from 1024)
# only increase if you have 5 or more CAN nodes
# while connected to you printer via SSH 
# modify klipper's core file to increase timeout (for homing moves)
# with the following single line command, copy and paste as is:

sed -i 's\TRSYNC_TIMEOUT = 0.025\TRSYNC_TIMEOUT = 0.05\g' ~/klipper/klippy/mcu.py

# Attention, this will make klipper "dirty" and you need to softreset
# via GUI to update. After Update you NEED to reapply the fix.
# Move all logs from SDCard to RAM
# 2 commands, copy and paste as is:

GID=$(id -g)

echo "tmpfs $HOME/printer_data/logs/  tmpfs  
defaults,noatime,nosuid,nodev,noexec,mode=0755,uid=$UID,gid=$GID,size=200M 0 0" | sudo tee -a /etc/fstab

# Special note if you mapped pi to biqu user
# while it totally works as it it would be best 
# to move the newly created line from this command 
# below the other entry that bind mounts pi to biqu home folder

also create a bind mount for pi to biqu logs if you are sshing with pi (see compat below and also crownests is hard coded)

echo "/home/biqu/printer_data/logs/ /home/pi/printer_data/logs/ none defaults,bind 0 0" | sudo tee -a /etc/fstab

 

CPU Sheduler

It feels like the cb1 or the old Linux image its based on struggled to just in time adjust cpu requencies.

# connect to your printer via ssh
# run these lines one after each other

sudo apt-get install cpufrequtils

# Single line command, copy and paste as is:
echo '%sudo ALL=(ALL:ALL) NOPASSWD: /usr/bin/cpufreq-set' | sudo tee -a /etc/sudoers.d/cpufreq-set

sudo chmod 440 /etc/sudoers.d/cpufreq-set

either stop here and manually set your CPU governor with

 sudo /usr/bin/cpufreq-set -g performance each boot or continue

or continue.

Either use kiauh to install G-Code Shell Command Extension or use the following single line command from linux ssh

wget -O ~/klipper/klippy/extras/gcode_shell_command.py https://raw.githubusercontent.com/dw-0/kiauh/master/resources/gcode_shell_command.py

add these to your macro.cfg or printer.cfg

[gcode_shell_command cpufreq_set]
command: sh -c "sudo /usr/bin/cpufreq-set -g $0"
timeout: 5.0
verbose: True

[gcode_macro _cpufreq_set]
description: set cpu governor
gcode:
  {% set governor = params.GOVERNOR|default("performance") %}
  RESPOND MSG='{"CPU set to %s" % (governor)}'
  RUN_SHELL_COMMAND CMD=cpufreq_set PARAMS={governor}

Adjust your start/end print gcode to set the governor

## End Print Macro / Idle Timeout
_cpufreq_set GOVERNOR=ondemand

## Start Print
_cpufreq_set GOVERNOR=performance
Pinning processes to cores
# Pin Linux to core 0+1, Klipperscreen 1 and Klipper 2+3
# 3x two commands, each creates a folder and a file

sudo mkdir -p /etc/systemd/system.conf.d/
sudo sh -c "cat >/etc/systemd/system.conf.d/cpuaffinity.conf << 'EOL'
[Manager]
CPUAffinity=0-1
EOL"

sudo mkdir -p /etc/systemd/system/klipper.service.d/
sudo sh -c "cat >/etc/systemd/system/klipper.service.d/override.conf << 'EOL'
[Service]
CPUAffinity=2-3
EOL"

sudo mkdir -p /etc/systemd/system/klipperscreen.service.d/
sudo sh -c "cat >/etc/systemd/system/klipperscreen.service.d/override.conf << 'EOL'
[Service]
CPUAffinity=1
EOL"

Other noteworthy things

remove the DEV channel from moonraker.cfg (simply delete the whole line)

For testing

Do them if you still have issues, they will turn off nice to have features tho.

# Disconnect all USB cameras
# stop and disable crowsnest service

sudo systemctl disable crowsnest
sudo systemctl stop crowsnest
# Disable klipper-linux mcu
# Manually remove the references from your printer.cfg 
# and then stop and disable the service with the following commands:

sudo systemctl disable klipper-mcu
sudo systemctl stop klipper-mcu
# stop and disable klipperscreen

sudo systemctl disable klipperscreen
sudo systemctl stop klipperscreen

 


 for old images only

 

Create Compatibility to Raspberries

This should fix compatibility issues for scripts and plugins that have pi hard coded in them.

You need both steps.

Create a pi user alias for biqu

Create the pi user and give him the same ID as biqu (1000). 

useradd -o -u 1000 -g 1000 pi
# user usermod instead of useradd if pi already exists

this makes ssh pi@host go to /home/biqu

basically pi = biqu

 

Make the OS compatible to online scripts and guides

created a bind mount from /home/biqu to /home/pi which then looks and works like real data so all comments referencing /home/pi/klipper or so work.

add to the /etc/fstab with nano or vim & reboot

/home/biqu /home/pi none defaults,bind 0 0

(the spaces are important, can have more but please no tab characters)

 

License:

Creative Commons — Attribution — Share Alike

Related Models

#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se preview image

#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se

CreativeTools profile image

CreativeTools

90,785

Important information sign for 3D printers / Wichtiges Hinweisschild für 3D-Drucker :) preview image

Important information sign for 3D printers / Wichtiges Hinweisschild für 3D-Drucker :)

Pat_S profile image

Pat_S

Gift Box preview image

Gift Box

roby85r profile image

roby85r

1,488

Self-Watering Planter (Small) preview image

Self-Watering Planter (Small)

parallelgoods profile image

parallelgoods

73,056

X, Y and Z calibration tool for IDEX / dual extruder / dual color 3D printers preview image

X, Y and Z calibration tool for IDEX / dual extruder / dual color 3D printers

Voxel3D_NL profile image

Voxel3D_NL

201

sign: don't touch my 3d printer preview image

sign: don't touch my 3d printer

Izzodesign74 profile image

Izzodesign74

425

All In One 3D Printer test preview image

All In One 3D Printer test

majda107 profile image

majda107

64,418

axes calibrage cube-xyz for 3d printers preview image

axes calibrage cube-xyz for 3d printers

H- printed profile image

H- printed

9

7