Summary
BLTouch is a type of electronic component for 3D printer with built-in semiconductor Hall sensor or optical sensor.
BLTouch is an auto leveling sensor for 3D Printers that can precisely measure the tilt of Bed surface. It could work with any kinds of bed materials, such as glasses, woods, metals, and so on.
Features
BLTouch is implemented with a simple structure and high precision by using an innovatively designed solenoid and detector (Hall sensor or optical sensor). It aims for user convenience and enjoyable printing by adding many smart functions, such as self-test, alarm, alarm release & Touch Switch mode, Blue LED for servo signal indicating and Z-probe(Zmin) Testing.
Simple
BLTouch can be easily applied, since it has a small and simple structure. As BLTouch works as usual auto bed leveling sensor, Gathering information & setting up your firmware will be an easy task.
Smart
Self-test : The push pin operate two times in a test when the power is on.
Alarm : If a problem is detected during operation, BLTouch generates a signal readable by the 3D printer along with LED blinking. Depending on the alarm status, the 3D printer can not only halt or pause the 3D printer with preset G-codes but also perform actions such as BLTouch Alarm release, stow, etc. Please do not ignore the alarm signal and make good use of it. It can keep your 3D printer and BLTouch safe.
Wiring defect indicator : Blue and Red LED for indicating wiring defects.
High-precision
BLTouch’s Standard Deviation in repeatability is around 0.005mm, at that precise.
Logic Voltage Free(Open Drain Output)
3.3V / 5V logic voltage free(default).
Long stroke : ≒ 6.5mm
The stroke is up to 1.6mm longer than V2.0
Engineering plastic(PC) push Pin
The initially applied metal pin has been replaced to safer engineering plastic pin.
The engineering pin can safely protect your 3D printer from inexperienced operation and the bent protrusion caused by the shrinkage of the output during printed.
BLTouch vs. other sensor
※ The data above can be varied by assembling shape and other environments.
But assembled with the low quality 3D printer, we just get the value as 0.001~0.05mm. (It was the same BLTouch) Actually, around 0.05 is also not much problem at FDM type 3D printers.
■ Micro switch
BLTouch is equipped with all three function as micro-switch, servo motor and also servo arm.
Comparison would be pointless if micro switch sensor for bed leveling does not include the retraction and deployment method.
■ Inductive Proximity Sensor
At Inductive Proximity Sensors, to calculate the sensing distance for other application conditions the following parameters, which affect the sensing distance, must be taken into account. (For example : Variations in ambient temperature(Kθ), Different types of object material(Km), Size of the object to be detected(Kd), Variation of supply voltage(Kt))
Sa(assured sensing distance) = Sn x Kθ x Km x Kd x KtSn : nominal sensing distanceIf non-contacting Inductive Proximity sensor can be provided the same Parameter at whole working area, it must be the best auto bed leveling sensor for 3D printers.
But who can provide this?
Most of metal beds have various temperature(Kθ) areas at one bed, and its thickness(Kd) and object material(Km) are also various because of bolts, nuts, or supporters etc.
■ Solenoid Probe
Due to the built-in spring, it is necessary to apply a large current to the solenoid for a long time until probing is completed, so fatal problems such as heat generation and fire may occur. Hall sensor cannot be used because of the strong magnetic field of the solenoid.
■ BLTouch
Unlike general solenoids, BLTouch does not have a spring inside. Instead, a ferromagnetic core(hexagon wrench bolt) is provided at the top of the solenoid and a permanent magnet is provided at the top of the probe pin so that it can be deployed or stowed according to the current direction of the solenoid.
For the BLTouch solenoid current conduction time, the time necessary for the detection pin to reach the desired deploy or stow position, that is, about 100ms, is sufficient, and no current is required to maintain the position of the detection pin thereafter.
As soon as the probe pin reaches the stow position by the solenoid current, the permanent magnet at the top of the probe pin is attached to the ferromagnetic core (hexagonal wrench bolt), and the position of the probe pin is maintained without additional current.
In addition, after the probe pin reaches the deploy position by the solenoid current, the probe pin is maintained without additional current by its own weight.
Since there is no spring inside the solenoid, BLTouch is a very simple, safe and innovative product that can achieve its purpose with very little current and short control time, unlike general solenoids when deploying or stowing a detection pin.
Therefore, BLTouch must be installed perpendicular to the ground.
If BLTouch push-pin can't be perpendicular to the ground, BLTouch will put wrong signal out.
BLTouch History
Aug. 2015
discontinuance
( ~ Jan. 2016 )
discontinuance
( ~ Apr. 2016 )
discontinuance
(~ May. 2017)
BLTouch-Smart
The Latest Version
( May. 2017 ~ )
Genuine BLTouch has a QR code on PCB.
If there is no QR code on PCB, suspect it (All BLTouch produced after May 2017 includes QR code).
The fake BLTouch produced by Chinese immoral manufacturers (such as 3D Touch and TL Touch etc.)
is hurting many consumers.
Technology
BLTouch consists of Atmel ATtiny2313A, solenoid, and a push pin.
Innovative Solenoid : Ultra Power Saving
On idle state, while the push-pin is whether pulled out or retracted, there are no any electric current flowing on solenoid. Standby electric current in the whole device is below average of 15mA on working state,
but while the pin is moving, in a sudden about 100ms, under 300mA flows in the device.
Low power consumption even drops joule heating, and it prevents heat problem.
Hall Sensor : Free Bed material Selection Please see the BLTouch optical sensor version photo here.
BLTouch does not uses either optical, nor proximity(inductive/capacitive) sensor.
BLTouch is controlled by hall effect, providing high precision. Thus the bed material can be freely selected.
Optimized structure : Larger Build Size
BLTouch is a small, and technology-intensive device. Build size can be set larger than other existing auto bed
leveling sensor.
Easy to Use
BLTouch uses existing RC Servo motor signal intactly, so just plug BLTouch on the same pins after removing servo motor.
Control by G-code
Open Drain for Logic Voltage Free
In the BLTouch, an additional MOSFET is used to implement the Logic Free 3.3V / 5V (Open Drain) output mode.
Open Drain(Default) mode depends on the logic level of your control board, so if your board is a 5V logic system, BLTouch operates in 5V logic mode and 3.3V logic mode if your board is a 3.3V logic system.
Other than some special cases (for example, a controller board that has a Zmin input with a large capacitance), the Smart V3 is a drop-in replacement for a V2 (no firmware modification needed).
Signal Timing Diagram
1) If the red LED flashes to 80% duty during 3D printing, check the wiring of the red cable (poor wiring).
It may be necessary to repair or reinstall the cable.
2) if the red LED in BLTOUCH flashes at 80% duty right after the 3D printer is switched on,
please release it with S60 or S160.
It's a message to check Wiring because your 3D printer board is already sending a control signal to BLTouch before BLTouch power is turned on. Don't worry, your 3D printer and BLTouch work perfectly even if the Red LED flashes at 80% duty.
It is common for BLTouch control signals to occur at machine startup or a little later.
Z Probing
Probing with Push-pin Down(M280 P0 S10) : tS1090 / tS1090*:
Step 1 : Push-pin Down(M280 P0 S10)
Step 2 : Probing(keep M280 P0 S10)
Step 3 : Push-pin Up(M280 P0 S90) after triggered
Caution: An alarm may occur.
Probing with Push-pin Down(M280 P0 S10) : tS10 ← Recommended
Step 1 : Push-pin Down(M280 P0 S10)
Step 2 : Probing(keep M280 P0 S10)
Step 3 : After triggered, if probing is not finished yet, go Step 2.
Step 4 : Push-pin Up(M280 P0 S90)
Caution: An alarm may occur.
Probing with Touch Switch Mode(M280 P0 S60) : tS60
Step 1 : Push-pin Down(M280 P0 S10)
Step 2 : Touch Switch Mode(M280 P0 S60)
Step 3 : Probing(keep M280 P0 S60)
Step 4 : After triggered, if probing is not finished yet, go Step 3.
Step 5 : Push-pin Up(M280 P0 S90)
Caution: The push pin may not be completely down.
Probing with Touch Switch Mode(M280 P0 S60) : tS60 ← Recommended
Step 1 : Push-pin Down(M280 P0 S10)
Step 2 : Touch Switch Mode(M280 P0 S60)
Step 3 : Probing(keep M280 P0 S60)
Step 4 : After triggered, if probing is not finished yet, go Step 1.
Step 5 : Push-pin Up(M280 P0 S90)
Logic Voltage Conversion (writing to EEPROM)
Push-pin Correct position of Core (V3.x)
BLTouch-Smart V2.0 and later(Engineering plastic)
Engineering plastic pins are safer than conventional metal pins.
* If you don't use the BLTouch for long periods of time for shipping or other reasons, you may occasionally have to repeat deploy-stow by holding the pushpin with your finger.
Specification (Smart V3.1)
Except some boards(For example, a board consisting of a Zmin Pin with built-in large capacity Capacitor), Smart V2.x can be replaced by Smart V3 without firmware modification.
My board has a large capacitor in the end stop input circuit.
or my 3D Printer has an inductive sensor
Package List
1 X BLTouch(Smart V3.1)
Spare parts - for just in case something happens
(We do not provide spare parts and cable to 3D printer makers)
2 X Screw & Nut & Washer
2 X Spring for BLTouch Mounting
2 X Dupont Housing Shell 3Pin
2 X Dupont Housing Shell 2Pin
2 X Dupont Housing Shell 1Pin
10 X Dupont Terminal (Male & Female)
1 X Jumper Cap
Firmware Setting (e.g. Marlin firmware)
Please update the firmware in the following order:
Step 1: Copy the file below and overwrite at the Marlin folder. <== e.g. default
Marlin-bugfix-2.0.x\config\default\Configuration.h
Marlin-bugfix-2.0.x\config\default\Configuration_adv.h
Step 2: Look at the Configuration.h at your previous firmware and edit Configuration.h at Marlin.
Step 3: Check your 3D printer works well.
Step 4: Please install your BLTouch.
Step 5: Edit Configuration.h and Configuration_adv.h like below.
Please refer to other auto bed leveling setting documents ( Youtube etc. ).
Insert the following G-code into Slic3r or Cura
Logic voltage Free mode(Recommended) ← Both 3.3V /5V Logic are available
;When using Default mode, you do not need to declare logic mode.
M280 P0 S160 ; BLTouch alarm release
G4 P100 ; delay for BLTouch
G28 ; home
G29 ; auto bed leveling
If the nozzle is in contact with the bed after missing the trigger signal(A board with large capacity capacitor in end-stop input circuit, such as the Melzi).
; The first one mode declaration will last until power OFF or a new mode transition. ← (Only if the
; firmware does not support it yet)
M280 P0 S140 ← Only 5V Logic mode(Do not activate 5V logic on 3.3V logic system without 3.3V logic conversion)
G4 P2000 ; delay for BLTouch
M280 P0 S160 ; BLTouch alarm release
G4 P100 ; delay for BLTouch
G28 ; home
G29 ; auto bed leveling
Boards with large capacity capacitor in end-stop input circuit :
Melzi and some of the Creality3D, ANET board, etc.
(Select 1 if you have already removed the capacitor from your board)
e.g. Slic3r
Wiring
BLTouch can be operated in the following condition.
One I/O for control (Orange wire : PWM or Software PWM)
One I/O for Zmin(White wire : endstop / Z-probe)
GND and +5V power
Most Board provides its own servo pin, so BLTouch can be used connected to one of those servo pins.
As each servo pin has its own number, BLTouch will be controled with the servo pin number as following.
(Soldering and firmware update might be needed in rare case)
M280 P0 S90 ← SERVO0_PIN
M280 P1 S90 ← SERVO1_PIN
M280 P2 S90 ← SERVO2_PIN
e.g. RAMPS1.4 Wiring
Servo signal(orange wire) : D11 (SERVO0), Zmin (white wire) : D18 (Zmin endstop)
More Wiring
I can find a servo pin on my board. ☜ click here
RAMPS1.3/1.4, MKS-Gen V1.3, MKS-Base V1.4, etc.
I can not find any Servo pin on my board. ☜ click here
If your control board does not provide Servo Pin please change your code as below.
Please connect orange wire to the spare pin such as Endstops or Extensions pin (e. g: Xmax, Ymax, Zmax, etc.) and modify as following refer to pins_YourMotherboard.h.
MKS-Base V1.2, mini-Rambo, etc.
I can not find Servo Pin on my board and ☜ click here
#define SERVO0_PIN is not included in pins_YourMotherboard.h.
If your control board does not provide Servo pin, please modify as following. Connect orange wire to the spare I/O pin such as Endstops or Extensions pin (e. g : Xmax, Ymax, Zmax, etc.) and add following code to pins_YourMotherboard.h.
Sanguinololu1.3a, Melzi , Ender-3, CR-10, CR-10S(V1.1.3 / V1.1.4), Anet, FlashForge, Azteeg X3, etc.
32bit board ☜ click here
Smoothieboard, MKS-Sbase, BBP1S, Alligator, AZSMZ, STEVAL-3DP001V1, Duet, etc.
My board has a large capacity capacitor in the end stop input circuit.
or my 3D Printer has an inductive sensor
※ When replacing a conventional proximity sensor with a BLTouch,
install a jumper cap between the signal and GND if necessary.
BLTouch Extension Cable
If noise, etc. interference is expected, you should use an anti-interference extension cable(Shielded or Twisted Cable or Copper Shield Network etc.).
Shielded Cable
Twisted Cable
Rearrange the position of cables
If you need, you can rearrange the position of cables by tweezers or cutter like in the picture..
Rearrange for main board with 5P connector
Since black and brown are the same GND. Either can be removed.