Ender 3 V2 BLTouch Firmware Installation Guide by Smith3D.com [Updated – 8 April 2021] 1,165

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


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.

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 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 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 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 Or 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?

Steps to produce a good leveling

  • 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. 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 the 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 Home Z-Axis 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 “Home Z Axis” 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.

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

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

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. Using Smith3D-E3V2-2.0.x.17-427-Fast-5×5-180321 and I have a problem when it starts print, pause the print and unload the filament.. Looks like there is a few other folks have the same issue based on the github issues..


  2. Hi again , anybody has a fix for this of filament runout pause the print and unload the filament ?
    Thank you so much

  3. i download and install this For 4.2.2 5×5 (High Speed) on my ender 3v2 set my z offset and modify my gcode in cura, this is what i have ; Ender 3 Custom Start G-code
    G92 E0 ; Reset Extruder
    G28 ; Home all axes
    G29 ;DO ABL
    M420 S1 Z2 ;Enable ABL using saved Mesh and Fade Height
    G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
    G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
    G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
    G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
    G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
    G92 E0 ; Reset Extruder
    G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
    G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish
    the bltouch starts to lvl on 25 points in every print but is not using it, the print is good in some parts but too squished in others… please help, i don’t know what to do

    1. Hey Juanpa – did you ever find a solution for this? I’ve had this same issue and I use the same start gcode

  4. Love this most recent update, all the additional features are great. I’m using the Hero Me fan ducts which shifts the probe and nozzle over a bit. When it probes the bed the probing points are not centered on the bed. Is there a way to shift over the probing points towards the right? I read about adding offsets to the G29 command, but i’m a little confused with what I’m doing there. It’s either probing the same point in the bed 25 times, or make really tiny adjustments when I do that. Thanks for the help.

  5. The new Jyer firmware 1.3.0 with slow probe uses a 3X3 Mesh not as noted a 5X5

  6. Can i use Jyer 1.3.0 with splitted Z Endstop cabling on 4.2.2 board? Thank you

  7. After updating to the latest levelenig is broken… the probe gets outside of the table.

    1. the default was -10 -10, i will precompile some firmwares for it

      1. Thanks I will be looking forward to the update.

    2. Hi ender 3 v2 , same as you , any fix? Thanks

    3. I’m using x -37 y-10 in the advanced menu. That puts the probe at the centre of the bed.

      1. Thanks that did the trick.

  8. halo…
    i have ender-3 PRO, motherboard creality V 4.2.2
    and i want to install BL touch, but Is it possible to remove the X-axis socket by using BL touch?
    and can I use your firmware(Marlin Firmware V1.3.0 – Jyer Builds)? because it is different from the LCD on the Ender 3 PRO the lcd is colorless, but on your ender 3v2 the LCD already has a color.
    thanks before.

  9. Hi with this firmware i ahve 2 isues , the filament runout do the same pause the print unload the filament and now the other is bed leveling out of bed , please i need some fix .
    Thank you so much in advance

  10. I fix the bl touch level out the bed ajusting the x and y probe offsets, now only the old issue of filament runout pause the print and unload the filament , any fix?

  11. The x-y probe offset for leveling doesn’t seem to match to Autohome position. Am I missing something?

  12. After using this package for a day: E3V2-BLTouch-3×3-HS-v4.2.2.bin I’m rolling back, it’s buggy as all hell.

  13. I have done the ender extender for the Ender 3 V2, and the manual bed leveling is the same spacing as if it is the non-extended version. I have compiled my own software to meet the 400mmx400mm bed, but manual leveling is the only items that doesn’t seem to size up.

  14. New to your firmware. Compiled marlin myself previously.
    One thing that I am noticing is my first layer over entire bed (for testing purposes is about 190mmx190mm) has very clear high spots as before and the probe in the leveling process does in fact probe this area. I’m not certain that it’s printing with the ABL mesh data…

    Here’s my process with your firmware (5×5 fast 4.2.2 E3v2)
    – Set the z offset (for me this is -2.40mm)
    – Using m420 S1 Z3 after home cmd using CURA (i want 3, not 2 here for fade)
    – run manual level (bottom right on ender screen)
    – i see message on screen stating it was auto-stored
    – then i print my single 0.2mm ht test piece that is 190mm x 190mm x 0.2mm

    Result is high spots on built plate even where probe measures… not sure if this could be improved with more than 25 points… not sure if the mesh controls are tight/loose (mathematically manipulated – think back to cal III haha)

    I have also used the 5×5 slow with no change.
    Thoughts to verify my BLT is working and even out these high spots that plague about 30-40% of my bed?

  15. Whichever Jyers release I try, when leveling, the needle gets off the table at the first point, lifts one, and writes it’s done. But nothing happened at all. Did I mess something up?

    1. https://github.com/Jyers/Marlin/discussions

      you may try to post your discussion over here.

  16. Installed the new Jyers firmware (E3V2-BLTouch-5×5-v4.2.2) and noticed that my Tasmota smart plug turns off my printer just a few seconds after I turn it on!!
    Turns out the new firmware works on 115200 baudrate not 250000 like the previous Smith3D-E3V2-2.0.x.17-Slow-5×5-180321 I was using. This generate and error which tells my Tasmota plug to turn off the printer immediately.

    Hope this gets fixed as the Jyers firware seems pretty cool.

  17. Will this firmware work in my ender 3 pro?
    I have upgraded to the 4.2.7 board and the larger LCD display.

  18. with the new Jyers firmware (E3V2-BLTouch-5×5-v4.2.2) it is necessary to update the X and Y offset values in the new screens otherwise the BL Touch will miss the bed and the nozzle will dive into the bed on first auto bed leveling attempt. by default both values are -10 and I updated them to x: -44 and Y: -19. I am using this BL Touch mount: https://www.thingiverse.com/thing:4563093

    This puts the nozzle at close to 0,0 position from the bed. Different mounts require different values.

Leave a Reply

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

Select your currency
USD United States (US) dollar