Anet A8 3D-Touch Mount

by OderWat, published

Anet A8 3D-Touch Mount by OderWat Feb 7, 2017
4 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps



Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

32326Views 1566Downloads Found in 3D Printer Parts


This is a mount for the Geeetech 3D-Touch / BLTouch Sensor for Anet A8 printers.

This design is meant for people which do not use an extruder cooling fan and heatsink.

(Both are not really needed as shown by multiple experiments of different users. Please no discussions about that ;-)

I included the Fusion 360 file which makes it easy to modify if needed.

The mount fits right onto the side of the extruder using the original (shorter) screws. It has little holes for the nuts of the sensor screws to make assembling easy. After assembling the sensor is very stiff connected to the j-frame. It will hardly move or bend on usage. I printed the mount with BDP (GreenTec) filament but I think normal PLA will do. The sensor distance should fit for the standard A8 extruder out of the box.

I also included some information on how to connect the sensor to the Anet motherboard.

The first two images show the sensor mounted to the extruder. The second two images are showing the "draft" wiring and the last three images show my final wiring.

It uses the "LED pin" which is an unused pin on the A8 (using the stock 5 button 2004 LCD). That is the third wire counted from below (where the red marker is on the cable). I simply spliced the cable and cut that wire. This will be the servo signal (yellow).

On the A6, you can use wire no. 7 and FW pin 29. I could verify that with the A6 display I have available.

The +5V (red) and GND (brown/black) are available at the z-end-stop connector as is the signal itself (white).

You can simply connect the black and brown wire of the sensor to the GND from the z-end-stop socket. This leaves you with 4 instead of 5 wires from the sensor to the board. On the first of the second two images you can see how I used some patch cables and a wire clamp to draft the connection at the board. In the second of the two images you can see the wiring at the sensor.

After everything worked well I have chosen an old usb mouse cable. Those have exactly 4 wires. I used green for the sensor, red for +5v, black for GND and yellow for the servo signal (originating from the LCD cable). I crimped a fitting connector for the z-end-stop socket and a single connector for the connection to the spliced LCD cable. I also soldered the other end of those 4 wires directly to the PCB inside of the sensor. Soldering is not needed and can be a pain. Beware not to destroy your sensor if you do it. You can see the result in the last three images.

Setting up SkyNet3D / Marlin (the firmware) is pretty straightforward. Besides the entries for the auto bed levelling you need to make the following entries:

#define BLTOUCH
#define SERVO0_PIN 27



I also used:



After mounting and uploading the new firmware you can test you sensor:

M280 P0 S10 ; pushes pin down
M280 P0 S90 ; drags pin up
M280 P0 S120 ; does selftest (pin up/down continuously)

M280 P0 S160 ; reset alarm

M280 P0 S60 ; switch triggering test mode
; move pin at the sensor up or down manually
M119  ; reports state of the endstop
; pin up (LED on) z_min should read TRIGGERED
; pin down (LED off) z_min should read open

If your sensor does not selftest but blinks directly or after some few alternating motions you need to adjust the screw in the top of the sensor. One of the allen wrenches which are part of the printer does fit right in. Lose the screw until the light went off, then fasten the screw until it is lit again. I needed some time to find the sweet sport. Using selftest and reset alarm until it worked well.

Finally you can try a G28 command. If everything is OK it will probe twice in the middle of the bed. The tip will go down and up again as soon it touches the surface of the bed. If not you need to check cables and settings.

To adjust the z offset I use the following easy and pretty failsaife procedure:

; preheat for working temperatures
(M502 ; optionally reset to firmware settings)
M851 Z0 ; reset any z-offset
G28 ; home all
G1 X110 Y110 ; move nozzle in center
M211 S0 ; disable software endstop
; now move your nozzle manually onto the bed such that it (strongly) grips paper.
G92 Z0 ; tell the printer that this is Z = 0
G30 X110 Y110 ; move the sensor over the center and let it trigger
; note what z position G30 reports, that, negated, is your z offset
M851 Z-1.23 ; register that z offset (here 1.23 as example)
M500 ; store those values into the EEPROM

You may want to do some G30 X110 Y110 commands to validate how well your sensor works. It should report the same values +/- 0.0x.

You can also enable Z_MIN_PROBE_REPEATABILITY_TEST in the firmware and use M48 L10 P8 V4 to let it test repeatability at the same point with a lot of fake movement in between probes.

There are occasions where the sensor after power on gives an error with the G28 command for no obvious reason. I found that the sequence:

M280 P0 S160 ; Reset 3D-Touch
G4 P500
M280 P0 S10 ; Pin out
G4 P500
M280 P0 S90 ; Pin back
G4 P500

Before the G28 command will reset the sensor in a way that it will alway (tm) work.

UPDATE: I added an alternative design "Distant" for the excellent "Mistral 2" cooling fanduct. This needs slightly changed firmware settings as follows:


Some links to more information:

Print Settings


Anet A8










I printed it topside down to get best stiffness. The model was adjusted to print without supports.

More from 3D Printer Parts

view more

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App
Comments deleted.
2 days ago - Modified 2 days ago

Ich habe da ein Problem mit der Firmware ich hoffe Sie können mir da noch mal helfen. Habe mein Anet A8 auf E3D V6 umgerüstet.
Wenn ich den Z Offset einstelle Triggert er mit G30 Y110 X110 nicht in der Mitte vom Bett
Mit G28 Triggert er in der Mitte und auch wenn ich die Nozzle mit G1 X110 Y110 in die Mitte Fahre steht die auch in der Mitte.
Habe folgende Werte eingetragen.

// Travel limits after homing (units are in mm)

define X_MAX_POS 250

define X_MIN_POS -15

define Y_MAX_POS 220

define Y_MIN_POS -10

define Z_MAX_POS 250

define Z_MIN_POS 0

// 3D Touch Sensor



// Set the boundaries for probing (where the probe can reach).





Die X_Probe_offset habe ich so hoch gesetzt damit er bei G28 in die Mitte fährt und abtastet.

Ich vermute mal ich muss irgendwo in der Firmware einstellen das die Nozzle jetzt ein stück weiter rechts sitzt.

Habe https://www.thingiverse.com/thing:2193695 und https://www.thingiverse.com/thing:2443459 verbaut

Anet A8 E3D V6 Bowden MODULAR X Carriage V4 *BEST ONE*
by Don1337

Hi Oderwat,

I want to mount a 3D Touch on a Anet A8 with a modded LCD (the one from the A6).
When you say: "On the A6, you can use wire no. 7 and FW pin 29. I could verify that with the A6 display I have available."
Where is located wire no.7 and FW pin 29?
There is the need to use both pins?

Has anyone made a tutorial video on how to do this? I am a complete noob, still trying to figure all this out.

Greetings makers!

Does anyone have the authors config file for this project? I have altered my own config.h with the lines posted above but the sensor does nothing when sending it commands.

I can't seem to get the probe to move at all on its own. If i push the pin in manually, it glows orange. If i pull the pin out manually, the orange light turns off. I ran a continuity test on all wires from the board to the sensor so i know its wired correctly.

Any help from anyone would be greatly appreciated! :)

Thank you and have a great day!

Disregard, I got it working by hobbling together some code. :)

Well, why don't you share it then, so others, like you before, can find a way to make theirs work as well?

Hi OderWat, I thought the "rear" mount is for mounting the sensor behind the nozzle, like the inductive ones. So I got this printed but it won't fit anywhere. Where is the rear mount going to be attached?

Jul 25, 2017 - Modified Jul 25, 2017

I'm a bit confused, which version I have to use, the facebook is the 2,3,2 fix 2 or these two other versions 2.4.5 or a version that is in your github

I was following your bitouch tutorial and the screen like the one you have on your website

I compiled the version 2.3.2 fix 2 and I have it in bitouch tests, I found this new information of some more current versions



Jul 19, 2017 - Modified Jul 20, 2017

Hello and thanks for the great turorial! I have a question regarding the wiring for the bl touch. So if one uses an anet a8 or similar but an full graphic display (lcd 12864) one has to use the 7th instead of the 3rd wire and has to define servo_pin 29 instead of servo_pin 27 in the configuration.h? Thanks and best regards!

what is the 7th wire? hmm

Thanks for the great tutorial on this! I thought I had everything wired up decently enough but apparently not. What controls the blue light? Mine won't stay on accept when I jiggle the wires. I can't tell which one is actually the culprit though. The bltouch doesn't respond to any of the M280 commands and just drives into the bed when a G28 is ran. Any ideas? Also, I can't enable the bilinear auto leveling. When a M420 S1 is ran, it says failed to enable bed leveling. If i enable linear leveling, it works fine.

Thanks again!

I redid everything with Skynet 2.3.2 and now everything is working fine. I had been trying with 2.4.4. I'm satisfied. Thanks again for all of your work!


The second image shows the mount on the left side of the bracket, closer to the nozzle. Is this too close to the heated element, or is it a safe distance? Also, is there and STL for that arrangement?

Well I use it like that (with PETG printed). It is the "rear" version which had 4 identical STL. I deleted three of them now. As this was a problem with uploading I guess.

Would this work with PLA, and how does that effect the Skynet instructions?

I am not sure if PLA will be OK. It tends to deform slowly even when the temperature stays below 60 degrees celsius and thats a no go for a sensor mount.

P.S.: I am not doing anything with SkyNet3D anymore because the Anet Changes are in the official Marlin firmware which makes SkyNet3D obsolete.

Jul 5, 2017 - Modified Jul 6, 2017

Habe noch eine Frage zu der Software.
Ist es möglich das er den Stepper für den Extruder mit weniger "Kraft" ansteuert ?
Ich habe ein etwas Krummes Filament und mit der Originalen hat er das ohne Probleme durchgedrückt aber jetzt mit der Marlin Version drückt er das Filament nicht weiter und irgendwann druckt er dann trocken.

Vielen Dank schon mal

Jul 4, 2017 - Modified Jul 4, 2017

Hallo OderWatt,
auf Bild #3 ist eine Halterung für die Montage des Lüfters vom Extruder zu sehen (mit Anet A8-Strift).
Gefällt mir ;) Hättest du netterweise einen Link? Vielen Dank.

Thank you so much for guide OderWat, installed easily!

I have a problem though and wonder if anyone had the same. In PronterFace using GCode BLTouch works great! I can G29 for bed level, all good! When I do a print off SD card, it does the levelling and then tries to move extruder down through the bed. I have to kill power to stop it.

What G-Code are people adding at the start of their prints?

Comments deleted.

I got everything up and running, I used your configurations but there is one thing I cant seem to figure out. How do I get the 3dtouch to try out all the corners of my bed? It now only auto homes to the center of the bed, but it does not check the other corners. Isn't this nessacery?

Jun 24, 2017 - Modified Jun 24, 2017

Klasse Arbeit und super support von dir, wenn es um Fragen geht!
Ich habe leider auch eine! Ich habe ein A8 mit dem A6 Display. Jetzt muss ich das 7 Kabel, ab der roten Markierung, abgreifen und dann folgendes in config.h ändern:

define BLTOUCH

define SERVO0_PIN 27 auf Pin 29???

Bin echt durcheinander.
Wenn ich Deine Config übernehme,muss ich ich lediglich das Display ändern, oder?
Vielen Dank!

Ich verwende SkyNet 2.3.2

Hi OderWat, I thought the "rear" mount is for mounting the sensor behind the nozzle, like the inductive ones. So I got this printed but it won't fit anywhere. Where is the rear mount going to be attached?

Ich wollte mein Anet A8 auch bald mit den Sensor ausstatten. Daher bau ich mir gerade ein kleinen Adapter für das Display Kabel um es nicht zu zerschneiden und damit man den Sensor besser anstecken kann.
Hoffe es kann mir jemand helfen und zwar würde ich gern wissen welcher Pin vom LCD Stecker Ground ist. Dann könnte man den 3er Stecker mit Weiß/Rot/Braun belegen der direkt am Z Endstop dran kommt und den 2er mit Orange/schwarz, für den Schwarzen würde ich dann Ground vom LCD raus legen bei den Adaopter.

Hi there Oderwat
First of all, thanks for all your great jobs. I had this sensor working on my anet a8 following your instructions, but I only get this lately.
-G28 Homes X and Y, but won't try to home Z
-G29 obviously asks to home Z first.
-Tried adjusting the screw, no luck
-Specific bltouch commands such as release alarm, pull the probe, etc... won't work.
-Reflashing firmware won't solve the problem (there's no reason to think it would, since it had no changes before it started failing).
-Checked the wiring, no problems spotted.
-All the steps above have been tried in 2 different BLtouch sensors, and both do the exact same thing.
Hope you can help me, I'm about to throw the whole printer outta the window.

Jun 19, 2017 - Modified Jun 19, 2017

hi. if i change



for the distance mount i´ll get an error:
The given RIGHT_PROBE_BED_POSITION can't be reached by the Z probe.
where can i fix this issue?

Well you can't reach 200 with the probe as it would be X at 226 and I guess you have a 220 bed. You need to lower the right probing location.

ahhh. okay. thanks.
i have used your locations and parameters from the details.

Not really.. there the X_PROBE_OFFSET_FROM_EXTRUDER is -20 which is a "just still fit". But anyway. Should be an easy fix to make.

ups.. sorry.. my bad. I spotted the problem! Will fix that in the description!

Poor OderWat, being bombarded with a million questions!
I just wanted to thank you. My 3d touch is working flawlessly. I appreciate all of your effort!

Thank you OderWat for all the work you put in on this...

All the parts arrived and I did/redid/replaced: new hot-end, mounts, rear mount, x-carriage, bearings, Skynet3d firmware.....this afternoon. it all works as it should.

I am having a little trouble telling the firmware I want the item being printed to be "back" on the Y axis - the X axis is very close to center but it all works ......

Thank you again OderWat

Jun 6, 2017 - Modified Jun 6, 2017

Hello OderWat,

Thanks for your post.
I've mounted my BLTouch with this support https://www.thingiverse.com/thing:2334154. My Anet is Flashed in 2.4.4 with your last configuration file. I want to calculate my Z offset following these commands

; heat for printin
M851 Z0 ; Z-Offset to 0
G28 ; Homing in middle of bed
G1 X110 Y110 ; move nozzle to center
; move nozzle onto paper (gripping)

But I can't move down the nozzle :
G1 Z0 F100
doesn't work.

What am i doing wrong ?

Anet A8 BLTouch Holder by jeanmicheld59 remix

I guess you need to disable software endstops before you can move the nozzle into - direction .. I will add that to the procedure listed

M211 S0 ; disable software endstop

A new more question OderWat.
At the beginning of the print, BLTouch start touching down 3 times in a front line of bed and on the 4th it stop working, nozzle go down and try to pass through bed.
Do I use a specific Start G-code instructions instead of G29, change something in configuration.h file ?

Nope .. it just means that your BLTouch is not working good enough. Try to adjust the screw and make sure the selftest does continue endless.

Thanks a lot. It's working now :)

i can´t find the "#define SERVO0_PIN 27" parameter in your repo. is it still in use?


Can you send me your configuration.h please. I have an Anet A8 with a BLTouch and your mount printed but I can't make it work.

[email protected]

Thank you OderWat !

I've just uploaded the firmware on my Anet A8 5 buttons. First of all, I've a strange issue : my LCD is just showing 2 white solid lines but it is not a big problem cause I manage my printer with a raspberry pi (Octopi).

So I decide to find my Z offset after all. I try to did it your way but I encounter a problem here :
"G1 X110 Y110 ; move nozzle in center
; now move your nozzle manually onto the bed such that it (strongly) grips paper."

When you say "manually" do you mean with the screw, or disable the stepper and move the Z axis or with moving the nozzle with G-code ?
I tried to move the nozzle with G-code with "G1 Z 0" and try to put the nozzle on the bed. I've done this with skynet firmware 2.3.2 with a negative value but, apparently, with this marlin firmware I cannot go under Z 0, for example "G1 Z -2" do noting...

I think I'm missing a point, please can you help me ?

I'm sorry for my english, I try my best but I'm french :)


I can answer partially to my own question for the Z offset, I find it in the comment bellow... sorry about that
To go under 0 we must use "M211 S0".
So to have the Z offset :
; preheat for working temperatures
(M502 ; optionally reset to firmware settings)
M851 Z0 ; reset any z-offset
G28 ; home all
G1 X110 Y110 ; move nozzle in center
M211 S0 ; disable software endstop
; now move your nozzle manually onto the bed such that it (strongly) grips paper.
G92 Z0 ; tell the printer that this is Z = 0
G30 X110 Y110 ; move the sensor over the center and let it trigger
; note what z position G30 reports, that, negated, is your z offset
M851 Z-1.23 ; register that z offset (here 1.23 as example)
M500 ; store those values into the EEPROM

Now I have to figure out why my LCD screen is just showing always 2 white line...


Most likely you have selected the wrong display! The white lines show up if the display is not initialised at all.

Jun 4, 2017 - Modified Jun 4, 2017


Can you help me? I'm trying to install 3DThouch on my Anet Stock Board. I already flash the Skynet and install the sensor. The probe rises up and down normally, but the Z endstop is always engaged. I have already modified the "#define Z_MIN_PROBE_ENDSTOP_INVERTING false". My Skynet is a little diferent that yours. I followed this video "https://www.youtube.com/watch?v=l2B9lNi8LHE&t=137s&spfreload=10".

It is not "my" Skynet.. it is the official Skynet3D. I don't want to spent time with other releases, neither modifications or others than the newest in GitHub.

Is this the only way to wire the 3D-Touch sensor, or is there a way to wire it without messing with the LCD screen wires?

Well, you should be happy that it works at all :). You can solder to the PCB off display or board. You could design an adapter which goes in between board or lcd connectors and sockets. In the end the presented way is the easiest way I could figure out.

Hmmm okay. I just got my 3D Touch sensor and I'm trying to figure out how to wire it. So far your instructions are literally the only thing I could find online (other than the terrible "official" instructions).


hab heute den Sensor installiert. Verkabel ich den so wie angegeben, blinkt er nur. Vertausche ich GND und Z Min, macht er kurz nen Selbsttest, also zieht 2 mal ein und aus, und bleibt dann drin, mit der LED an.

Allerdings reagiert der Sensor nicht auf Kommandos. Wenn ich von Hand den Pin bewege, ändert sich zwar der Status der LED, aber M119 zeigt immer open an. Hab alle laut dieser Anleitung gemacht, lediglich mit anderen Offsets wegen nem anderen Mount.

Zu Verkabelung kann ich so nichts sagen. Der Selbsttest ist schon ok aber was GND mit Z-Min vertauschen zu tun hat erschliesst sich mir da nicht. Ich würde erstmal nur orange/rot/schwarz anschliessen. Das sollte den Selbsttest machen und dann das "Servo" mit den M Befehlen ans Laufen bekommen. Damit muss er dann den Pin bewegen (M280 P0 S10 / M280 P0 S90). Dauertest (M280 P0 S120). Wenn gar nichts passiert, stimmt entweder die Verkabelung mit dem Display Pin nicht, oder die Firmware ist nicht korrekt konfiguriert. Zum M119 musst Du auch beachten, dass Du den Status nur bekommst, wenn Du den korrekten Test modus aktivierst (M280 P0 S60). Ansonsten zeigt M119 immer "open". Völlig egal was Du am Pin rumspielst.

My BL Touch came with a resistor. Is it necessary to install it and if so, where? I guess it's a 'pull up' resistor for the output of the sensor.

The Anet board contains a pull-up resistor. I think you can ignore it.

Thanks very much for the prompt reply! I'll start looking at the software tomorrow. Wiring done!

I am getting an error after adjusting configuation.h file is keeps saying

error "You must enable either Z_MIN_PROBE_ENDSTOP or Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN to use a probe."

What do i need to do?

sorry posted under my sons account

Well you need to enable one of them :)

I did and then it gives me a pin is not defined or another error

May 20, 2017 - Modified May 20, 2017
OderWat - in reply to jonathonarkenberg

Well, you need to follow those errors until none is left. Make sure you use the latest SkyNet3D release and Anet Board from GitHub.


Sorry for bothering you so much, Firmware update worked to make everything operational but every time I use G28 it homes everything and does not center xy before moving z. What might I be missing in the firmware setup?

Thanks for the help and it works great!

Good job! :)

Will try the new skynet version. I am very new to updating firmware so fingers crossed.

Thanks OderWat. Your skynet version worked flawlessly. I just had to change the screen and add sd support back. Wonderful work!

Thank you for this addtition. Forced me to learn a lot about the F/W and workings of the printer. Working great.

Thank you so much for your instruction. In the process I was able to learn much more about the firmware side of the printer.

First of all thanks for at great piece of software and detailed mounting instructions!

I'm having a bit of trouble moving the Z-axis down enough for the nozzle to drag on a piece of paper. After preheating, "M851 Z0", "G28" and "G1 X110 Y110", I can only move the Z-axis down to ~2 mm. of clearance. Any hints would be appreciated. I'm using SkyNet3D 2.4.3.

What limits moving it further down?

The Z axis won't move below 0 which might be a Z limit set by the preceding "G28"?

; heat for printin
M851 Z0 ; Z-Offset to 0
G28 ; Homing in middle of bed
G1 X110 Y110 ; move nozzle to center
; move nozzle onto paper (gripping)
G92 Z0 ; define as 0 for Z
G30 X110 Y110 ; does probing in the center
; Z-offset is what G30 reports (negativ)
M851 Z-1.23 ; what G30 repots 1.23 in example
M500 ; write to EEPROM

The "; move nozzle onto paper (gripping)" step is the issue. The firmware doesn't let me move the nozzle below 0, i.e. negative, which is required for the nozzle to grip the paper.

Please try to disable endstops "M121" at that point ... if that does not work give it some room with "G92 Z10". How do you try to move the nozzle?

May 15, 2017 - Modified May 15, 2017
lassebm - in reply to OderWat

I found the issue to be the software endstops which can be disabled with "M211 S0". Thanks for the hints!

Puhhh, ich komm irgendwie nicht weiter und brauch mal Deine Hilfe...

Hab den BLTouch wie Du beschrieben hast verbaut, klappt auch ansich alles.
Test vom Sensor läuft erfolgreich, triggern tut er schon mal richtig.

Ich habe nur eine andere Mount verwendet, und zwar diese hier:

SkyNet 2.3.2 mit eigener angepasster Konfiguration.
Leider funktioniert bei mir gar nix :( Bei G28 fährt er mir am Rand runter, bis ins unendliche...
Der fährt bei mir nicht mal mittig aus, an G29 ist erst gar nicht zu denken...

Und was ist da die neuste Firmware von SkyNet, die auf dem Anet A8 läuft, vor allem mit BLTouch?
Überall liest man etwas anderes, weshalb ich mich gar nicht rantraue...

Anet A8 3dTouch rear mount
May 12, 2017 - Modified May 12, 2017
OderWat - in reply to matthmu

Benutzte einfach mal meine eigene Config von https://github.com/SkyNet3D/Marlin/commits/SkyNet3D-Oderwat .. das ist auch gleichzeitig die neueste die Du bekommen kannst, denn ich bin deren Maintainer. Du solltest dann auch das ANet Board von hier nehmen: https://github.com/SkyNet3D/anet-board ... in meiner Configuration.h musst du aber dann "#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER" aus und "#define ANET_KEYPAD_LCD" ein kommentieren. Da ich vermute, dass Du das original 5 Knopf Display hast.

Die jeweils neueste SkyNet3D Firmware gibt es immer hier:


Wobei der OderWat Branch praktisch immer genau diese mit ein paar Config Änderungen für meinen Drucker ist. Dazu gehört der BLTouch und das RepRap Discount Display, die ich hier in meinen Things habe.

Von dem "rear Mount" kann ich ausserdem nur abraten, da er aufgrund der Achse höhere Abweichungen als das anbringen auf der gleichen Seite bringt. Das ist aber ein anderes Problem.

May 12, 2017 - Modified May 12, 2017
matthmu - in reply to OderWat

Danke soweit, ich fummel mich grad durch...

Ich bekomme aber bei deiner Config den Fehler "'ABL_GRID_MAX_POINTS_X' was not declared in this scope"?
Das mit dem Display habe ich bereits umgestellt, ich muss auch noch den Abstand zu meinem Sensor anpassen.
Aber kannst Du mir verraten, was es da mit diesem Fehler auf sich hat?

May 12, 2017 - Modified May 12, 2017
OderWat - in reply to matthmu

Du kannst nicht "nur" die Configuration.h nehmen. Das ist SkyNet3D 2.4.1, da gibt es sehr viele Änderungen zum letzten Paket Release der SkyNet3D Firmware. Ich meinte eigentlich "benutzte die Version und übernehme erst mal meine Config :)".

Dachte ich mir schon irgendwie, aber wie bekomme ich die 2.4.1 denn auf den Drucker? Gibt ja irgendwie keine arduino Datei, oder bin ich blind? Ich check's nicht, habs bislang immer via Arduino geflasht... :-/

Da ist doch "Marlin.ino" drin?

Ah, ok, habe ich übersehen. Scheint nun zu laufen, mit Deiner Konfiguration. Aber sag mal, ist es normal, dass es beim Bootvorgang vom Drucker nun Skynet 1.1.1 anzeigt? lol

Der zeigt was man konfiguriert (version.h) :) und ich hatte da eigentlich SkyNet 2.4.1 und darunter Marlin 1.1.0-1 machen wollen aber es dann vergessen :-) mache ich demnächst mal rein.

Letzte Frage noch: Was ist, wenn der BL Touch nur anfangs am blinken ist und sich danach plötzlich gar nichts mehr tut? Hab gerade eben alles neu verkabelt und nun habe ich das Problem, gestern lief alles noch. Mag mir nun ungern 22 Seiten aus dem Forum durchlesen :-/

Comments deleted.

Thank you so much! finally got it sorted. There are NO videos on how to wire this probe up to the board properly!! Someone should remedy that!

Yeah. My part is more the figuring out what to do... having that streamlined is something which bores me to death :)

Has anyone tried printing ABS without the fan? Wouldn't the higher temps for abs without the fan clog the throat? It's my understanding that the fan is there for the purpose of cooling down the throat Couldn't you possibly just use this mount with a bracket like this http://www.thingiverse.com/thing:2290361 and use longer M3 screws to attach it all together?

Anet A8 Extruder Fan Modification V2
by hadoko

Well I print PETG with 240 degrees of celsius very often. I refuse to print with ABS for environmental and personal health reasons. I do print with flexible filaments which are prone to go wrong if the tube gets hot. Also without any problem. If you consider that ABS has a much higher melting point than PLA there should be problems with PLA first.

I actually never heard from anybody having melting material inside the throat who mounted it the right way around (teflon tube down) and had a sealed connection to the nozzle itself. I have the fan mounted such that it blows onto the j-frame and motor chassis to transport the heat away from the construction. It works without the fan too but it gets warmer over time than with the airflow atop.

I got into many arguments about this topic in different communities. Everybody who tried it, agreed with me that it works but there are still people which insist that it "should" or "would" not work shrug.

Thanks a lot for the mount and the brilliant wiring/configuration instructions, without them I would have been totally lost :) After having to tinker around with the sensor itself a bit and some head crashes due to my very own mistakes I'm now one happy auto leveler ;)

Nice to read it works for you! Have fun!

i have installed it and have tested the firmwear seems to be working
i am using a anet a8 with marln_skynet v 2.3.9

in the display on printer i get the message stopped with flashing ? marks at x ,y, and z
i am using the stock 5 button display

when i try to do a home
this is what comes up

< Error:STOP called because of BLTouch error - restart with M999
< X:-33.00 Y:-10.00 Z:10.00 E:0.00 Count X:-3300 Y:-1000 Z:4000
< echo:Home Z first
G28 Z0
< Error:STOP called because of BLTouch error - restart with M999
< Error:Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)
< X:-33.00 Y:-10.00 Z:10.00 E:0.00 Count X:-3300 Y:-1000 Z:4000

i have tried the M999 but nothing happens

can you please help me with this i would love to be able to print again

thank you so much for your tine on this

Did you manage to get it working? having the same issue...

Jun 5, 2017 - Modified Jun 5, 2017
mario3979 - in reply to iRazoR


You have a solution, I have exactly the same problem ?

I tested:

M280 P0 S160 ; Reset 3D-Touch
G4 P500
M280 P0 S10 ; Pin out
G4 P500
M280 P0 S90 ; Pin back
G4 P500

goal it is the same, nevertheless I arrive made up and down the pine

The error is caused by BLTouch because state is triggered all the time. I Had the Signal Pin and the Pin for Z switched which caused my Problem. Now everything ist working.

I just reversed the Z min endstop and the signal but the problem is the same

Did you Check the Status with M119? You can also Just Connect the two Z-Min Pins with a Jumper to See First if the BLTouch is moving or not

Send: M119
Recv: Reporting endstop status
Recv: x_min: open
Recv: y_min: open
Recv: z_min: TRIGGERED
Recv: ok
Send: M105

connect Z with +5v ?

No you have to Connect GND und Z-Signal.

on the sensor or the moatherboard ?

Of Course in the Ramps Board... You want to Tell Ramps that the contact is ok so it doesnt Show that error anymore. After that you can Test if the selftest ist working or not. If Not Check your cables again and the Firmware settings

Send: M119
Recv: Reporting endstop status
Recv: x_min: open
Recv: y_min: open
Recv: z_min: open

Comments deleted.
Jun 5, 2017 - Modified Jun 5, 2017
OderWat - in reply to mario3979

Make sure you test M119 after sending "M280 P0 S60" because if you don't it will not change it's state when you move the pin manually. Besides that, the M119 needs to show "open" for all 3 end stops always but at least after you reset the 3D-/BLTouch with "M280 P0 S160". This is independant from the pin position. Make 100% sure you have "#define Z_MIN_ENDSTOP_INVERTING true" and "#define Z_MIN_PROBE_ENDSTOP_INVERTING false". Anything else is wrong and if it does not work go back to check your wiring / hardware. Btw M119 without setting to test mode report Z_min: TRIGGERED for an error with the device (blinking in that case) too. So the ultimate first test is to check if "M280 P0 S120" does a correct (continuing) selftest with the pin going up and down about once per second.

If I connect the signal pin with the GND directly on the motherboard and I make M119 I have:

Rec: x_min: open
Recv: y_min: open
Recv: z_min: open

If I disconnect the bridge and I remake M119, I have:

Rec: x_min: open
Recv: y_min: open
Recv: z_min: TRIGGERED

I checked the configuration of skynet, it is OK, I have "#define Z_MIN_ENDSTOP_INVERTING true" and "#define Z_MIN_PROBE_ENDSTOP_INVERTING false".

If I reset alarm, then M280 P0 S120, the pin goes down, then goes up and the sensor goes into alarm (blinks) until I again M280 P0 S160

I wonder if my sensor would not be HS...

Check my description. There is a link about how to fix the blinking (hint: adjust the screw... I even got best results when replacing the screw with another (more massive) one).

I have already reread your description (which is well done in passing), but precisely I can never correct the blink even the screw out.

More massive in length or in width?

I used a normal screw after I had problems. See this http://snpy.in/rcP0LW

Well. I wrote everything I know into the article. Did you do the test procedure? Did you read the links I provided? There is nothing I can do for you.

Comments deleted.

any chance to talk to you on phone about the trouble i am having
i have ben trying to get this to work for over a week i just cant get it
there are so many errors and they are listed in red very hard to read
sure could use your help


Nope. just using my skynet version + configuration, the anet-board and the current arduino ide should work. I am not going to give any more support. This took to much of my time already.

I'm just trying to setup the wirering for my Anet A6 printer. But I'm unsure now where to connect the Orange cable (control signal) to the anet a6's cable for the control knob. is it now the 3rd cable from red or the 7th ?? Or can someone refer me to a site where there's explained how to wire the Touch to a Anet A6 ???

Thanks for the reply ahead

"On the A6, you can use wire no. 7 and FW pin 29. I could verify that with the A6 display I have available."

FW pin 29 is the referal of the pin on the socket on the board right ? so simply wire 7 of the control wire of the screen, right ?

May 6, 2017 - Modified May 6, 2017
OderWat - in reply to Stardust1

Well. Yes. Pin 29 is the pin number to be used in the firmware at compile time.

Hello OderWat. Would it be possible for you to make a video on how to wire the bltouch to the mainboard? it would be great.

Nope :) But maybe somebody else.

May 5, 2017 - Modified May 5, 2017

Thanks for your designs.

I have an issue and I hope you can helpme!

When the anet reboot the xyz are blinking to '?' this is normal? Check

The sensor I think it's OK since when the anet start it gets out, gets in, gets out and in again, am I correct about this?

Please check the video below where I can't make anything with the sensor it is not responding to commands.

Check for all details https://youtu.be/E4oKxGu_WGo . Thanks in advance!

I apologize if these are stupid questions...

You stated "Besides the entries for the auto bed leveling..." What are those exactly, or rather, I assume there are instructions somewhere. Is there a particular Youtube video or pdf somewhere. Nobody seems to exactly set up the firmware exactly the same (I'm using Skynet 2.3.2 fix 2)? Or do you just mean uncommenting auto bed leveling to allow it to function?

Where did you #define SERVO0_PIN 27? I searched your configuration.h provided on Github, but I don't see it anywhere, nor do any of the videos I've watched mention it.

Thank you so much for everything!

Well, you can check my config here:


There is also SkyNet3D V2.3.9 available as pre-release here: https://github.com/SkyNet3D/Marlin/releases


i noticed three variants of the mount. may i have the offsets for them?

I don't have them noted. Measuring them yourself is quite easy though. I usually use a sheet of paper and mark the two positions with a pencil.

Thank you sir. Excellent idea

Hi OderWat, what about the free J3 slot? Isn't it possible to "route" the control signal to one of these pins instead of using the LCD?

Probably if you do not use the SD Card slot. Afaik they are not freely available otherwise.

Apr 28, 2017 - Modified Apr 28, 2017

Hello OderWat - would you happen to have a copy of your configuration.h file. I followed your steps and i'm having errors based on the Z_MIN_PROBE_PIN and Z_MIN_PROBE_ENDSTOP lines and would like to compare line by line what's different between mine and yours. I'm using the following mount http://www.thingiverse.com/thing:2188971

Apr 28, 2017 - Modified Apr 28, 2017
OderWat - in reply to miuliani

The current version of SkyNet3D / Marlin I am using with the configuration to my Anet A8 printer is always available here: https://github.com/SkyNet3D/Marlin/commits/SkyNet3D-Oderwat (I am also maintainer of the SkyNet3D Anet port btw).

A little note about the mount you are using: I don't think it is a good idea to mount a probe on the backside of the J-Frame. Mostly because if your X linear rods are not 100% over each other you get a tilt into the jframe which will be bigger if you mount the probe on the backside. This is because it will go up when the other side goes down and vice versa.

Hi OderWat, I have a question. Everything is running fine. But when I start to print the nozzle is about 1mm above the bed and therefore it doesn't work. Did I miss anything? Do I have to set this offset somewhere?

Yes, as with every sensor you need to specify the Z-Offset. Either in the menu (Control -> Motion -> Z Offset or by issuing M851 Z-1.0 (in case of one mm). Don't forget to store it into the EEPROM by issuing M500 afterwards (or using "Store Memory" from the menu).

Hmm I did that. There's always a small offset. Right now im manually trying to find the right offset. Set offset -> Start print -> Repeat ;)

Apr 10, 2017 - Modified Apr 10, 2017

Question. I have wired it up and made the edits under the auto bed leveling, all tests perfectly after running through your test script but when I G28 it, it homes the x, the y, and the z but it crashes down off the bed? Any ideas?

Did you ever figure this out? I have a similar issue.

Hi OderWat,
thanks a lot for your flawless description! my 3dtouch is working like a charm on my anet.


Hello orderwat, a colleague to install your software, uploads well and all corresto, although when you set the z offset, in a bl touch, everything is correct, but at the time of sending an M119, after the final M500, Returns the following:
<Reporting endstop status
<X_min: open
<Y_min: open
<Z_min: open
But at the time of testing the sensor, everything appears correct and trigered. any ideas?

I think thats quite normal. The sensor just triggers with a short impulse normally. To test it "like a switch" with M119 you need to set it to switch triggering test mode. I describe this in the description.

M280 P0 S60 ; switch triggering test mode
; move pin at the sensor up or down manually
M119 ; reports state of the endstop
; pin up (LED on) z_min should read TRIGGERED
; pin down (LED off) z_min should read open

Thank you very much, my colleague has been able to solve it, your response has been very helpful. Greetings

Just got my BLTouch to work with my Anet A8. Thank you Oderwat the great information contained in the writeup.

Comments deleted.

Hey Hans,
very good work, but please write somewhere that with the rear version of the bl touch holder you need to adjust the x endstop position, cause otherwise the holder blocks the axis from homing!

It doesn't... for me... I guess it depends how you put the wires. I have mine behind the bottom rod and "to the left".

strange.. i have them the same way and im missing a centimeter to not crash into the left x axis mount...

indeed strange but you may be the only person which tired it besides me :)

Mar 19, 2017 - Modified Mar 19, 2017


laut Skynet3D wurde der 3DTouch wohl geaddet...

New things in Skynet V2.3.2 (Marlin RC8 Bugfix)- based on OderWats latest Devel branch as of (24/2/17)

  1. Added support for the Reprap Discount Smart controller + 3d touch sensor (wiring harness needed)
    (RepRap display guide http://www.thingiverse.com/thing:2103748)
    (3d touch sensor guide http://www.thingiverse.com/thing:2091529)

Wenn man unter 2.3.1 alles am laufen hat, lohnt sich dann die Umstellung?

Grüße Rene (Sorry mein Englisch ist grottenschlecht)

LCD 12864 RepRap Discount Anet A8 Adapter
by OderWat
Anet A8 3D-Touch Mount
by OderWat

Hi Rene, keine Ahnung was "as of 24/2/17" bedeuten soll. Meine letzten Änderungen zum Anet Port (aka SkyNet3D) sind vom 3.3.2017. Muss ich ihn gleich mal fragen.

Grundsätzlich "lohnt" es sich immer eine neuere Version einer Software die Beta ist zu installieren, besonders, wenn es sich um Release Kandidaten handelt.

Ich habe keine Ahnung mehr, auf welchen genauen Marlin Commit sich das 2.3.1 Paket bezog. Ich weiß nur, dass SkyNet3D "ewig" nicht aktualisiert wurde, obwohl es wichtige Änderungen gegeben hatte.

Mar 19, 2017 - Modified Mar 19, 2017
pepsicosmos - in reply to OderWat

Dann warte ich mal ab was Du in Erfahrung bringst und evtl. eine Anleitung für uns Doofis hast wie die Umstellung auf 2.3.2 aussehen würde.

Die Config Datei ist nahezu gleich, ein paar Werte sind anders, aber keine die glaubich Einfluss auf den 3DTouch hätten und in der pins_ANET_10.h müsste ich glaub ich nach wie vor folgende Zeilen finzufügen.


define BEEPER_PIN -1

define SERVO0_PIN 27

Wie es mit den anderen Files aussieht kann ich nicht sagen, bin froh dass ich das überhaupt zum laufen gebracht habe, hab nur die gecheckt die ich geändert habe. Bin gespannt was der Profi sagt ;-)

Was soll ich groß sagen :) Die Version aus GitHub ist immer die neueste und was der Pete da bei den SkyNet Releases macht ist mir mehr oder weniger egal. Mich ärgert es nur, wenn er eine mehrere Wochen alten als Basis benutzt. Wir haben eben besprochen, dass ich ihm morgen eine neue aktuelle mache. Dann kommt eh bald 2.3.3.

Comments deleted.

Hi, I think it would be useful to add that you can improve the repeatablity by setting


This twice as slow as it is by default
Another remark. I tried


but that was to slow the 3d touch sees that as an error or so .It will just drop the pin at some point and go into error state

Mar 17, 2017 - Modified Mar 17, 2017

What version of marlin are you using or does it matter? I'm using skynet 2.3. My Board is an Anet V1.0. The genuine BL Touch only moves up and down twice when the power gets turned on, you can see the red led turns on with the pin in the up position and turns off in the down position, I also noticed a tiny blue led at the tip of the probe during the power up process. I get no response from any teast commands at all. I've inserted all recommendations as described. The little blue led at the tip of the probe flickers when changing from the main screen to the prepare menu screen via the 5 button panel. Any help would be greatly appreciated.

Sounds like you didn't made the correct changes to the Configuration.h or the servo cable is not connected right. You may wanna compare with what I changed in my config: https://github.com/SkyNet3D/Marlin/commit/30c2663b94c677d5089e47c2467fca5316e74518 ... the most recent version of the Marlin port to Anet Printers is there too: https://github.com/SkyNet3D/Marlin but that should not matter.

OderWat. I noticed you have an A8. Can you share your Configuration.H file with us?

The firmware I use on my A8 is always here: https://github.com/SkyNet3D/Marlin/tree/SkyNet3D-Oderwat

Where do i need to insert "#define SERVO0_PIN 27" ? Insered in pin_ANET10 and killed bootloader. Reflashed the bootloader and typed directly into the the configuration.h and got verification error... I use pin 29 instead of 27 like shown here: http://3dtoday.ru/blogs/hellraider/connection-sensor-auto-level-3dtouch-bltouch-to-the-printer-anet-a6/

As I wrote, I did never verify anything with the A6 display. But your problem seems to be unrelated to me. It doesn't matter where you define the pin. Problems with the bootloader are usually because the image is to big for the flash memory and therefor overwrites part of the bootloader code. I have no idea about the verification error. Try to disable SD card and flash again.

Thanks for the answer, will try again later. While compiling it says 97% of storage used so this could be the problem. Without SD only 86%.

Worked, thank u very much ;) Now it still blinks and can't reset but i think its because of an unsupported clone for marlin.

Nope. It just failed it's self test. Please read this: http://www.geeetech.com/forum/viewtopic.php?f=27&t=18263

Already did so. But it still flashes and release alarm does nothing. Also i've read on github that there are problems with different clones. The 3D Touch and the original BLTouch are supposed the only one that works. Tried many different settings for now but nothing worked.

I thought there are just the Geetech 3D Touch and BLTouch available. Sorry man!

There is also a clone with design by antc labs on it. And this just won't work. Ordered a 3DTouch now

Its working perfect, thank You for this great tutorial :)


I have the same board but a legit BLtouch. What is the current draw for the 3Dtouch? Bltouch says 15mA Peak 300mA all i get is flashing when connecting it with this configuration.

Any ideas?

When it flashes it detects a failure, but generally it works. Did you adjust the screw? Check this post: http://www.geeetech.com/forum/viewtopic.php?f=27&t=18263 .. or ask your dealer for a replacement if the sensor is defective.

Yeah cleaning the pin resolved the flashing. Must have been to much friction on the pin. Still not getting enough power through I think on the z sensor center pin. BLtouch does not power on when the red wire is connected to the center pin. Need to connect to a a separate power supply for it to work for some reason. Maybe there is another 5v source on the board I can use.

Hum.. I have the RepRap Discount Display (which is known to eat a lot of power) in addition to the 3D touch and no problems. Did you try to increase the voltage at the power supply slightly? I didn't test with the original one though as I have changed the power supply some time ago.

yep so figured out why i was having issues running the bltouch from my z end stop 5v. the actual pin in the bltouch when rotated to a certain position has to much friction for the servo to grab it. After some testing realized that by rotating the pin it works very smooth in a certain orientation. hooked it back up to 5v on the board and it is now working.

OK. Strange that the original comes with less quality than the cheap copies.

Yeah i don't even have the lcd connected at this point and it still flashes. used my breadboard power supply and it works fine. Must be that its not getting enough current to power the servo. Will be replacing the power supply soon so that might make a difference.

... good job , but the fan ?

Do you mean the extruder fan? I don't believe in its importance (and others neither). I found this mod http://www.thingiverse.com/thing:1749614 last year in December and gave it a try. Later I removed the fan completely. I print PLA/BDP/PETG/FilaFlex without problems and with up to 70/240 degree. I don't think that ABS would be a problem either but I did not test it.

If you want to keep the fan I am sure there are other mounts available for this sensor. I also made myself another mount (also for a system without heatsink and extruder fan) to use other cooling fans (and because I am currently designing one). I may upload that one soon.

Anet A8 alternative 40mm Extruder Fan Mount

thanks, very good work, (Y)

omg I really need to try Your setup for my 3DTouch! I hope everything go nice and I can finaly use it :) . I hate my proximity sensor...

Good luck! Please tell us how it goes!

Can you post your configurtion.h files, i have strange behaviour, when i do G28, it homing X and Y, center XY and them i get an error.

Feb 9, 2017 - Modified Feb 12, 2017
OderWat - in reply to yauyau123

All configuration changes regarding the sensor are listet. There is also advice on what to do if the sensor errors. Did you try the sensors auto test and the switch triggering tests I mention in the description?

But yes, I also had occasions where the sensor will error after power on for "no reason". I found that using the sequence:

M280 P0 S160 ; Reset 3D-Touch
G4 P500
M280 P0 S10 ; Pin out
G4 P500
M280 P0 S90 ; Pin back
G4 P500

before using G28 will "reset" the sensor to a working state.

Please tell me if that helped!