top of page


BLTouch :: Auto Bed Leveling Sensor for 3D Printers

English          Japanese         Korean     

Genuine BLTouch has a QR code on PCB.



BLTouch is a type of semiconductor hall sensor and is an electronic component for 3D printers.

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.


Main functions and controls of BLTouch are the same as usual auto bed leveling sensor, consists of RC servo and micro switch. Thus, BLTouch can be applied on almost every board.

BLTouch is fulfilled with simple structure and high precision by using progressively designed solenoid and hall 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.


Self-test : The push pin operate two times in a test when the power is on.

Alarm : If a problem is detected during a self-test or operation, the LED indicator will flash.

Wiring defect indicator : Blue and Red LED for indicating wiring defects. 


BLTouch’s Standard Deviation in repeatability is around 0.005mm, at that precise.

         Engineering plastic(PC) push Pin

          Engineering plastic pins are safer than conventional metal pins.

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.

■ BLTouch 

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.

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.

BLTouch History

Aug. 2015


( ~ Jan. 2016 )


( ~ Apr. 2016 )


(~ May. 2017)


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.



BLTouch consists of Atmel ATtiny13A or ATtiny2313A(V2.2 and later), 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 Selection

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 


Signal Timing Diagram


     Z Probing

Probing with Push-pin Down(M280 P0 S10)

Step 1 : Push-pin Down(M280 P0 S10)

Step 2 : Probing(keep M280 P0 S10)

Step 3 : Push-pin Up(M280 P0 S90) after Zmin triggered

Probing with Touch Switch Mode(M280 P0 S60)    ← only Smart V2.1 and later

Step 1 : Push-pin Down(M280 P0 S10)

Step 2 : Touch Switch Mode(M280 P0 S60)

Step 2 : Probing(keep M280 P0 S60)

Step 3 : Push-pin Up(M280 P0 S90) after Zmin triggered

Internal 3.3V logic conversion 

If you want 3.3V Logic, please cut the copper line between the pad on PCB like this photo.


   BLTouch-Smart V1.0 Push-pin (Aluminium) 

BLTouch-Smart V2.0 Push-pin(Engineering plastic)

Engineering plastic pins are safer than conventional metal pins.

Specification (Smart V2.x)

※ ​BLTouch must be keeped perpendicular to the ground.

※ Additional power supply can be needed in case which your board does not supply enough amperage.

※ Electronic devices can be damaged or even destroyed if connected to the wrong side polarity.

※ The action as pulling/pushing hard the push-pin can make the BLTouch damaged and less accuratte.

※ If push-pin down error occurs, turn core 180 degrees with Allen-key so that the core is further inside the casing.

※ Self-testing for more than 10 seconds adversely affects precision sensors.

Do not activate 5V logic on 3.3V logic system without 3.3V logic conversion.

※ Board with large capacitor on end stop input circuit is not supported.

※ Depending on your type of 3D printer, you may need to remove or add some parts of the board.

※ If noise, etc. interference is expected, you should use a anti-interference extension cable(Shielded or Twisted Cable).

※ Selling price and specifications are subject to change without prior notice.

※ ​ My board has a large capacitor in the end stop input circuit.

Creality3D CR-10S Pro Wiring

 or my 3D Printer has an inductive sensor

Package List


1 X BLTouch(BLTouch-Smart) 

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

1 X Jumper Cap




     Insert the following G-code into Slic3r or Cura

M280 P0 S160 ; BLTouch alarm release

G4 P100 ; delay for BLTouch
G28 ; home
G29 ; auto bed leveling

e.g. Slic3r


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

Blue & Red LED : Please check wiring defects with Blue and Red LED( Smart V2.0 only ).


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.

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.

Creality3D CR-10S Pro Wiring

 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 a 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..

bottom of page