Ender 6 Klipper + BL-Touch

Have you been wondering how to enable bl-touch with klipper? In this guide we will be guiding you on how to use bltouch on klipper. This articles is heavily influenced by other websites such as kevink & 3dprintbeginner

Setup Fluiddpi on RaspberryPi

For full installation, please refer to https://3dprintbeginner.com/how-to-install-klipper-on-creality-ender-6/.

1. Prepare a RaspberryPi 3B/4, MicroUSB to USB cable (For Pi Zero W, do prepare an extra OTG USB to MicroUSB cable) and adapter plug for RaspberryPi (5V 3A minimum) or follow 3dprintbeginner to rewire directly to PSU using a buck converter – 24V to 5V)
2. Downloads & Format Fluiddpi into SD Card (3dprintbeginner guide)
3. Configure wifi by modifying fluiddpi-wpa-supplicant.txt
4. Connect RaspberryPi to the Motherboard via microUSB cable & power up the printer & raspberrypi
5. Connect via SSH & install KIAUH (Klipper Installation And Update Helper)
6. Compile Desuuuu Klipper custom firmware
7. Flash klipper.bin file into Ender 6 and also DGUS Reloaded to the Ender 6 stock screen.
8. Copy sample config file(our config at below) by 3dprintbeginner into fluiddpi via webui configuration.
9. Firmware Restart & Done!

There are several changes we’ve made to make it compatible with Ender 6 BLTouch. mainly mesh_min & mesh_max (credits to Derrick Aquino). Here’s the sample config by Smith3D that’s compatible with BLTouch.

Manual Corner Leveling with Screws Tilt adjust and Bltouch Probe.

One of the advantage that klipper provides is Screw Tilt adjust. It will let you know which knob to turn clock wise or counter clockwise. Follow https://www.kevink.org/klipper-bed-leveling-with-screws-tilt-adjust-and-bltouch-probe/ and your bed would be almost perfectly leveled to the nozzle.

1. Add screws_tilt_adjust definition inside printer.cfg (already have it inside our sample config)
2. Perform G28 then SCREWS_TILT_CALCULATE command
3. Based on the result, it will ask you to turn CW(Clockwise) or CCW(Counter Clockwise)
4. Repeat steps 2 until you get your desire result( for me, it’s CCW/CW 0.02~0.03)
5. Perform G28 then BED_MESH_CALIBRATE command to check ur latest mesh chart

Calibrate Z Offset with Klipper

Now you need to make sure your nozzle to probe offset is near to the bed or else when you are printing, you will be getting floating nozzle & fail prints. Follow https://www.kevink.org/calibrate-z-offset-with-klipper/ and at the end you will be getting a paper scratching z offset.

my latest z offset after setup completed

1. Perform G28 then PROBE_CALIBRATE command, if your nozzle has residues do perform M104 S140 before proceed
2. Perform TESTZ Z=-.1 until you felt slightly resistance between paper and nozzle. My final z_offset is about 3.400,
3. Type ACCEPT then SAVE_CONFIG & it will restart the printer, do verify if new z offset is saved
4. Perform G28 then PROBE_ACCURACY command
5. If you are getting range worse than 0.025, slow down the probe speed or adjust the probe pin screw

Load Mesh in start of gcode

Before start printing, make sure all your new gcode has klipper load mesh. If you have M420 or G29 marlin command, klipper doesn’t recognise it & will skip it. Instead add the line below after G28


Then generate your all your gcode again.
If you are planning to do probe on every print, add the line below after G28


It will start probe every print but will takes some times to calibrate.

Live babystep/adjustment during printing

Sometimes your first layer still not perfect after calibration. you still need to do final babystep adjustment. On Fluidd Web UI, you can adjust the zoffset up and down, babystep it up and down until you get your desire print.

There you go, I hope this guide can help as I’m writing it in rush & I’m still new in Klipper but it does help me to get started with Klipper. Do correct me if I’m wrong.

Ender 3 Max Bltouch Setup & Firmware Installation

Bltouch for Ender 3 Max?

310*320mm print size is huge, normally you have to do manual bed leveling every few prints to get your first layer correct and prevent spaghetti printing. A way to get rid of manual leveling is to install bltouch on to your Ender 3 Max. BLTouch has repeatable precision up to 0.005mm therefore after installing BLTouch, you can have smooth & better first layer print every time.

Gathering Materials & Firmware

Necessary material is needed for Ender 3 Max BLTouch installation, here’s what you need, assuming you already own an Ender 3 Max:

  • BLTouch
  • Extension Wire for BLTouch (1.5 meter is recommended)
  • 4 x M3 screws + 4 x M3 screw nuts (Only need 2 set if you are getting the bltouch package)
bltouch mount by SuperMattInc
  • 3D printed sensor mount by SuperMattInc
  • Download the latest Ender 3 Max firmware over https://forums.creality3dofficial.com/download/ender-series/ender-3-max-firmware/

    The latest firmware at the moment is Ender-3 Max -BL-Touch V1.0.1.6
    *Note if you are having random probe fail issue, please check the FAQ & install the z stop firmware instead

Setup & Flash Guide

Here’s a simple guide on how to install BLTouch:

  1. Mount the BLTouch with the part 3D printed sensor mount or the part provided if you are using a kit.
  2. Turn your printer so you can access the electronics cover as well as access to the mainboard.
  3. Plug in all the 5 pins into the bltouch port (follow the picture above)
  4. Turn your printer back to the original position.
  5. Rename the downloaded firmware into “firmware.bin” & put it on the to roof of your MicroSD Card
  6. Insert MicroSD into your printer & turn it on
  7. Wait a few seconds and that’s it! As long as BLTouch is probing twice during the startup means it should be working fine. check our FAQ incase it wasn’t working for you.

Leveling Guide

Z offset is the distance between nozzle & probe pin. Source: TeachingTech

For the very first time, you still need to do once manual bed leveling to make sure the bed is not too far or too tilt. For saving the settings it is important to have an SD card inside the printer. The settings are saved to the SD card and not to the EEPROM. Without the save settings, the Z Offset isn’t saved. (Thanks to Matthijs)

  1. Do manual leveling using CHEP profile gcode. Adjust each corner by running a piece of paper under the nozzle until you can barely move it then click the LCD knob to advance to the next corner.
  2. Heat up your nozzle until at least 150C (if using PLA previously) and bed to 50C. Remove all the excessive residue around the nozzle.
  3. Go to Control > Probe Offset Z to start some value. -2.75 seems to do OK as a start. (Thanks to Steve for the correction)
  4. Auto Home
  5. Put paper under the nozzle, go to Prepare > Motion > Z axis. Gradually lower the Z (may go negative) until the paper drags. Note the value you end up with. If it’s zero, you’re done.
  6. Subtract the final Z position from the offset value (remembering subtracting two negatives makes it more positive) & update your Probe Offset Z again.
  7. Repeat from step 4.
  8. Store it. That’s it!

If you are using Marlin firmware (above Creality firmware please do ignore)

Source: TeachingTech
  • Go to Control > Probe Offset > Z Probe Wizard, adjust the new z offset until it’s just squeezing the paper (z offset value should be around -2.75)
Source: TeachingTech
  1. Adjust Probe X Offset to +47.0 and Probe Y Offset to -8.0
  2. Auto generate BLTouch Mesh leveling by going into Prepare > Bed Leveling
  3. Store Setting and that’s it!


BLTouch blinking at the start

The 3 pin of the bltouch is wired incorrectly or loose.

BLTouch crash into the bed when rehome

The 2 pin of the bltouch is wired incorrectly or loose

BLTouch failed to probe many times

If your bltouch keep failing, high chance it’s 4.2.2 board issue with 5 pin bltouch

Solution 1: Re-wire your bltouch like this and install the z stop firmware https://github.com/smith3d/3DPrinterFirmwareList/blob/main/Ender3Max/29-5-2021/E3-Max-Z-Min-2.0.8-FilamentSensor.bin

Ender 3 V2 BLTouch Firmware Installation Guide by Smith3D.com [Updated – 1 August 2021]

BLTouch Installation

If you are using a different extension wire, please pay attention to the wire colors above.

BLTouch Mount

BLTouch Mount for Ender3 V2 Link here (Use the two screws provided by BLTouch to screw it in.)


The very first thing you should to is go into Control > Advanced and adjust Probe Offset X to -42 & Probe Y Offset -10 (Printed Mount). and Control > Store Setting.

If you are using Creality official BL-Touch set, you have to set it to Probe X Offset -44 & Probe Y Offset -6.

MountProbe X OffsetProbe Y Offset
Custom Mount V3-42-10
Creality Official Mount-44-6

Video Guide by CHEP : https://www.youtube.com/watch?v=TroPjdkSEOY (Video guide doesn’t include manual leveling, do make sure you do manual bed leveling after adjust the z offset)

Unless your system is well tuned, please use the firmware above instead of high speed. Slow Probe & 5 x 5, which is great for first time tuning.

[8th April] As for Smith3D firmware, we have depreciated our firmware & move on to Jyer firmware as it offer much better features & functionality.

For BTT Filament Sensor & Standard Filament sensor, do enable them
inside Control > Advanced > Filament Sensor/Runout Distance

If you have never change your motherboard, it’s 4.2.2 by default

For 4.2.2 5×5 (High Speed) – download here
For 4.2.7 Board 5×5 (High Speed) – download here
For more info regarding this release
For people who’s suffering random probe fails, please refer to the FAQ below for z switch port firmware.

If flashed & auto leveling doesn’t work, please reset configuration (Control > Restore Default) or try to flash again with different filename. If you are getting Black screen, do format your MicroSD Card to FAT32 and rename the firmware & try again.

Older Build (V1.2.2)

If you are facing issue on newer builds, you may try the older build

What’s BL Touch High Speed Mode?

  • The high speed mode probes multiple points without stowing the needle, making it much much faster. But also prone to crashes if your bed is severely slanted. Please make good use of Manual leveling before you try this.

For Ender 3 V2 no bootloader installation is required. Copy the firmware into your SD card and then slot it in, the printer will begin flashing once you reboot it. Do remember that you need a different filename each time you flash a new firmware eg. firmware1.1bin > firmware1.2bin, else the system will ignore it.

For user who would prefer official firmware from Creality, you may check this guide here

Some UI customizations the community has added

For Manual Leveling, please refer to CHEP guide https://www.youtube.com/watch?v=_EfWVUJjBdA

Some other features were offered compared to Stock firmware

  • Turn on and off display during printing
  • PID Autotune Menu
  • Change Filament menu
  • Adjust probe offset, filament sensor in the menu
  • __h__m Time Format Setting

And remember to add “M420 S1” in Cura!

VERY IMPORTANT Add M420 S1; after the G28 in your start G-code in the starting G-code of your cura profile. To enable leveling on every prints. As the current marlin for Ender 3 V2 is unable to make “leveling enabled” persistent after reboot. M420 S1; Enable ABL (If you are getting error for Fade Height) This line of code always appear in other printer profile such as CR10SProV2/Ender5Plus where there is BLTouch built in.

You can also add G29 for Bed Leveling before every prints

Instead of adding the M420 S1 command above. You can replace it with G29 (Place it after G28). G29 basically starts a new round of auto bed leveling , good for users who would prefer a fresh bed leveling before every prints.

Nozzle Crashing Into Bed?

Steps to produce a good leveling

  • Once you setup the Probe Offset X & Probe Offset Y, Store Setting and go to Prepare > Auto Home. Make sure your probe is directly at the center of the bed.
Picture by CHEP
  • Start with Manual leveling to make sure the bed is leveled as much as you can, by manually adjusting bed spring. This is to reduce the amount of Z compensation ABL will need to apply when printing. Please refer to CHEP’s guide for how you can level your bed with a piece of paper. The firmware has included the buttons needed for printer to go to all 4 corners + center so you don’t have to do it via a gcode print file.
  • After the bed is leveled, get a good Z-offset by using the Prepare > Z-Offset. Remember to pre-heat your nozzle while using this as any remaining material stuck on nozzle tip might interfere the result while gauging with A4 paper. This tool will Auto home and then move Z to 0 to show actual Z offset. Prepare a paper to put between nozzle and bed, then try sliding it in and out, Microstep Up/Down & adjust Z offset until you feel a little friction between paper and nozzle. Use Home Z-Axis to double confirm if the z offset is the right one.
Picture by CHEP
  • Once you got your Z offset, go to main menu and press “Leveling”. It will probe 5×5 points and save the mesh to your printer.
  • Done and start printing!
  • Again, it’s very important to heat up nozzle to 180-200 while using Z-offset (if there is PLA in nozzle) Else the Z-offset will vary a lot depending on the leftover material stuck on nozzle tip.

What if you are not getting an accurate Z Offset from the Tool? (Live Adjust Z Offset)

Sometimes moving the Z axis up and down bit by bit might cause a little slippages, which makes the Z-Offset gauging with A4 paper inaccurate.

Picture by CHEP

If you want a better gauging result. We recommend user to adjust Z Offset via Tune during printing


Z-axis won’t budge

Pay attention to the wiring color, some wires are inverted. If you are using 3rd party wiring, most probably the last two orange and yellow are inverted. You have to manually revert it back using a tweezer.

Black Screen of Death after flashed

Please follow this reddit link for full guide on how to do a proper flash
In summary
– Use newly formated sd card, with only bin file
– Rename bin file
– Unplug & reconnect power cord

Bltouch probe not centered / change probe offset

adjust Control > Advanced > Probe Offset X & Probe Offset Y

Manual Leveled & still printing in mid air or nozzle hitting the bed

Use slow probe 5×5 firmware to see if the situation is improving, if not check if your M420/G29 is added inside the start of gcode. Use either G29 or M420. Remember to save setting after leveled.

Sometimes Probe doesn’t finish during leveling

Solution 1:
Some users has issue with the bltouch port. the trigger signal or ground is not attached properly. Connect the two pin to the z switch stop & flash the firmware below.

Download 2.0.x.17 ZSwitchStop 5×5 Fast Smith3d Marlin Firmware

Solution 2:
Try connect via Pronterface and check what’s the error code returned.

Summary (this reddit link explained in detail)
– Make sure bed not totally out of level, probe may out of reach or nozzle hit the bed first
– Check if your bed is badly warped
– Check if your bltouch pin is bent
– Check the XY axis wheel tension
– Check the Z axis for binding

Solution 3:
There is a resistor fix for this, you can solder a resistor and use the bltouch port.

Setting is not saved

Remember to click “Control > Store Setting” everytime you setup completed. Check if eeprom is deleted in SD Card.

OctoPrint Settings

Power Lose Recovery doesn’t work

Power Lose Recovery only works when it reached certain layer. check your SD card if there is a PLR file exist. PLR determine if to display the Resume Printing message.

Motor making noises and freeze during print.

This will happen if you just flashed the firmware & does not reset the configuration. Just turn off and on your printer will do, restore default setting. Another possible issue is the dupont connectors on the motherboard loosen, do hot glue the connectors in place or upgrade it to 5 pin JST connector.

Sometimes UI/ print progress bar does not reflect to the latest

Known marlin bug. Restart, press back, will do.

Can I use 3DTouch or BLTouch older than v3.1?

May not compatible, this firmware is optimized for BLTouch v3.1.

Where can I get the source code? How to compile?

Github Repository is here.

If you are having issue compiling your own marlin, remember to set default_envs = STM32F103RET6_creality in platform.ini

How to donate?

Please donate to Marlin Firmware & https://www.paypal.com/paypalme/jyers. Without them, there will be no great firmware for Ender 3 V2

What happens If I don’t want a BLTouch anymore?

You may revert your firmware to the official non-BLTouch firmware downloadable via this link – https://www.creality.com/download/32

Installation Guide For Official Ender-3 V2 1.1.6V BLTouch Firmware by Creality

BLTouch Installation

BLTouch Mount for Ender3V2 – https://www.thingiverse.com/thing:4462870
Use the two screws provided by BLTouch to screw it in.

If you are using a different extension wire, please pay attention to the wire colors above. Match them based on colors from left to right according to wires on BLTouch


As of 31st of July, Creality removed the 1.1.6 BLTouch firmware from their official site. For whatever reason it might be, below is a mirror link to the previous firmware v1.1.1 BLTouch by Creality which works.

For Ender 3 V2 no bootloader intallation is required. Copy the firmware into your SD card and then slot it in, the printer will begin flashing once you reboot it. Do remember that you need a different filename each time you flash a new firmware eg. firmware1.1bin > firmware1.2bin, else the system will ignore it.

And remember to add “M420 S1 Z2” in Cura!

VERY IMPORTANT Add M420 S1 Z2; after the G28 in your start G-code
in the starting G-code of your cura profile. To enable leveling on every prints. As the current marlin for Ender 3 V2 is unable to make “leveling enabled” persistent after reboot.

M420 S1 Z2 ;Enable ABL using saved Mesh and Fade Height

This line of code always appear in other printer profile such as CR10SProV2/Ender5Plus where there is BLTouch built in.

What you might need

Personally I have added a printed BLTouch spacer to add some buffer between bed and nozzle, so BLTouch has more room for probing. If you are facing issue where nozzle is hitting bed when BLTouch is probing, mostly caused by uneven bed (eg. sides nearer to hotend is higher), you might need to try adding a spacer. But do note that adding a spacer will make your z-offset at around -2+

BLTouch Spacer – https://www.thingiverse.com/thing:3466223

Steps to produce a good leveling

  • As this firmware is provided by Creality, there is no AUX tool or Z-Offset Tool included. Please refer to CHEP’s guide for how you can level your bed with a piece of paper.
  • One of the important element of having a good bed leveling is Z-Offset. Get a good offset at the center of the bed, gauge it with an A4 paper. Use the Z-Offset setting to set closer or further from bed.
  • Once you got your Z offset, go to main menu and press “Leveling”. It will probe 3×3 points and save the mesh to your printer.
  • Done and start printing!
Select your currency
USD United States (US) dollar