Ender 3 V2 BLTouch Firmware Installation Guide by Smith3D.com [Updated – 13 October 2020] 440

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.)

BLTouch Spacer Link here


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.

For 5×5 (High Speed) – download here
For 4×4 (High Speed) – download here
For 3×3 (High Speed) – download here
For 4.2.7 Board 5×5 (High Speed) – download here
For 4.2.2 Filament Sensor 5×5 (High Speed) – download here
For more info regarding this release

If flashed & auto leveling doesn't work, please reset configuration (Control > Restore Default) or try to flash again with different filename.

Updated 13-10-2020 [V2.0.X.14]

  • Delete PLR when cancelled a resume print
  • Improve Refuel feature & bug fixes (faster feed rate 150mm/s)
  • Marlin bug fix (Stop print will now stop properly)
  • Updated to the latest Marlin (12-10-2020)

  • 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 AUX leveling before you try this. For detailed changes, please refer to the configuration.h files shared below if you would like to know more.

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.

Configuration.h for 2.0.x.11 firmware

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

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

Some UI customizations we've added

We have modified some parts of the dwin UI to add more functions to assist user in AUX Leveling & Setting Z-Offset. You may find these functions under Prepare Menu.

For AUX Leveling, please refer to CHEP guide

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
M420 S ;Enable ABL using saved Mesh (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 Z2 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?

Personally I have added a printed BLTouch spacer so BLTouch has more room for probing, and add some space between nozzle and bed. 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

  • Start with AUX 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. We have 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 our Z-Offset tool. 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, adjust Z offset until you feel a little friction between paper and nozzle. Use Re-Home Z to double confirm if the z offset is the right one.
  • 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!
  • Again, it's very important to heat up nozzle to 180-200 while using Z-offset Tool (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?

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.

If you want a better gauging result. We recommend user to set Z-Offset to the value you want, use “Re-Home Z button" to allow BLTouch to re-probe and show you a much more accurate Z offset result.


  • 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.
  • AUX Leveled & still printing in the 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 is added properly inside the gcode.
  • Setting is not saved. Remember to click “Control > Store Setting" everytime you setup completed. Check if eeprom is deleted in SD Card.
  • 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 does not reflect to the latest. It's a known marlin bug.
  • 3DTouch or old BLTouch version. May not compatible, this firmware is optimized for BLTouch v3.1.
  • Source Code & Donation. Repository is here. As for donation please donate to Marlin Firmware for updating & supporting the Firmware for Ender 3 v2 & the community.

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

Past Versions

The firmware below uses High Speed Probe
For 3×3 – download here
For 4×4 – download here
For 5×5 – download here
For MicroSwiss Ender 3 Hotend – download here (Adjusted X_MIN_POS to -5 and Y_MIN_POS to -10)

For the latest changelog, please refer to here

Updated 8-9-2020 [V2.0.X.9] - Filename longer than 22 chars

  • Fixed issue where print resume cancel does not cancel the print
  • Updated to the latest Marlin (08-09-2020)
  • Support filename that is longer than 20 characters.

Updated 16-8-2020 [V2.0.X.8] - Z-Tool Offset Bug Fixes

  • Enabled BLTouch High Speed Mode (Experimental)
  • Enabled BLTOUCH_HS_MODE (in configuration_adv.h)
  • HOMING_FEEDRATE_Z bumped from 4*60 to 6*60

Updated 13-8-2020 [V2.0.X.7] - Z-Tool Offset Bug Fixes

  • Fixed issue where Z-offset tool may not reflect the actual z changes when adjusting real-time
  • Added "Re-Home Z" button in Z-offset tool so user can make changes and test real Z immediately.
  • It's very important to heat up nozzle to 180-200 while using Z-offset Tool (if there is PLA in nozzle) Else the Z-offset will vary a lot depending on the leftover material stuck on nozzle tip.

Updated 1-8-2020 [V2.0.X.6B] - Major Update.

  • Updated BLTouch to use 5 pins port provided by the board. Replacing Z Stop Switch is no longer required. (If you still have your old wiring done based on our older guide you will need to change it in order to flash 2.0.x.6 firmware) We believe this is a step forward as it gives you the flexibility to switch to other firmware without the hassle of changing the wiring.
  • EEPROM is now saved within the board instead of SD card.
  • Changing Z-offset now works when printing. Will be reflected immediately. Store configuration if you want it to be persistent across reboots.
  • Pausing works on the printer now. Which means file like CHEP's leveling gcode will work.
  • Added white borders to Tune/Pause/Stop buttons
  • Improved Z Offset tool (Remember to pre-heat your nozzle while using this as any remaining material stuck on nozzle tip might interfere with the result when you gauge with A4 paper)
  • Corrected most labels and typos in DWIN UI
  • Updated Marlin to the latest build (1st August 2020)

Updated 28-7-2020 [V2.0.X.5] - Fixed AUX Leveling Bug and added support for M48 command. Adjusted XY speed to be a little bit faster when auto-leveling

Updated 25-7-2020 [V2.0.X.4] - Adjusted max bed size back to 220 as some users are facing issue where it's printing outside of edge. Previous version was using value of 220 + 15 as it helps BLTouch to probe nearer to edge for better mesh output.


  1. The brand new 2.0.x-14 5×5 fast probe firmware binary still seems to be a x-13, not a E3V2-2.0.x-14 version – please check about it. The others seem fine.

    1. I get the same. Just updated but states “E3V2-2.0.x-13-Smith3D.M” as the version.

      1. getting the same. flashed 4 times with slow and fast probe bin files and keeps reporting version 2.0.x.13.

        Would be interesting to know if this is just cosmetic and the firmware is really 2.0.x.14 or uploaded files were swapped.
        Thanks for the great Firmware btw!

        1. just cosmetic, thats the very first firmware we compiled and forgot to update the firmware versioning

  2. when I flash to the 2.0.x.14 do you need to flash the lcd to get the updated menus or just the main board?

    1. just the main board will do.

  3. You have a firmware for a filament switch but how is it wired to the board?

    1. #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.

  4. Can you make a firmware with Filament Sensor 5×5 for 4.2.7 board?

    1. We will add a auto compile feature in later version.

  5. Does this update add support for the 4.2.7 board as i cant see any text that it doesnt support it no more

    1. it’s inside the github. check the additional releases

      1. Hi i tried the Smith3D-E3V2-2.0.x.14-5×5-SlowProbe-V427.bin firmware and one other of them, while leveling using both it just probes the center and front left corner then thinks it is done, i have reflashed and restored to defaults several times. Any ideas?

        1. sounds like cable issue or bad flash, when it only probe once, it means bltouch failed to proceed.

          1. Hmkay, the creality firmware works, it does the 3*3 grid

      2. Would there be a photo showing the filament sensor slot on the Ender 3 v2 card?

  6. I noticed the configuration.h uses NOZZLE_TO_PROBE_OFFSET { -42, -12, 0 } but the author of the suggested BLTouch mount says it is designed to -42,-10 not much difference but might be worth looking at. Thanks for all you do.

    1. As noted in configuration.h:

      – Probe Offsets can be tuned at runtime with ‘M851’, LCD menus, babystepping, etc.

      So you could do this yourself, just don’t forget to save the configuration.

      1. Thank you very much. I missed this notation and will give it a shot.

  7. I experienced a bug using version V2.0.X.14. This bug was already present in V2.0.X.13, but since it hasn’t been fixed or maybe it hasn’t been noticed I thought I might report it. When I adjust the Z-offset (“Probe Z Offset”) inside the “Tune” menu while printing, the z-axis goes down and the nozzle crashes straight into the bed. I hope this will be fixed in a later version. Btw, I love your firmware, this is definitely the best Ender 3 V2 software out there. Keep up the good work!!!

    1. I noticed this too. I cannot for the life of me determine why this happens. I cannot tell if the z-offset is not accounted for, or if the homing action using the probe instead of the z-min-endstop switch causes the ‘homed’ z origin to be too high and then its not accounted for in the z-offset tool…

      Any number of things could be wrong, but for me, this build of the firmware is totally useless.

    2. Bumping this as I also see this behavior. I think it will probably need to be noted in the Marlin issues as it is not Smith3D specific. I actually thought this was fixed but just experienced it moments ago since I can’t leave well enough alone.

    3. Same Problem here.
      When i adjust the z-offset the first time it doubles the offset.
      Like i have a offset of -1.93 after adjusting it to -1.95 the nozzles crashes into the bed and i need to put 0.00 then the offset actually fits. Next time i restart the printer i need to put it manually back to -1.93 or the nozzle is to far away.
      This is very disturbing as i want to live-adjust the z-offset during printing the skirt.

  8. Hi, thanks for the guide. I have a few questions before I attempt to install mine. I purchased mine from Amazon UK. It’s listed as Creality Improved BLTouch V3.1 Kit, but the box that it comes in is a Creality Box and v1 is ticked on the box flap. There’s a metal mount already inside which I assume is for the first gen Ender 3 (v1). The colours of the cable to the BL Touch is different to your images. It has a black connector with Red, Blue and Yellow wires. Then a red connector with black and white wires. After watching countless videos on YouTube, I still haven’t found a single video with the same colours as mine. I’m starting to suspect it might not be genuine BL Touch. Any tips please?

  9. Could you please share the source code?
    The github has only version 13.

    1. it’s the latest, I just forgot to amend the version update

  10. My bed is slightly (~0.1mm) out of level. Using G29 in Cura. I have tried both 3×3 and 5×5 firmware with the same issue… when printing the system goes completely through the leveling process, but does not compensate for the bed being out of level. Set or a proper layer in the high corner, the nozzle remains off the bed in the low corner. Any suggestions?

    1. +1

    2. +1

    3. Still hoping for advice here, as I assume are my +2. My current situation. I have my bed very well trammed, and can get an excellent first layer print of five circles with void writing in them, center plus each of the four corners, plus a three line skirt.
      If I make a small adjustment in one corner — say 1/8 turn on a wheel in either direction — I can easily see it in the resulting print, indicating that the BL Touch mesh is not being applied.
      I have an Antclabs BL Touch on an Ender 3 v2, have tried several different firmware, and am currently on your recommended one. The printer runs a 5×5 touch off grid before every print, and from all external appearance is correctly preforming the BL Touch leveling. It seems clear that the printer is not using this mesh to do any actual leveling.
      Any tips, comments, pointers? Absent same, I will need to revert my printer to the Z end stop and ditch the BL Touch.

      1. if m420 not working for you, try g29

      2. +1

        I have the same issue that the bed is not only not compensating for the unevenness of my print bed, but also think that my bed is slightly tilted. After successful ABL and check with Bed Visualizer on Octoprint and loading the mesh, it is always too close to the left side and too far on the right side. This happens eventhough I did a very careful manual bed leveling right before that. (AUX leveling of the 4 corners and center)
        I found that this might have something to do with the Marlin firmware, there is an open issue:

  11. Thank you for the firmware, it really is a step up from the original firmware! Really makes the visibility that much easier and I love the Z-offset tool.

    Just a few small remarks
    1. The versions still states 2.0.x.13 instead of 2.0.x.14
    2. When printing going to the stop button the stop text shifts up one of two pixels and creates “artifacts”. After leaving the stop button the text comes down.
    3. When the printing is done time remaining is 00:01 and the progress bar goes to 0%. This was 99% in the previous version if I remember correctly. Guess it should be 100%.

    One thing I would love as a feature is the displayed text from the original Ender 3 series. With gcode m117 you can show a piece of text on the LCD screen. Sounds like a gimmick, But we use this on our Ender V3 Pro for testing gcode, and to show which user is currently printing (you can add this gcode to your personal stop and start gcode).

  12. Hey thanks a lot for the support great work. do you know what height ‘Set Fade Height’ is set at? thanks guys.

  13. Hey guys I noticed that the probing grid is based towards the left and is not symmetrical with the bed, is there a way to fix this?

    1. If offset to left is the same as my V2 the X axis micro switch is about 5 mm to the left of where it needs to be. There is no adjustment so I built a 5 mm shim that attaches to my BL touch mount to contact the switch. Now it prints in the center of the bed. Unless Creality has a compensation in the firmware it was like that out of the box and I didn’t notice.

      1. Sorry, please disregard my answer. I misread the post. Mine was “Printing to the left” I read “probing to the left wrong.

  14. Hi Community. My name is George and I recently bought an Ender 3 v2 and a creality BL touch kit. The guide above is absolutely amazing but it wont warn about the cable swap that needs to occur if you have a creality bl touch. Please be careful you have to re-pin to cables or you will blow your motherboard.


    Have a great day!

  15. I’ve applied the 2.0.X.14 firmware to my 4.2.7-based machine, and have it successfully printing. However, when I do an automatic leveling, the 5×5 grid is way off the center to the left. I have heavily modified my Ender 3 V2, it has the Micro-Swiss direct drive extruder with modified Hero5 base and custom 50×20 fan shrouds on either side. This puts the BLTouch pretty far wide left of the nozzle (69.5mm, to be precise). I’ve performed an M851 command to compensate for the probe offset. Is there anything I can do to center up the built-in mesh leveling?

    1. Did you ever manage to fix this?

  16. I’m running into an issue where the display does not load. I can manage to get auto level going my clicking around. Has anyone experienced this, or is it a know issue?

  17. Hi, I have been using this firmware for a while and everything works perfect. Thank you for that.

    But I’m planning an upgrade to a different V6 style hotend. According to the manual I need to change the temperature probe in marlin. Does this mean I have to change the source of your firmware and compile my own?


    1. yes, you have to compile your own by increasing the max temp & also nozzle offset.

  18. Powering off disables Z-axis
    The initial setup works great, Aux, Offset, and leveling. Settings are saved.
    Printing works great, using M420 S1 Z2 ;Enable ABL using saved Mesh and Fade Height

    Turning off Ender3 V2 and off seems to wipe out something.
    Next print begins by home X and Y, then raises Z and stops.
    BLTouch blinks red.
    Screen shows printing progress to 100%.

    Ender3 V2, BLTouch 3.1 and Marlin Firmware V2.0.X.9 (SlowProbe) – Smith3D:

  19. Just flash your firmware. Try to set Home Offset with M206, not sure why it doesn’t work.


    1. Sorry my bad, M206 are work perfectly. But when leveling with 5×5 firmware the BlTouch probe too close to the front of the bed (about 5 mm). How can I set the offset?
      I use HERO ME mount probe offset is X-38 Y6.

      Please help thanks.

      1. https://marlinfw.org/docs/gcode/M851.html

        I haven not tried this but seems like M851 do the trick.

        1. Thanks for your reply.

          I already set probe offset as HERO ME document spec (X-38 Y6). You suggest to increase the offset? Is it effect the leveling result?


          1. XY is fine. shouldn’t affect much unless your bed is uneven, just relevel again will do.

  20. I love your firmware, I really appreciate the UI customizations you’ve added. Although I’ve never tried to build it, I know Marlin is open source. My question is: if I wanted to change some settings to suit my highly customized Ender 3 V2, could I build *your* firmware? If so, and it’s not too much trouble to ask, can you tell me where to get started? I have the 4.2.7 board.

    1. https://github.com/smith3d/Marlin/tree/bugfix-2.0.x-Smith3D

      Firmware source is available here, you may try to compile yourselves with 4.2.7 board

      1. Thank you!

  21. Hi, first of all good job, i have a question about if i want to use a filament run out sensor its posible to do? i tryied with creality firmware and github but doesnt work any option, your firmware sometime will add this?


    1. there is a version with filament sensor available. try with it or you may compile your own with the github code

  22. I tried to install the new firmware and my screen is now blank. It never shows anything. What’s going on? I even tried all the different versions listed on this page.

    1. bad flash. try flash another firmware back & forth

      1. Like flash the default creality one then try this again?

  23. Thanks for the great firmware!
    I just installed my bltouch and upgraded to your latest firmware. I also switched from springs to silicone spacers.
    Some questions:
    Is the z end switch no longer used? I have yet to see any optio. That uses it.
    Why the auto home no longer in the bottom left corner?

    When trying to aux level I used to rely on this stoppage point as the main height. Now with the bltouch i have the spacer in between and I have to set my z offset to -4.85. At the moment I am unable to get a good height and leveled bed.

  24. Is there any way to put the home position back to bottom left? I now have filament oozing onto the center of my bed every time the printer heats up.

  25. Followed the guide and wired just like shown, had to swap a few pins on the connector that came with the kit. Everything appears to be working, but the bltouch flashes while printing. it’s the slow flashing, but everything else works correctly, is there a way to make it not flash? or even better turn off when not leveling.

  26. For this setup do we need to unplug the Z-Axis stopper or can we leave it pluged in?

    I flashed the version: 2.0.X.14


Leave a Reply

Your email address will not be published. Required fields are marked *

Select your currency
USD United States (US) dollar