Add a BLTouch Sensor

Introduction

BLTouch is an automatic bed leveling sensor for 3D printers created by Paris Kyung-Yeon Lee (ANTCLABS).

BLTouch does not uses either optical, nor proximity (inductive / capacitive) sensor. It is controlled by hall effect, providing high precision and it works with any kind of bed material.

There two kinds of BLTouch sensors:

  • BLTouch Classic : The original BLTouch
  • BLTouch Smart : The latest version of BLTouch Smart is version 3.1.

BLTouch clones

These clones are poor imitations of BLTouch and are unreliable (by their design and because they use cheap components).

They are also violation of the Intellectual Property of Paris Kyung-Yeon Lee (ANTCLABS). Some are even labeled “BLTouch, inspired by ANTCLABS”.

Be sure to buy your BLTouch from an approved distributor or directly from ANTCLABS. For example:

To be sure you have a genuine BLTouch, test it on ANTCLABS web site.

ADVi3++ does not support and will not support clones.

Compatibility

BLTouch:

  • Since version 3.0, ADVi3++ supports BLTouch sensors (Classic and Smart except Smart version 3).
  • Since version 4.0, ADVi3++ supports BLTouch Smart version 3 and higher.

Since version 4.0, ADVi3++ supports BLTouch with the following printers:

  • Wanhao Duplicator i3 Plus
  • Monoprice Maker Select Plus
  • Monoprice Maker Select Plus “Euro”
  • Monoprice Maker Select Plus “UK”
  • Aldi Cocoon Create Touch
  • Aldi Balco 3D Touchscreen
  • Microcenter PowerSpec WanHao Duplicator I3 PLUS
  • Aldi Balco 3D Printer (*WARNING: the instructions are different than for other printers)

ADVi3++ DOES NOT supports BLTouch with the following printers:

  • Wanhao Duplicator i3 Plus Mark II (since there is already a sensor)

Installing BLTouch

Step 1 - Print a support

In the past, I have made some supports. But since then, other people have made better supports than mine so I recommend them:

Step 2 - Install the support and BLTouch

Install the BLTouch in the support and then install the support on your printer.

IMPORTANT: You must ensure that the tip of the BLTouch (when retracted) will never touch the bed:

It depends of the support you are using but also of the way your hot-end is assembled. If your nozzle is too high, you may have to dismantle the hot-end and move the position of the thermal barrier tube relative to the cooling block.

Step 3 - Soldering headers

For Wanhao i3 Plus printers and exact clones

IMPORTANT: If you have a Aldi Balco 3D Printer model HE180021, do not follow these instructions but the specific instructions in the next part.

For Wanhao i3 Plus printers (and exact clones), ADVi3++ uses the EXT and the Z-probe connectors on the mainboard:

However, these connectors are naked and you have to solder heads or connectors:

  • For the Z-probe connector, I have used a standard JST XHP connector

  • For the EXT connector, I have used a standard Dupont male connector head. You can find many kits (male and female) either in your local store or in Internet shops

Do not try to fix wires with some glue or something similar. It will not work. You have to solder. And yes, it is recommended to remove completely the mainboard from the case to solder heads. It is not that complicated. Put labels on ribbon cables to plug them back properly.

You will obtain something like that:

IMPORTANT: After soldering, be sure to clean the flux with, for example, isopropyl alcohol. Solder often contains some flux and it is conductive.

For Aldi Balco 3D Printer (model HE180021) only

The mainboard of this printer (version 5.2C), there is no Z-probe connector. So instead, ADVI3++ uses the Z-min. It also uses the EXT connector like for the other models:

image
Image credit: willsteeleuk

  • The EXT connector is naked and you have to solder heads or connectors. I have used a standard Dupont male connector head. You can find many kits (male and female) either in your local store or in Internet shops

  • The Z-min connector is currently used by the Z endstop micro switch. Unplug it. ADVi3++ use the BLTouch instead.

Do not try to fix wires with some glue or something similar. It will not work. You have to solder. And yes, it is recommended to remove completely the mainboard from the case to solder heads. It is not that complicated. Put labels on ribbon cables to plug them back properly.

Step 4 - Wiring

The next step is to wire the BLTouch sensor. You will need a cable of approximately 1.35 m with 5 wires. I have used a ribbon “rainbow” cable.

For Wanhao i3 Plus printers and exact clones

IMPORTANT: If you have a Aldi Balco 3D Printer model HE180021, do not follow these instructions but the specific instructions in the next part.

The wiring is the following:

BLTouch wire Connector Pin # Atmel Description
White Z-Probe 2 PA3 Z-endstop
Black Z-Probe 3 GND Ground
Orange EXT 1 PG1 Servo 0
Red EXT 10 VCC +5V
Brown EXT 9 GND Ground

Notes:

  • There is no need to change the jumper near Z-probe since the related pin (pin #1) is not used.
  • Contrary to version 3 of ADVi3++, you can remove your Z-min enstop switch. It is no more used.

For Aldi Balco 3D Printer (model HE180021) only

The wiring is the following:

BLTouch-connections%20HE180021

BLTouch wire Connector Pin # Atmel Description
White Z-min 1 PH3 Z-endstop
Black Z-min 2 GND Ground
Orange EXT 1 PG1 Servo 0
Red EXT 10 VCC +5V
Brown EXT 9 GND Ground

Step 5 - Flashing the Mainboard

You can now flash the Mainboard part as described in How to Flash. Be sure to flash the part with BLTouch support.

Step 6 - Testing

  • Power-on your printer.
  • The BLTouch has to light up (red). If it is the case, it means that the red and brown wires are correctly connected.
  • Go into the Tuning / Sensor:

  • Hit Self-test. The probe will deploy and stow alternatively until you hit Reset. If it works correctly, it means that the orange wire is correctly connected.

  • Go into Controls / Move:

  • Press on the Z up button to raise the head. You need to have enough space to touch the BLTouch tip with your hand or an object.
  • Be sure to have your hand near the power button of your printer.
  • Press on the Z home button. The printer will home its X and Y axis and then will deploy the BLTouch tip and move down the head.
  • Touch gently the BLTouch tip to stow it. If it does not stop the head from moving down, POWER DOWN THE PRINTER. It means that there is a problem with your cabling, probably the black and white cables.

Z endstop (min)

Contrary to version 3, ADVi3++ does not use the existing Z endstop. For Wanhao i3 Plus and perfect clones, you can choose to disconnect and remove it or to leave it. If you leave it, be sure that the bed does not go too far down and that it does not break the endstop.

For Aldi Balco 3D Printer (model HE180021), you have to remove it since it is replaced by the BLTouch.

Using BLTouch

Z-height Tuning

Note: You only have to do this from time to time especially if you move or disassemble parts such as the extruder.

  • Go into Controls / Leveling / Z-height:
  • The head with move to its home position (at the center of the bed)
  • The Z-height adjusting page is displayed:

  • Choose a Multiplier (0.04, 012, 1.00 mm) and press on the + or - button. It will change the position of the head along the z-axis with the selected Multiplier value. Adjust the height until a feeler gauge can move between the nozzle and the bed with just a tiny bit of friction. Personally, I am using a 0.1mm gauge.
  • Once it is done, press the Continue button.

Manual Bed leveling

The automatic bed leveling is good to compensate small deviations. Not big ones. So it is still recommended to perform a Manual Bed Leveling after the installation of a BLTouch. See Manual Leveling in the User Manual.

Automatic Bed leveling

You press Leveling / Automatic to start the automatic bed leveling.

  • It first home the 3 axes.
  • Then, it measures 9 points on the bed.
  • Once the measuring is finished, it displays the result in a grid:

  • Press the checkmark button to accept these measures and save them into memory and EEPROM.

G-Codes

The following G-Codes are involved in automatic bed leveling:

G-Code Name Description
G28 Auto Home Auto-home one or more axes. It does not disable bed leveling compensation, contrary to older versions.
G29 Automatic Bed Leveling ABL probes the bed and enables bed leveling compensation. It is required to auto home (G28) before.
M420 Bed Leveling State Get and/or set the enabled state of bed leveling compensation. For example, M420 S1 enables it.

Starting G-Code

Cura

Here is an example of starting G-Code for Cura:

G21 ; metric values
G90 ; absolute positioning
M82 ; set extruder to absolute mode
M107 ; start with the fan off
M140 S{material_bed_temperature_layer_0} ; Set bed temperature (no wait)
G28 X Y F6000 ; move X/Y to min endstops
G28 Z F1200 ; move Z to min endstops ; raise the nozzle
G28 X Y F6000 ; move X/Y to min endstops
M190 S{material_bed_temperature_layer_0} ; wait for bed temperature to reach target
M104 S{material_print_temperature_layer_0} T0 ; set extruder temperature (no wait)
G29 ; auto-leveling
G28 X Y F6000 ; move X/Y to min endstops, may disable bed leveling
M420 S1 ; enable bed leveling compensation
M109 S{material_print_temperature_layer_0} T0 ; set extruder temperature and wait
M300 P200 ; beep to indicate that the temp is reached
G1 Z15 F1200 ; raise to have room
G92 E0 ; zero the extruded length
G1 F140 E30 ; extrude 3mm of feed stock
G4 S2 ; Wait for 2 seconds
G92 E0 ; zero the extruded length
M117 Printing from Cura...; message

Simplify3D

Here is an example of starting G-Code for Simplify3D:

G21 ; metric values
G90 ; absolute positioning
M82 ; set extruder to absolute mode
M107 ; start with the fan off
M140 S[bed0_temperature] ; Set bed temperature (no wait)
G28 X Y F6000 ; move X/Y to min endstops
G28 Z F1200 ; move Z to min endstops ; raise the nozzle
G28 X Y F6000 ; move X/Y to min endstops
M190 S[bed0_temperature] ; wait for bed temperature to reach target
M104 S[extruder0_temperature] T0 ; set extruder temperature (no wait)
G29 ; auto-leveling
G28 X Y F6000 ; move X/Y to min endstops
 may disable bed leveling
M420 S1 ; enable bed leveling compensation
M109 S[extruder0_temperature] T0 ; set extruder temperature and wait
M300 P200 ; beep to indicate that the temp is reached
G1 Z15 F1200 ; raise to have room
G92 E0 ; zero the extruded length
G1 F140 E30 ; extrude 3mm of feed stock
G4 S2 ; Wait for 2 seconds
G92 E0 ; zero the extruded length
G1 X5 Y5 F2000; Move a little over the bed
M117 Printing from Simplify3D...; message

Can you explain what the multiplier do? Do I have to choose it depending on the thickness of the feeler gauge? So when I use a 0.04mm feeler gauge, I have to choose the 0.04mm Multiplier?

No, this has nothing to do with your gauge. (+) and (-) buttons move the head. The multiplier is the value in mm for the move.

1 Like

so does M420 S0 disable compensation?

@critterr42 With ADVi3++ version 4, yes.

1 Like

5 posts were split to a new topic: Aldi Balco 3D Printer (model HE180021) and BLTouch