Bed levelling requires patience and precision. An evenly trammed bed can make or break the final 3D print. I already upgraded my original Ender 3 (review) machine running SKR mini E3 board with BL Touch, so it’s time to make my life easier and add BL Touch to Ender 3 v2 (review) as well. Thankfully, the process is less complicated with the latest revision of the printer. In this article, I will cover the installation and firmware provided by Creality if you want to compile your own Marlin firmware – check out this guide instead.
BL Touch & Ender 3 v2
If you are reading this, you are probably holding BL Touch in your hands. Make sure you got the correct kit for your Creality Ender 3 v2. While BL Touch is the same, each machine requires a slightly different bracket. If you messed up, well you have a 3D printer and Thingiverse at your disposal!
Adding BL Touch to Ender 3 v2
BL Touch on Ender 3 v2 will essentially replace the Z stop. You can start your work with unplugging the cable and removing the Z stop from your 3D printer. Keep it in case BL Touch gets broken and you want to revert to original setup. You can also repurpose the switch to create a DIY filament runout sensor since Ender 3 v2 supports that. I will save this option as a topic of my future article.
Take a closer look at the BL Touch and the mounting bracket. It’s possible to mount the bracket upside down do follow the pictures below to match the correct orientation of the bracket. If your Ender 3 v2 slams into bed without stopping – your BL Touch is too high and you have probably mounted the bracket upside down.
Connect the BL Touch cable, mount the plate, then attach the BL Touch using screws provided (long screws are for the bracket, short ones for the BL Touch). As we are about to plug things in, route the cable into the correct position so you don’t end up tangling it.
To access the motherboard, you have to undo 3 screws at the back and one at the top of the enclosure. Be careful, the fan inside is screwed into the cover that you are trying to remove and plugged to the motherboard. Take things apart slowly and unplug the cable. You don’t have to remove the top cover, but if you want to get rid of the Z stop cable completely, undo the two front-facing screws. It will open gap big enough to pull out the Z stop cable.
The Z stop cable is attached to the socket using hot glue, so use a sharp tool to cut the glue – be careful and don’t cut your fingers or other wires. The cable is labelled so you shouldn’t have any issues identifying it.
Plug BL Touch into Ender 3 v2 motherboard and take a note of the motherboard revision. You will either have 4.2.2 or 4.2.7 (at the time of the writing). This will be important as firmware for each motherboard can’t be used across the revisions.
Close everything up and download the correct firmware for BL Touch without the adapter. Pay attention to motherboard revision. If you cock up and flash the wrong firmware, steppers won’t work, but you won’t break anything – simply flash correct firmware again to fix it. Please note that:
- with each flash attempt change the firmware name (firmware01.bin, firmware02.bin etc) the motherboard stores the name of the previously flashed firmware if you can’t flash new one, rename it
- don’t use spaces in the firmware name
Flashing it is as simple as unpacking the zip file, transferring the file over onto a microSD card and powering the printer with the card in. The boot will take a little longer, so don’t worry if your screen is dark for 10-20 seconds.
If all went well, you will notice extra menu available on your BL Touch enabled Ender 3 v2. Don’t level the bed just yet. Remove the glass bed for now to avoid damage. Run the home procedure while keeping the fingers on the power button. Just in case you missed something.
Now that you are sure, that the printer won’t slam into anything and cause damage, you can put the bed back again. Take a ruler and measure the distance between the BL Touch probe and the nozzle in the X-direction.
Run the homing procedure again. Go back to movement panel and move it in the negative X direction for the distance measured between the nozzle and the BL Touch probe. Navigate to movement panel and lower the Z-axis to 0.0. It most likely is hovering over the bed surface. In principle, you want to calculate the offset in the same spot where BL Touch was probing for the surface of the bed.
Adjust Z-offset by guestimating the distance needed to touch the bed. Z-offset is in mm, negative values mean that the nozzle will go lower. It’s time to rinse and repeat until you have a perfect bite between the nozzle and the bed (use a piece of paper to check it):
- home all axis
- move the X axis to position the nozzle over the tested spot
- lower the Z-axis to 0.0
- check the “bite”
- adjust Z-offset
- repeat until happy
Once you are happy, you can level the bed. Before you do so, save the settings to EPROM using the options provided. Do a cold level, then do it again with a warmed up print bed.
When to recalculate Z-offset
Unfortunately, using BL Touch adds one extra parameter to keep track of. For best results, it a good practice to recalculate the offset when:
- after hot end maintenance
- after nozzle change
- after changing the BL Touch tip
- once every 3-4 months to accommodate for the tip wear
Here are some actions that don’t require Z-offset calibration:
- filament change
- print bed surface change
- levelling bed
- adjusting print settings or e-steps
- adjusting belts, wheels and bolts providing the hot end cage wasn’t tampered with
Adding BL Touch leveling to Gcode
Pick a slicer of your choice. Mine is Cura (4.8 at the moment). Open printer manager and select your printer profile and open machine settings. You will see a window that lets you add a custom Gcode before each print.
Make sure the following code is present in the Starting Gcode section:
G28 ; Home all axes G29 ; Level bed
Save the settings and you are ready to go!
Ender 3v2 and Marlin 2.0
If you want to compile your own version of firmware for Ender 3 v2, check out these 2 guides in which I’m going to create the Marlin 2.0 version that supports BL Touch and filament runout sensor made from Z-stop. There is also a separate guide showing you how to build Marlin 2.0 firmware for your printer in detail.
Adding BL Touch to Ender 3 v2 speeds things up removes the hassle of precise levelling and gets your prints of the ground probably quicker. It’s not a maintenance-free upgrade, it comes with a certain complexity, and you are still required to keep the print bed levelled. As long as you nail that Z-offset distance, you should have fewer adhesion issues, failed prints and other bed relating problems usually associated with incorrect levelling. I’m using this as a must-have upgrade, so if you haven’t got your kit yet – here is one for Creality Ender 3 v2. Any questions? Let me know in this Reddit thread.