Skip to content

Bltouch

Where can I get help?

Come on over to the pellcorp discord server, the #simple-af-bltouch channel has been setup for anyone wanting support for bltouch, crtouch or 3dtouch.

invite

What about CrTouch and 3dTouch

Yep you can use a CrTouch or 3dTouch as an alternative to a BlTouch, however I have not personally used either of these with a K1 and so I can't currently provide detailed guidance on what config is required. I also think 3dTouch might require slightly different wiring.

Firmware requirements

This guide assumes you have a K1, K1C or K1 Max and you are running stock creality firmware 1.3.3.5 or higher, or alternately you are using my prerooted firmware. Any other pre-rooted firmware is explicitly not supported and the installer.sh will validate this and refuse to proceed if you try to use it on different firmware.

Slicer Settings

There is an assumption that you are using a slicer like OrcaSlicer and Machine G-code like:

image

Machine start G-code

M104 S0 ; Stops OrcaSlicer from sending temp waits separately
M140 S0
START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]

Machine end G-code

END_PRINT

Custom Bed Mesh Profile

If you want to select a specific predefined bed mesh profile (which disables adaptive mesh generation), you can pass in an additional START_PRINT parameter:

You can either hard code it to a particular model, like BED_MESH_PROFILE=myprofile or you can specify a profile based on orca slicer variables, such as BED_MESH_PROFILE="[curr_bed_type] - [filament_type]", but you have to make sure you have all the possible profiles defined for each of the bed type and filament type combinations.

image

Probe Installation

Mount Options

Mount URL
Default https://www.printables.com/model/666186-creality-k1-bltouch-adapter
CrTouch https://www.printables.com/model/1073375-cr-touch-mount-k1-k1maxk1c-zero-y-offset

Wiring

The probe and the TOUCH port on the Nozzle MCU board both mate with a 5-pin Molex Picoblade connector. A 5-pin cable is needed to connect the probe to the TOUCH port.

Some sellers may call the connector "Micro JST SH 1.25" but that is incorrect. Several premade cables are compatible. Most notably the Creality cable for their CR Touch probe:

image

image

Connect to TOUCH port on the nozzle MCU. it is accessible from the side left (LIDAR) side of the printhead and only the external cover of the printhead has to be removed.

image

image

IMPORTANT: The configuration file assumes a bltouch is mounted on the back of the tool head. If you have a Crtouch or are mounting your bltouch or 3dtouch using a different model, you must make additional changes to the bltouch-k1.cfg or bltouch-k1m.cfg files before trying to home your printer.

Source: Portions of this section are copied from the K1 Bltouch guide for helper script.

Installation

The installation can only be performed on a printer which has been rooted and ssh granted

You need root access, if you are not already root, then follow the excellent Helper Script Enable Root Access instructions.

Factory Reset

You must do a factory reset before running the installer.sh. Follow these steps to do a factory reset, which retains root access and skips the startup calibration checks:

wget --no-check-certificate  https://raw.githubusercontent.com/pellcorp/creality/main/k1/services/S58factoryreset
chmod +x S58factoryreset
./S58factoryreset reset

Warn

It is really important you do not close the ssh session until you get this message:

image

Clone the Repo

git config --global http.sslVerify false
git clone https://github.com/pellcorp/creality.git /usr/data/pellcorp
sync
RPC Timeouts, try SSH Git Clone
mkdir -p /root/.ssh
wget --no-check-certificate "https://raw.githubusercontent.com/pellcorp/creality/main/k1/ssh/git-ssh.sh" -O /root/git-ssh.sh
chmod 777 /root/git-ssh.sh
wget --no-check-certificate "https://raw.githubusercontent.com/pellcorp/creality/main/k1/ssh/pellcorp-identity" -O /root/.ssh/pellcorp-identity
export GIT_SSH_IDENTITY=pellcorp
export GIT_SSH=/root/git-ssh.sh
git clone git@github.com:pellcorp/creality.git /usr/data/pellcorp
cd /usr/data/pellcorp && git remote set-url origin https://github.com/pellcorp/creality.git && cd

Config Overrides

If you have pellcorp-overrides in github but not stored locally, you need to recreate the /usr/data/pellcorp-overrides directory before running the installer.sh!

Run the installer

To run the script, you must specify the probe you want to use.

/usr/data/pellcorp/k1/installer.sh --install bltouch --mount Mount

Warning

For Mount you must specify the mount option for the mount you have used, if you do not do this the printer will be incorrectly configured for your mount, and bed meshes, x and y limits and related config will be wrong. Please refer to Mount Options for supported mounts.

If you are using a non-supported mount you should specify a mount option as close to your mount as possible and properly adjust your configuration after installation before trying to perform a bed mesh or Screws Tilt Calculate!

RPC failed; curl 18 transfer closed

You might get this error:

error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

Just rerun the installer.sh script (with the same probe argument), it will start from the stage that failed (most of the time this will be the Installing Klipper stage!)

You can also prefix the installer command with AF_GIT_CLONE=ssh to force git to clone via ssh, this will take a lot longer, but it will never time out, so its good in a pinch if you are getting repeated klipper repo clone failures.

Post Installation

MCU Firmware updates are pending

At the end of the installer process if you get this message:

WARNING: MCU Firmware updates are pending you need to power cycle your printer!

It means that new MCU firmware updates need to be applied and this can only be done by power cycling the printer. After your printer is power cycled you can verify firmware was updated with the CHECK_FIRMWARE macro from Fluidd or Mainsail, if you see this message:

INFO: Your MCU Firmware is up to date!

Your printer MCU firmware was updated successfully. If you still see the MCU Firmware updates are pending you need to power cycle your printer! message after a power cycle, check the /tmp/mcu_update.log, you may be asked to provide this file on Discord if you need additional assistance, sometimes an additional power cycle can solve the problem, there is a very short window of time (15 seconds) in which the MCU firmware can be updated, so there is a chance it will work after an additional power cycle.

Verify USB Key

Tip

You should verify your USB thumb drive (aka USB key) often just to make sure you have something if you need to unbrick your printer, simply type CHECK_USB_KEY or hit the button in Fluidd / Mainsail

It is important to make sure you have a way to emergency factory reset the printer, if the worst happens. There is a macro in Simple AF called CHECK_USB_KEY that will wait for you to plug a USB thumb drive (aka USB key) in and tell you if it was able to be successfully mounted.

image

  • If you get the message: INFO - USB Key was recognised and mounted correctly (/tmp/udisk/sda1), your USB thumb drive (aka USB key) is perfect to use for a factory reset.
  • If you get no message at all before the script ends (after 60 seconds), your USB thumb drive (aka USB key) is defective. You can check the messages file in the logs section of your UI to get more details about why the usb key could not be mounted!

Calibration

For the bltouch/3dtouch/crtouch it is extremely important to do the PROBE_CALIBRATE step to configure your z-offset, regardless of what model you have used to mount the probe!

image

You should use the Paper Test Method for this z-offset calibration.

Note

The default z-offset for BLTouch, 3dTouch and CrTouch is 0, so your prints won't stick without doing this step.

Timer too close and microsteps

For bltouch, etc you cannot use more than microsteps: 64

Axis Twist Compensation

Next it is highly recommended to perform axis twist compensation calibration before doing anything else, this will affect the quality of your bed mesh, so best to do it before.

  1. Home All (G28)
  2. Run AXIS_TWIST_COMPENSATION_CALIBRATE The calibration wizard will prompt you to measure the probe Z offset at a few points along the bed
    Upon completion SAVE_CONFIG

Source: https://www.klipper3d.org/Axis_Twist_Compensation.html

First Print

For this first print you can go and do the tuning first (PID Tuning, etc) or you can go ahead and optimise your probe z offset using baby stepping.

In fluidd the save button after you finish or cancel your print can be a bit hard to find, look for

image

Tuning

At least PID tuning (bed and extruder) and input shaping is required for acceptable printing. If you try and print after running the installer.sh and a power cycle but before any calibration you will most likely have horrendous quality, the worst you have ever seen on the k1. After PID tuning and input shaping you should see the same kind of quality as you get with stock k1 + input shaper fix.

Quick Start

You can use the QUICK_START Macro to do Bed and Nozzle PID Tuning and Input Shaping.

Pid Tuning

Source: Calibrate Pid Settings

For example you might run these:

PID_CALIBRATE_BED BED_TEMP=65
PID_CALIBRATE_HOTEND HOTEND_TEMP=230

Note

The PID_CALIBRATE_BED and PID_CALIBRATE_HOTEND macros are located in the useful_macros.cfg file and they have defaults values for BED_TEMP and HOTEND_TEMP so you can just run them by clicking on them if you want that same temperature.

Input Shaping

There is no default configuration for input shaping so it is essentially disabled out of the box.

You can use the SHAPER_CALIBRATE macro to run input shaping, just be sure to SAVE CONFIG at the end, to choose the automatically selected shaper config, be aware though that the shaper chosen might be sub-optimal due to a slight difference in vibrations between two options. So you should probably review the output and potentially choose an alternative if it gives you higher recommended max acceleration for minimal increase in vibration.

Input Shaper Auto Calibration

Probing speed

On a K1/Max a faster lift_speed may counter the backlash on the Z-axis belts. Going too fast is likely making the bed bounce back in the opposite direction. Find the best speeds for probing by varying the probe_speed and lift_speed parameters. Start with probe_speed=1 and vary the lift_speed values to find the optimal lift_speed first.

PROBE_ACCURACY probe_speed=1 lift_speed=15

In this case, lift_speed of 15mm/s seems optimal.

image

After determining the optimal lift_speed, different probe_speed values can be tested until the sweet spot is found. Here 1.0mm/s works most reliably, however, the slow speed will make the meshing process take longer.

image

Credit to Ales Omahen (@Havoc on discord) for this section

Other Calibrations

Info

The default value for pressure advance is set to 0.04

Refer to Orcaslicer Calibration for more calibrations

Refer to the Ellis Print Tuning Guide for more great tuning ideas.