This guide is for the original BL Touch Bed leveling probe. We recommend using the latest version as it is 3,3V compatible by default. If you are using the older version make sure to convert it to 3.3V output by following the BL Touch guide.


The inputs on the Kinetica G2C are 3.3V only. Connecting 5V devices may damage the micro Controller.


Turn of power to your board before attempting to install.


This guide will allow you to use the BL Touch to home Z and to do bed mesh compensation(recommended). An option to use the mechanical endstop switch for homing and BL Touch for mesh compensation is possible, a guide will follow.


When configuring the BL Touch it is easier to use the WEB Interface as it allow you to edit the files and send commands in one interface. 


Mounting the BLTouch


Mount the BLTouch following recommendations from the manual. Good rule of thumb is to mount the unit with the tip of the pin about 3 to 4 mm from the tip of the nozzle. You can slowly lower the hotend until the nozzle touches the bed and measure about 3 to 4 mm from the bed to the retracted tip of the BLTouch.


Wiring the BL Touch


The BL Touch has 2 sets of wiring connectors, the 3 pin for power (+ and -) and the servo pin and the 2 pin connector for the output.


Plug in the 3 pin connector to the Servo pins on the board as shown, make sure to orient the pins correctly.  Next connect the 2 pin connector to the PROBE pins Zin(white) and GND(black).


To verify that the wiring is correct, turn on your machine and the BLTouch will do a self test and deploy and retract the  probe several times. If your hotend is too close to the bed and prevents the probe from fully deploying the red LED on the BLtouch will blink indicating an initial test error.


Configuring RepRapFirmware to use the BLTouch


You need 2 new files on the SYS folder on your SD card, deployprobe.g and retractprobe.g. These files are in the latest SD card files on the Support Page.


You also need to add or edit these lines on your config.g in the SYS folder


; Z-Probe

M558 P9 H5 F120 T6000                           ; Enable Z-probe for BLTouch

G31 X-38.5 Y-19 Z0                           ; Set Probe trigger height, XY offsets

M557 X15:190 Y20:210 P5                         ; Define mesh grid, these values are for left side mounted BLTouch on Ender 3 


---------------------------------


The M558 command sets up the BLTouch as Z Probe, where P9 specifies the probe type (BLTouch), H5 specifies the Z dive height, F120 is the dive speed and T6000 is the travel speed between probe points. For more info on this M command go here. Gcode - Duet3D


The G31 command sets or reports the probe status, it also sets the offsets of the probe location. The X and Y offsets are distances of the probe tip from the nozzle tip. This allows the firmware to know where the approximate location of your probe tip. You get this by physically measuring the distance from the probe to the nozzle. Make note of the negative X and Y numbers, this means the probe is to the left of X0 and to the front of Y0. Make sure to input the correct values for your setup. The Z offset you can determine later while doing a test probe, this is the trigger height of the probe from the bed. You can set it to zero for now.  More info here, Gcode - Duet3D


The M557 defines the mesh grid to be used by the probe. These values are start and end ranges for the X and Y of the bed. These rely on the X and Y offsets on the G31 command to know where your probe is, adjust according to your bed size. The P5 defines the number of probe points on each axis, P5 will probe 5 points in the X axis and 5 points in the Y axis. Alternatively, you can use the S parameter to specify probe spacing. Example, M557 X15:190 Y20:210 S20 where it probes every 20mm (S20). Just be aware that the Y and X soft axis limits are active when probing, if the probe is placed too far to the left or too forward from the nozzle the firmware will automatically limit the probing points to prevent crashing the head unit.

More info for this gcode here, Gcode - Duet3D


Testing the BLTouch and setting your Z offset


Lift Z to about 10mm and start testing if the probe responds to commands. If you have a graphic LCD on a Creality machine you can go to CTRL then scroll to BLTouch menu and click on Deploy Probe and the probe should drop. Click on retract Probe to lift the probe up. 


To test using console commands M401 to deploy probe and M402 to retract probe.


Now do a test probe to see if everything is working. 

  • Home all axes and lift the Z to about 50mm or higher and set the X and Y so that the probe is well inside the bed area. 
  • Before sending the next command, test that the probe is triggering properly. Send the M401 to deploy the probe or do it on the LCD. Go to the main page of the WebControl to monitor ZProbe activity. You can find it on the upper right corner of the WebControl page. Flick the probe up quickly and release and see if the Zprobe changes from 0 to 1000 in value and the block changes color. This confirms that the trigger is captured properly. If not check your wiring.
  • Send a M402 to retract the probe or do it on the LCD.
  • Send command G30 S-1 to do a test probe. This deploys the probe and will lower the head.
  • Once it triggers and stops take note of the Z height on the LCD or the WebControl page. This is the Z offset on your G31 command on your config file in the Z probe section. Set it in your config and save.


Configure for homing Z and Bed mesh compensation


You will need to edit the config.g, homez.g and homeall.g files to fully use the BL Touch. Using WebControl to edit these files is highly recommended.


1. Config.g 

On the EndStop section of your config change the lines to look like these. This sets the probe as the endstop for Z.


; Endstops

M574 X1 Y1 S1                         ; Set active high endstops

M574 Z1 S2                              ; Set Z to use Probe


-------------------------


Also, make sure you made changes to your Z offset on the G31 from the previous testing using the G30 S-1 command. If your trigger height is say 2.20mm then set it to the following. The X and Y are distances from your probe to the nozzle, change to match your setup. You can adjust the Z offset later to increase or decrease your Z height, like if you need to use babysteps to adjust your Z height to improve first layer quality.


G31 X-38.5 Y-19 Z2.20                           ; Set Probe trigger height, XY offsets


If the firmware asks you to reboot the board after saving the config file click "No" and continue editing the rest of the files.



2. Homez.g

We need to add G30 and remove references for G1 homing to use the BL touch to home Z. Your lines should look like these.


G91                                         ; relative positioning

G1 Z5 F6000 S2                      ; lift Z relative to current position


; Uncomment these lines if using mechanical endstop for Z, comment out if using BL Touch/other probes

;G1 S1 Z-205 F1800               ; move Z down until the endstop is triggered

;G92 Z0                                  ; set Z position to axis minimum (you may want to adjust this)


; Uncomment these lines if using BL touch/other probes to home Z, comment out if using mech endstop

G90

G1 X120 Y120 F2000             ; put head over the centre of the bed, or wherever you want to probe

G30                                        ; lower head, stop when probe triggered and set Z to trigger height

G29 S1                                   ; Load the height map from file and activate bed compensation


------------------------------


The G29 S1 command tells the software to use the bed mesh map on file every time the printer is started or homed.


3. Homeall.g

Similar to the Homez.g file this also need to be edited to add the G30 probe command to home Z. Your lines should loke like these. Take note of the commented and commented out lines.


G91                      ; relative positioning

G1 Z5 F6000 S2           ; lift Z relative to current position

G1 S1 X-235 Y-215 F1800  ; move quickly to X and Y axis endstops and stop there (first pass)

G1 X5 Y5 F6000           ; go back a few mm

G1 S1 X-235 Y-215 F360   ; move slowly to X and Y axis endstops once more (second pass)

 

; Uncomment these lines if using mechanical endstop for Z, comment out if using BL Touch/other probes

;G1 S1 Z-205 F1800       ; move Z down stopping at the endstop

;G90                     ; absolute positioning

;G92 Z0                  ; set Z to axis minimum (you may want to adjust this)


; Uncomment these lines if using BL touch/other probes to home Z, comment out if using mech endstop

G90

G1 X120 Y120 F2000       ; put head over the centre of the bed, or wherever you want to probe

G30                      ; lower head, stop when probe triggered and set Z to trigger height

G1 S1 X-235 Y-215 F1000  ; move to X and Y axis endstops once more

G29 S1                   ; Load the height map from file and activate bed compensation


--------------------------------

The G29 S1 command tells the software to use the bed mesh map on file every time the printer is started or homed.


You may now reboot the board to apply the changes. Power cycle the machine.


Running the mesh compensation bed probe


The command to run the mesh bed probe is M29 but it is recommended to heat up your hotend and bed before doing the bed probe to ensure heat expansion of both are taken into account. There is a Mesh Compensation command in the LCD on the CTRL menu and there also a macro command in the latest SD card files on the support page. You can edit these files to suit your temperature range requirements.


To edit the mesh compensation macro, click the MACRO menu on the left side bar of the WebControl and right click EDIT on the "mesh _Level" macro. You want to change the M190 and M109 parameters. 


To edit the LCD menu mesh compensation temperatures, you will need to edit the files on a SD card manually using a PC or Laptop. Edit file named "meshcomp" on the MENU folder.


Run the mesh compensation to probe the bed, make note of where the probe points are at and edit the M557 line on your config file to adjust. Take note that the mesh compensation uses the axis limits, and not all points can be probed if hotend will go over the set axis limits. The bed height map is saved in the SD card and is activated for use. The G29 S1 command at the end of the homing files tell the firmware to use the generated bed height map every time the machine is used or homed.


To Manually run mesh compensation. Follow these steps.

  • Heat both bed and hotend to desired temperature.
  • Home All axes
  • Send G29 command (you can also run G29 with different parameters to save or run a different bed height maps. this is useful when using different printing temperatures or using different bed surfaces).
  • Turn off both bed heaters.


End of guide. 

Please email us for corrections or additions at support@panucatt.com.

Special thanks to Heath@reliabuild3d and Ken(wetzk) for awesome help.