Ender 3 V2 BLTouch Firmware Installation Guide by Smith3D.com [Updated –16 November 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.3.5b)

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

1,285 thoughts on “Ender 3 V2 BLTouch Firmware Installation Guide by Smith3D.com [Updated –16 November 2021]

  1. Jason says:

    I have a mostly stock ender 3 v2 only upgrades I did is install bltouch from the ender site so it’s pretty much official. And I did the direct drive and the dual z axis with 2 motors and two screw leads. It was working fine for the past year. But I tried updating the firmware to the latest and the screen to the latest from ender site. But now I can’t get the z to go down nor can I get the bltouch to do anything. I tried smith firmware and still nothing. I tried all of ender firmware besides changing the screen firmware and still no luck with bltouch but I was able to get z to go down without bltouch on one of the firmwares but no luck still with bltouch. Please help and if you have close or similar firmware bin to send me. buckholt82@gmail.com

  2. marc says:

    i have a ender3v2 with a BL touch and a extended Zaxis (350)
    i can t find a firmware for these 2 options at the same time
    can somebody help me?
    i have no knowledge in compiling

  3. steven says:

    all working as expected apart from the when Ido a mesh and save to the eprom only the first 6 probe positions happen? It does all 9 if you set the gcode to use the BL to level prior to each print? Just won’t get past 6 when trying to save it the eprom so I don’t have to level before every print. Any suggestions. Ender 3v2 with extended XY and Z (400x400x500) using BLTouch-3×3-HighSpeed template adjusted for new size.

  4. Djulian says:

    Hi guys
    Just did the Firmware update for the 4.2.7 After the update non of my stepper motors move.
    Anybody out here knows what the problem might be?
    Or can tell me where i need to look?

    Kind regards

    • JORDAN says:

      Try flashing the firmware again, make sure when you format the micro SD card it’s not a quick format. Do the full format (FAT32) and select 4096 bytes under “Allocation Unit Size”. Now copy your file and reflash.

    • Peter evenhuis says:

      My first flashing was with the same result. I flashed original stock and still no stepping motors…….
      Then i flashed again this latest version and all is perfect now.
      I suspect that flashing was not perfect…

  5. Steffen says:

    Really great work guys!

    I am using the latest version of your firmware (V2.0.1) on my Ender 3V2.
    Everything works fine, but the print bed now has a size of 230x230mm instead of the previous 220x220mm.
    Because of the 10mm more on the Y-axis, the scale hits the belt tensioner at 223mm and the motor spins.
    Will there be extra versions with different print bed sizes or the configuration.h file for BL-Touch with 5×5 v4.2.2 to edit yourself? Or is there a way to change the print bed size via the terminal?

  6. Schuhbacca says:

    Great Work Guys!

    Are you planning to do an software option to reverse e motor for using Bondtech Extruder? This would be so great.

  7. Gerardo Valdez says:

    Ender 3 v2 all setup and seems to be working BUT all the leveling points on the right side of printer are not near corners, they are about 1.5 inches towards the bed center. I’ve already reset settings and rebooted it, every time I do the auto level, it probes the left side right and does do the full 5×5 but as mentioned, the furthest right probes are all like 1.5 inches to towards the center and not all the way on the right side of the bed as they should be. Any ideas?

    • Boff says:

      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.

  8. Kris says:

    I have the Ender 3 V2 with the Jyers firmware (no bl touch yet) and use the mesh levelling which is great. Rather than the BL Touch, does this work with the Creality CR-Touch? If so which firmware would I use? If not, can someone compile one and add ?

  9. dribblestick says:

    scrap my last. It is kind of working. albeit in reverse. If it has no filament it thinks it has. When you put filament in it thinks there is none. But getting nearer now.

    • dribblestick dribblestick says:

      All working now. Happy owner with a nice little Biqu filament sensor doing exactly what it should. Again to you guys doing this stuff, big thanks

  10. dribblestick says:

    Firmware. great. BL touch working perfectly. BIQU (simple limit switch type) filament runout sensor not working at all. Enabled in advanced menu and saved settings, But all that happens is the Light goes out when the filament runs out, but thats all, printer just carries on regardless. Anybody have a solution? It would be a nice option to have it working. Ender 3v2 on a 4.2.2 board if it helps any

  11. farscap says:

    könntet ihr bitte eine Aktuelle configuration.h für die Smith3D-E3V2-2.0.x.14 bereitstellen.
    Ich möchte die Bauhöhe in der Firmware ändern, leider meckert VS Code rum das die config zu alt ist.


  12. Bill Scott says:

    Firmware blows up when homing anything except the Y dimension.

    Running version E3V2-BLTouch-3×3-v4.2.2-v1.3.5 on a new Ender3 V2.

    Steps to reproduce:
    1. Prepare
    2. Homing
    3. Home X
    Firmware blows up with message: “Printer Kill Reason: Homing Failed Restart Required”

    Same result for homing Z or homing all.

    I’ve now cycled power perhaps 15 times dealing with this issue alone. This is not fun.


  13. Steve Haber says:


    I have an issue with the Filament sensor setting.

    My sensor is operating backwards: meaning that if I select this option, I get a run out message where it thinks there is no filament loaded (not detected). If I remove the filament, or physically unplug the wire from the sensor, it works fine.

    Anyone else experience this & if so, how did you resolve this so the sensor works properly?

  14. Steve Haber says:

    I’m also having a problem with the auto bed leveling not working, or at least doesn’t seem to be applying the mesh to the print. I’ve added the M420 S1; after the G28 but doesn’t seem to affect the print. I am using PrusaSlicer-2.3.0+win64.

    Is there any documentation on the Mesh viewer, or a better explanation what the numbers and colors mean?

    • Steve Haber says:

      figured out that red represents a negative number, Green represents a positive one. Now all I have to figure out is how ‘far out’ can the numbers be before the auto bed leveling doesn’t work.

      On the far right side (5×5) of my mesh diagram, the entire row is green (even after repeated manual leveling) of almost + 1.0

      I bought a new glass plate for my bed thinking the original glass was warped, but I’m getting the same results with the new glass as well.

      Any ideas why this is happening or ways around this would be greatly appreciated.

      • Chris Williams says:

        I have the same issue running Jyers 1.3.5 on my Voxelab Aquila X2. No matter what I try, the mesh seems to store fine but the printer never uses it

    • Cihan says:

      Hi. I have that same problem. In which slot the mes is saved add it to the line of code.
      e.g it was saved in slot 0 for me. M420 S1 L0

  15. İlker ÇİFTÇİ says:

    When you return to the main screen after the load filament option, everything disappears, it is necessary to turn the printer off and on again.
    Can you fix this problem?

  16. Tony says:

    True live babystepping has been crippled with Jyers build. we miss the Smith 3D firmware as it is superior to all the others. Menus have been made 2 deep making it necessary for extra click to get somewhere fast. While many bells ans whistle features have been added and Jyers solved the LCD update issues… the base firmware Smith developed is still spot on and pretty much flawless.

  17. woookienow says:

    I tired the “2.0.x.17 ZSwitchStop 5×5 Fast Smith3d Marlin Firmware” as I was having issues with the main firmware. I can get this firmware to work but I can’t get OctoPi to connect to the serial port.
    I have also tried “E3V2-BLTouch-3×3-v4.2.2-v1.3.5” and I can connect Octopi with this firmware but can’t get the BLTouch to work as it doesn’t function connected to the BLtouch port.
    Is there a version that will work with Octopi that is compiled to the Z-stop port?

  18. Koen says:

    So, I tried to install this firmware, but it didn’t work for me. All I got to see was a black screen (left it on for an hour to make sure it didn’t just take longer 😛 ).

    I also tried formatting the micro sd card and giving the firmware file another name. None of that helped… Does anyone have an idea what could fix this issue?

  19. Jerin Abraham says:

    I’m having this issue with the later firmware versions where the z-axis just won’t go down when it homes. It’ll home the x and y axes and then when it goes to home the z-axis, it goes up a bit, extends the BLTouch probe, and then instead of going down it just repeatedly extends and retracts the probe and then says homing was completed. Anybody know what the issue is here? Thanks.

    • Jerin Abraham says:

      Nevermind I fixed it. Turns out I needed to have the black and white wires from the BLTouch sensor plugged into the same port as the other 3 wires from the sensor. I had them plugged into the z-axis stop from the old firmware version I was running.

  20. Jdog says:

    Hey will you release your config and advanced config files please? I like your setup but need to make a few changes. Need higher temp 315 etc…

  21. Martin says:

    this firmware has many nice features and I was happy for that untill I find out, that my leveling is not working.
    I tried firmware 4.2.2 3×3 and 5×5 HS. I tried add G29 after G28. I tried create new mesh and then add M420 S1 after G28. In mesh viewer I see nice mesh (I believe with correct values). Everythink is without problem untill my print begins. Mesh is not applied during printing. I tried flash firmware fewtimes, I tried reset settings. Still same problem, z-axis does not work to fix level…only one correct point is in the middle where I set z-offset. Has anyone similar issue? Could someone help me? Thank you very much.

  22. KNguyen says:

    Hello, I wanna say thank you for releasing this firmware for us. I’ve been using it for a while and it works great. I’m planning on upgrading my thermistor and move to a direct drive. I need to select the correct thermistor in the Marlin firmware, is there a guide you can point me to to help me edit this in your firmware? Thanks.

  23. Dan says:

    Hey man, I am having a slight problem with bed leveling. Here is the story, I 3d print myself a new direct drive extruder, I make sure the home offset and the probe offset are perfectly in the middle, the manual tuning 0-0 spot is perfectly where it should be but when i try to do the auto bed leveling the 0-0 spot is almost off the left side of bed on the x axis and on the y axis it is too far away from its spot

    TLDR ; Home offset perfectly in middle, Probe offset perfectly in middle, Manual Tuning is perfect in its spot, Auto Bed leveling is not perfect/wonky

Leave a Reply

Your email address will not be published.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

This site uses cookies to offer you a better browsing experience. By browsing this website, you agree to our use of cookies.