MakerBot Print is our newest print-prepration software, which supports native CAD files and STL assemblies,
allows you to interact with all your printers via the Cloud, and many other exciting new features.

Download Now


Complete Ender 3 BL Touch Guide (Updated 06/13/19) - No cutting wires or buying adapters

by torsoreaper Apr 14, 2019
Download All Files

Thing Apps Enabled

Please Login to Comment

So, I have an Ender 3 and just installed a BLTouch kit from creality that is having issues (presumably because it is a v3.0). Per the comments, it seems like I need to download the latest TH3D and make whatever changes were made here (but leaving the V3.0 stuff), or I can take what was posted here but then add in the V3.0 stuff. Besides the Define V3.0, is there other items that would need to be added? Also, I assume I can use the Sketch>Export Combined Binary and then use that .hex file in the same way I flashed the firmware from the creality kit (ISP USB)? And finally, does anyone have the offset numbers for the petsfang bullseye left mount?

define X_PROBE_OFFSET_FROM_EXTRUDER -48 // X offset: -left +right [of the nozzle]

define Y_PROBE_OFFSET_FROM_EXTRUDER -10 // Y offset: -front +behind [the nozzle]

define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle]

// Certain types of probes need to stay away from edges

define MIN_PROBE_EDGE 48

setting the min edge value to the (positive) value of the largest of the two offsets makes sure that your probes are centered on the bed.

Also if youre using octoprint and youve already flashed a bootloader you can upload the hex file (the one WITHOUT the bootloader) directly from your web browser thru your pi with the firmware updater plugin.

Side note, I use this with 10mm lift between and after probes in the firmware so it perfectly avoids binder clips on glass beds.

How do you do that?

define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow

define Z_CLEARANCE_BETWEEN_PROBES 10 // Z Clearance between probe points

define Z_CLEARANCE_MULTI_PROBE 10 // Z Clearance between multiple probes

Look for these lines in your configuration.h. Note that im using mainline marlin and not th3d but they should be about the same if not identical.

For anyone using cura 3.5 or newer (that’s all I’ve tested) use this for your start gcode rather than simply adding g29.
Update 6/6/19: Now tested and still working thru Cura 4.1.0. Also working with Creawsome Mod.

; Ender 3 With BLTouch Custom Start G-code
M140 S{material_bed_temperature_layer_0} ; Set Bed Temp
M190 S{material_bed_temperature_layer_0} ; Wait for Bed Temp
G28 ; Home all axes
M104 S{material_print_temperature_layer_0} ; Set Extruder Temp
G29 ; Auto Bed Leveling
G92 E0 ; Reset Extruder
G1 Z10.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X0.1 Y20 Z10.0 F4000.0 ; Move to pre-start position
G1 X0.1 Y20 Z0.3 F4000.0 ; Move to start position
M109 S{material_print_temperature_layer_0} ; Wait for Extruder Temp
G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
G1 X0.5 Y200.0 Z0.3 F5000.0 ; Move to side a little
G1 X0.5 Y20 Z0.3 F1500.0 E30 ; Draw the second line
G92 E0 ; Reset Extruder
G1 Z3.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
; End of custom start GCode

Cura automatically writes in all of the {} fields from your profile settings and this prevents your hotend from leaking strings the whole time it’s probing

Thanks for adding this!

Also the calibration cube is not linked properly; it is linked as the mount

thank you for catching that error :)

This helped me greatly to setup my printer;

However I set the z offset to the .265 recommended by the other video and its perfect.. however when i Start a print it starts way too close to the bed and doesnt extrude at all. Its like its not using the offset setting once it does the auto level before the print.. Any suggestions? Ender 3 pro and BL touch v3

Yes. Assuming you did M500 after setting Z and the EEPROM is saved properly, your next best bet is to print a calibration pattern and use the microstep z function in your printer to adjust the Z on the fly as it prints. I like this one: https://www.thingiverse.com/thing:13053/files and if i feel like I need more I duplicate it, shrink it, and center it inside the original. Once you figure out from microstepping what your correct Z offset is, you can write that down and go back into the console and program it.

I dont' have my printer going right now but I think while the print is live you either go to control or tune and you will find the Z adjust setting.

Your obvious other option is to just try the Z offset at .25 or .24 and see if it works better.

Also don't forget you need to level the bed with G29 then M500 then M501 and add M240 S1 to your start G Code or else your nozzle could be fine but it will get too close or too far because it doesn't know where the bed is.

Bed Leveling Calibration test object
by bsutton

I just adjusted the mount up a little bit and now my z-offset is at 2.2 instead. Seeing if being further away lets it adjust better than where its at, when it was at -.26 it was just too close and nothing was printing and almost scratching my bed

I am using this code I found online and put in my cura settings before every print: I read somewhere else if you do a g29 you dont need to do a m240 s1? Is that incorrect?

; Ender 3 Custom Start G-code
M140 S{material_bed_temperature_layer_0} ; Set Heat Bed temperature
M190 S{material_bed_temperature_layer_0} ; Wait for Heat Bed temperature
M104 S160; start warming extruder to 160
G28 ; Home all axes
G29 ; Auto bed-level (BL-Touch)
G92 E0 ; Reset Extruder
M104 S{material_print_temperature_layer_0} ; Set Extruder temperature
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
M109 S{material_print_temperature_layer_0} ; Wait for Extruder temperature
; G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
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
; End of custom start GCode

So that G code may or may not work well. I think there is a firmware flag that stops it from heating and leveling so what will happen is it will heat up, then level and start cooling down, then heat up again.

Otherwise that looks like the stock Cura G code (I'm not on my computer at home so just going by memory). You could just replace your line that says G29 with M420 S1 and make sure you run G29, M500, M501 every once in a while. This method is a lot faster because unless your bed is changing constantly (which it shouldn't be), you really don't need to level it every time. If you're using yellow springs and you have them tightened down to a pretty reasonable tension, I don't think you need to level more than once a week. In fact, some people use locking nuts and washers or hollow little tubes to lock their bed in place once they get an ABL system set up (I haven't done this so not vouching for the method, just saying some ppl do it). Also, Since you don't need to see the console output you can even do the G29 leveling from inside Cura on the monitor tab so just remember to do it once in a while, quite easy.

Let me know how your printing goes, you really shouldn't be needing to adjust your bltouch height at all assuming you set the body to the correct height. I have added an image to the gallery to help have it make more sense. Once that is set just lock it in and keep tweaking your Z offset until it works properly. Here's an example of setting the Z offset using the printer menu, it's not the greatest video of the method but it's the one I remember seeing recently: https://www.youtube.com/watch?v=Hi7uPYJ_q-U&feature=youtu.be&t=611