Installing BLTouch Auto Bed Leveling on the Creality CR-10 3D Printer




Electronics enthusiast, vlogger on youtube.

In this instructable I’m gonna show you how I installed a bltouch sensor on my creality CR10 3d printer. But first to give you a bit of info, if you are a frequent viewer of my youtube channel than you know I have tried a bunch of different sensors, inductive, capacitive but they either didn’t have enough sensing distance to pass through the glass I’m using on top of the aluminium bed or they weren’t giving me repeatable results so they all ended up disconnected.

Then I found this bltouch sensor or more correctly a clone of the bltouch sensor on aliexpress for just $14 and I said why not, let’s try this one as well and ordered one. And boy was I impressed how much better the printing got after installing it.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Watch the Tutorial Video!

The video describes the entire process of mounting the sensor as well as all the wiring that's required so I recommend watching the video first to get an overview of the process. Then you can come back and read the following steps for more detailed explanation.

Step 2: Order the Parts Needed

The first thing you will need is the 3d touch sensor and I'm placing several links below to places where you can order it. Then depending on how you want to wire the sensor you might want to checkout the breakout board and order that one as well. You will definitely be needing some servo wire so there will be a link to that as well.

If you don't have a soldering iron, than you might want to check out the TS100 which in my opinion is a great soldering iron for a great price.

Download and 3d print this sensor mount.

Download the TH3D Unified Firmware.

If you need a good portable soldering iron checkout the TS100: Link1, Link2.

If you need a nice screwdriver set checkout this Wiha set: Link1, Link2.

Step 3: Install the Sensor on the CR10 3D Printer

Install the sensor using the mount you’ve just printed and the screws they give you in the sensor package. It has to look something like this once you have it installed. It’s a bit difficult to install the nuts from below, the space is very tight but I managed to do it and so should you.

Step 4: Wiring of the 3d Touch Sensor

For the wiring of the sensor they give you an extension lead that comes delivered with the sensor but I found that to be too short so at this point you could either use the provided extension lead or make your own extension lead using servo wire. When making the extension wire try to keep track of the different wires and their color to make it easier to identify them at the other end. In my case I also used some mesh wire wrap to give it a nice finish and I’ve secured it next to the bowden tube.

For the connections to the motherboard of the CR10 I advise you to watch the video linked at step 2, it's very easy to follow and wire your sensor the same way.

Step 5: Flash a Custom Firmware Supporting Auto Bed Leveling

Next you will need to flash a modified version of the marlin firmware that will be already configured for the CR10 and all you have to do is just edit a few lines to enable the bltouch sensor and autobed leveling. The firmware I used, it’s called TH3D Unified firmware and the version I used is 1.1.10a. It will probably work with future versions as well it’s just that the line numbers from my instructions might be different. Once again, please watch the video for details on what lines need to be adjusted before compiling and flashing the new firmware.

After loading the custom firmware, I spend a few hours debugging why my auto homing was not triggering properly on the Z axis. I had to disconnect the z-axis switch because in my case it didn’t work together with the bltouch sensor, it was either one or the other. So right now my bltouch is acting as the z-axis limit switch.

After loading the custom firmware you will need to calibrate the z-offset and instructions on how to calibrate the z-offset are again given in the video linked at step #2.

Step 6:

The final step is to add the G29 command to the slicing software so that it's included in the g-code at the start of every print. From now on every time you start a print it will go through the automatic bed leveling sequence and after that it will start printing

The original bltouch sensor is about $40 so if you can afford that, then get the original and support the people who invented this sensor if not, you can use a clone like I did and it will work just fine.

So, that was all, I hope this instructable was useful if so please leave a comment or hit the like or dislike button to send me some feedback.



    • Indoor Lighting Contest

      Indoor Lighting Contest
    • Metal Contest

      Metal Contest
    • Make It Fly Challenge

      Make It Fly Challenge

    13 Discussions


    Question 7 weeks ago on Step 1

    does this work on the cr10s5 version ?


    Question 3 months ago on Step 4

    Can somebody explain to me how i connect the black and white cables and if its necessery to buy an extention for those cables(black and white)


    4 months ago

    I got it working on CR-10 mini and it works ok but when it is probing the temperature of the nozzle drop down about 30º and when it starts ptinting the temperature is 30º lower than the set temperature.
    Any idea how to solve the problem


    5 months ago

    Someone installed on CR-10 mini? Does it works ok?


    6 months ago

    Just a hint for newer TH3D Marlin versions (in my case UFW U1.R2.7 based on Marlin 1.1.9). I had to customize the firmware a bit different, which also allowed me to leave SDCARD function enabled on my CR-10.
    - Added 4 lines of "BLTOUCH config" in CR-10 section, like in the video, but excluded X_PROBE_OFFSET_FROM_EXTRUDER and Y_PROBE_OFFSET_FROM_EXTRUDER
    - uncommented "#define CUSTOM_PROBE"
    - uncommented "#define PROBING_MOTORS_OFF" for added precision as BLTOUCH is sensitive for vibrations during probing
    - uncommented "#define DISABLE_BOOT" . This will disable bootscreen and save some space, so you don't need to give up the SDCARD feature
    - for fun you can search in "configuration_backend.h" for "CUSTOM_MACHINE_NAME" below "#elif ENABLED(EZABL_ENABLE)" and enter something short like "CR-10" or "MY 3D Printer" as name. This name will show up in the status page on your printers display.

    3 replies

    Reply 6 months ago

    i cant get mine to work, i keep getting "Please enable only one probe option: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo." any idea?


    Reply 6 months ago

    Thanks for the tidbit on quashing the bootscreen in favor of the SD card. I'm not certain I'll use the card reader much more, but I prefer having the option available.


    6 months ago

    I got mine working on the ENDER3 however, it doesn't seem to be auto-leveling. When I print on my glass bed it doesn't stick and on my stock bed it prints too low on one side.

    It does go through the probing in the beginning. Any advice?

    1 reply

    Reply 6 months ago

    It might be that the ENDER3 has different offsets and might need adjustment on those values or maybe use a different mount, not sure. But if the auto-leveling runs before print it clearly gets bed leveling data, there is something else disturbing that, either some offsets or maybe problems with the temperature & the material not sticking.