MakerBot Print is our newest print-prepration software, which supports native CAD files and STL assemblies,
allows you to interact with all your printers via the Cloud, and many other exciting new features.

Download Now


BFPTouch - Poor's man BLtouch. A simple, cheap, neat, precise, compact and reliable any surface Z Proble for bed leveling.

by brunofporto May 2, 2018
Download All Files

Thing Apps Enabled

Please Login to Comment

Lovely design, thank you!! I have just completed installation of the 'slim' version and posted a make.

I wanted to call attention to the differences with the Duet 2 Maestro board setup in case anyone missed it. That board has a much more simplified z-probe setup than the original Wifi and Ethernet boards. There is no need to reconfigure a heater, all the connections are together in one z-probe block on the board. You can address the servo using P64 in your M280 commands instead of P3 like the other boards, and you do not want to use 'I1' at the end of the command to invert the signal. For example, you can just do "M280 P64 S105"or similar.

First of, thanks for this taking the time to make this!

I'm testing it currently and with M48 this thing blows my bltouch clone out of the water

Mean: 0.030750 Min: 0.028 Max: 0.033 Range: 0.005
Standard Deviation: 0.001453

But when I do a few G29's I see quite a big deviation between runs:

Recv: Bilinear Leveling Grid:
Recv: 0 1 2
Recv: 0 +0.148 +0.114 +0.117
Recv: 1 +0.134 +0.078 +0.070
Recv: 2 +0.212 +0.133 +0.113

Recv: Bilinear Leveling Grid:
Recv: 0 1 2
Recv: 0 +0.122 +0.090 +0.097
Recv: 1 +0.083 +0.035 +0.023
Recv: 2 +0.146 +0.061 +0.036

Recv: Bilinear Leveling Grid:
Recv: 0 1 2
Recv: 0 +0.115 +0.104 +0.146
Recv: 1 +0.087 +0.026 +0.034
Recv: 2 +0.169 +0.082 +0.049

Any idea what could be causing this or how to improve my results?

Thanks again!

Thank you!

My bed has huge, bigger than 0.2mm :D, topography differences related to temperature. So the first thing I would recommend is to only start bed leveling measurements after the bed is heated. If you are measuring during heating or at different temperatures that you should be able to see a big difference between readings. Also, printing is the best way to test if the leveling is ok. I like to print five 0.6mm height 20x20mm squares (one at each possible cornet, plus one at the center) to check it sometimes.

And as a DIY probe, it can always suffer from issues related to soldering and/or cables. So, check the readings while you move and bend the cable around to make sure you do not have any issues on that front.

Thanks for this work! Pure satisfaction

Just wanted to say, this is absolutely amazing and you are amazing for designing it.

Thank you very much!! :D

It is not clear which Main file should be printed, there are 4 of them. Naming of the files is really not telling the newcomers anything. Can someone please explain the meaning of those files? Which one to print?

Done! :D

Removed the thin version (that as fragile and not lighter). And removed older version of the main file.

Thank you. But it seems something is broken with the "Think files" section. Not sure if you are seeing the same thing as me but after long scroll I can get only to Download All link and zip file still contains 4 Main stl files.

There is definitely some issue with Thingverse itself.... Today all files are back!

My mount for Ender3 with Petsfang v2

Petsfang v2 Ender 3 mount for BFPTouch - Poor's man BLtouch.
by ZXAtari

you need to let the pin go higher than the sensor to retract it more. the current retracted state is barely 1mm above. it's very hard to install the sensor that way.

any reason you recommend PETG? i have a clear petg but I wanted to use PETG just for extra heat resistane and I have more of it anyway.
I only have black pla so I'll print the flag thing in pla. I hope it doesn't cause issues

I think the flag can be safely made of PLA. My current one is made of ABS (still the same flag, servo and sensor from the very first prototype!). The body and cover both ABS and PETG are ok.

I've printed my micro version with clear ABS. I've just painted the flag with black permanent marker. Works like a charm.

Painting PETG might be a problem (which ABS of course solves, but so does black PETG). Nothing seems to stick to this stuff, at least in my experience.

Yes - but applying a black permanent marker in couple passes may do the trick. Enough to properly block the diode light. In worst case apply a strip of black paper and secure with a loop of scotch tape :)

You are a researcher. Here are things to ponder about

  1. Why use servo ? Why can't we use electromagnet? If not , could you site reason. If yes, why you are waiting for revising your design.
  2. If electromagnet could be used, what would be its design. If you can give some hint, I may experiment.

When I designed it was intended to be just a temporary solution until I had money for a "proper" BLTouch. So I designed around things I have at hand. The result was so good that I just gave up buying the BLTouch.

In general, electromagnets are heavier than servos (for the same force) and need more current and also would complicate things - I would need to design one that not everybody would be able to build or find a specific off the shelf one that not everybody would be able to find. A servo is readily available and even the poor quality ones will handle the job.

But.... BLtouch does use electromagnets to deploy and retract the probe as the force needed for this is very small so it is a possible solution. I would put it below the flag and add a small permanent magnet to react to the electromagnet. The main issue is that I really do not know how to design a proper electromagnet

I am designing a new BFPTouch that uses a nano servo and a pair of small magnets as spring but it still at the concept level :D As this one is working (still the same servo and sensor from the first prototype!) the new one is not a high priority project. :D

I like your design so much that I redesigned it on my own :) It uses a 3.7g servo and I managed to save some mm vs your initial design.

EDIT: The housing is 41.6mm + probe tip :)

Nice!! Please do publish it as a Remix :D

BFPTouch micro - Poor's man BLtouch - micro version
by Japim

Can it directly fit in place of BLTouch ?

It is bulkier but the dimensions of the holes are the same. So it depends on your tool's structure.

Some nOOb question here:

the BFPtouch is doing a great job here, but after a few days the servo just stops working.
I am now on my 3rd set of servos. Guess this has to do something with the aforementioned
grounding. How do i properly ground the motor, frame & bed?
I am using a duet maestro board.


Check if the servo is not forcing against the casing. The angles just need to be in the right position and not force against ay part. If the servo is being forced then it could fail.

I never had a servo failing (still using the same servo+sensor pair since the first prototype!) My current board is a Duet2 Ethernet.

DC42, from Duet3D, recommended to put a small 220uF capacitor to filter any high voltage due to the servo start moving but it is to protect the board and not the servo :D.

Hey, thank's for helping me. I have added the M42 P64 S0 Gcode to my retract/deploy script, this turns the power of to the servo.

You are welcome :D

That should work too!!! :D Lets hope that this solves the issue!

Yes finally it works flawlessly! Seems like the M42 did the magic. Thnx again for the great design.

Great!! :D I'll add this to the instructions, thank you!!

I just want to say thanks, because of your design, I was able to make myself a probe with stuff I already had!!

I tore down an old HP printer a while ago, and it had a couple of the optical stops like this, but they were wider. I desoldered one from it's support board which was no good anyhow, and modified it to fit this shell. I was able to doctor things so I could connect it to the Z probe connector on my Ender 3 Pro.

I think its important to point out that if anyone uses the sensor that does NOT have the little PCB on it, it's a whole lot more complicated! You need a current limiting resistor on the LED emitter. It is more complex to connect the sensor side also, although it gives back in flexibility. You can customize it to either pull a voltage up to 5 or down to 0 for the pin, or to act much like an actual endstop switch like I did on my Ender 3.

I didn't find a 40mm screw to use for the pin, so I just printed a pin myself, and epoxied it into the flag! Hoping heat doesn't hurt things. I also epoxied the servo onto the frame, as screws were too hard to find for it in my case. I'm not even using the top cover at this point, as my sensor circuit sticks out a bit more than the one indicated here. I might just modify the cover to fit.

I am using Klipper also. Took a while to get everything working together, but I also am getting the accuracy that everyone else is getting! .0027 Std Dev! I think it would be a good idea to add a note to your klipper instructions indicating that there is a real need to familiarize oneself with the probe support documents before your instructions make sense. The document is at https://github.com/KevinOConnor/klipper/blob/master/config/example-extras.cfg.

I used an old USB cable also, and in my case I was able to use the shield as a ground conductor, since I needed 5 conductors total. (5V, GND, STEP, and 2 for the connection from the sensor to the Z-Stop switch connector.

Thanks for the clever plans!


I have some of the sensors that do not have the board soldered to the back. I can correct the difference in thickness, but I'm a noob when it comes to circuitry. If I were to implement a TCST2103 without adding an LED, what resistor would I need? Would a 10k ohm resistor on the collector pin going to the Z pin on my board be sufficient?

Nice!! :D Be careful with the printed probe tip if you measure a heated bed (it is the best way as the bed can change the format with the heat!). I added "there is a real need to familiarize oneself with the probe support documents before your instructions make sense." to the kippler instructions thank you.

USB cables are great for this application as most of them are shielded and made to be flexible. Even better when you really use the shielding net as ground! :D

Absolutely destroys my 2 bltouch clones! <0.0025 difference between probes using klipper. Had to file the servo mounting holes, otherwise they were too small and the layers would separate. Also edited the flag hole, increased to 2.8 mm diameter. Thank you for this design!

Nice!!! :D I used very small self-tapping screws to hold the servo and my flag was made with PETG, that is much more flexible and have better layer adhesion. I'll increase the flag's hole diameter next update thanks!

Excellent design. To what to you attribute the crazy accuracy you are getting with this? I use a gravity return 'hex key optical sensor" but I only get ~ 20 microns. Your design is down to single digits. Amazing.....

Thank you!!! I do not know for certain but the shape of the flag, blocking all the light path of the optical sensor with a blade like a tip and as it is very compact (considering the components used) this helps with the overall rigidity of the probe system.

Thanks to the author!
I advise those who wish to repeat this construction, if possible, to use not TKST2103, but TKST2202. And even better - TKST2300. The smaller the aperture of the sensor, the more accurate it works and the better the repeatability will be. And the dimensions of all three sensors are the same.
Look datasheet, https://www.vishay.com/docs/81147/tcst2103.pdf

Thanks!!! I used that sensor as it was what I had at hand by the time. Still the same sensor and servo from the first working prototype :D And still giving good results!

bed probe heights: -0.001 -0.001 -0.001 -0.003 -0.003 -0.004 -0.006 -0.003 -0.004 -0.000, mean -0.003, deviation from mean 0.002 :D

Great result! I think for 3D-prints the best is not required.
For a simple, inexpensive and repetitive design - PERFECT!

Those who wish to further increase the accuracy can try using a polished steel shaft and bronze bushings (for example, from old CD-rom or very old 3"5 floppy disk drives. In FDD, shafts about 2 mm in diameter and about 30 mm long were installed. In the later constructions of FDD, such shafts stopped using at all. In CD/DVD-ROM - shafts about 3,17...3.2 mm in diameter). But such a change will complicate the design and add details that are difficult to obtain. With the accuracy already achieved (0.002! GREATLY!) It looks meaningless.

Another way to improve the accuracy can be the addition of a comparator to the circuit, which will increase the accuracy of determining the moment the phototransistor operates. In the Internet you can find a lot of schemes on the model of "comparator for phototransistor" or "comparator for optocoupler". It is better to choose a circuit based on a high-speed amplifier with low-voltage (5V) power, and pay attention to the temperature range of its application (especially if you use high-temperature plastics in a heat chamber).

IMHO, the accuracy achieved (0.002) is ABSOLUTELY SUFFICIENT. Although "True 3D printing maniacs" can try out of sports interest ... :)

And this thing starts just as something to use until I had enough money to buy an original BLTouch :D

But yes, if you are starting a new one and will buy the sensor it is advisable to go for the better one. And the shafts from FDD are really great probes! They are hard and precise and you can take advantage of the small bushings too.

The new version will use two small magnets instead of a spring so will be possible to use one of these shafts as probing tip.

Great work I've got this working with Klipper - My only issue is that the servo makes a clicking noise when it is holding the probe is up. Do you have any tips to fix this (I think it is because the servo under load trying to keep the probe in position )

Thank you! :) Besides the external power supply a 220uf capacitor between ground and 5v of the servo can help to filter the current peaks too.

Just re-read your instructions! Guess the first thing to do is Ground the motors & look at running the servo of a separate 5V supply?

Sure! If you are using Ramps with your Klipper system than I do recommended that as the Arduíno does not have enough current for the servos. I used the same 5v source from my RPi at the time (a RC 5A UBEC). Also check if Klipper have the option to turn off the servo after moving it. Marlin does and it helped to avoid issues when not using the sensor.

Grounding the motors can help a lot of you have static loading up. My new build (the forkLIFT) is using a original Gates belt that is not causing this issue. :)

Yes you can turn off the servo in Klipper (ENABLE=0)

Here is some sample code to add to the config:

[servo BFPTouch]

set pin to the pin that the BFPTouch servo is connected to.

pin: ar4
initial_angle: 0
enable: True
maximum_servo_angle = 90
minimum_pulse_width = 0.001
maximum_pulse_width = 0.002

Define a probe using the BFPTouch

pin: ^ar18
speed: 5.0
z_offset: 1.0
G4 P300


Thank you for sharing you Klipper config! I getting crazy, using your config the servo is working but the probe is always seen as "triggered". Before plugging the BFPTouch I had a working BLTouch so I know that the wiring and pins are OK. I replaced the BLTOUCH section by your, and spent 2 hours trying to understand why i always get "Triggered". Even when I unplug the sensor, I get this same "Triggered" state. Is there a way to test the probe alone? For instance using a multimeter?

Yes! It is easy to test the sensor with a multimeter. The sensor needs to be powered and then measure the voltage of the sensor wire and ground to check the state when the light bridge is blocked or open.

When the probe is retracted it is normal to the sensor be always triggered on - it is the firmware that will ignore it until deployed.

Thanks kingfisher!! I'll add your instructions to the main description! :D

Very nice!
Standard Deviation: 0.006169 (just superglued to my fan shroud)

Compared to bltouch clone @ 0.15 deviation

Hi Bruno,

I see that you're also running a Duet, thanks for including the Gcode on how to implement this. I'm considering going for this design (as my BLTouch clone doesn't seem to work). Or should I wait for your new design? :D

Go for this, it is cheap enough to start with :D and the new one is far from design... Still only a concept in my mind.

Thanks! I'll probably try to redesign it so I can retrofit it in place of my faulty bltouch clone :)

Olá Bruno, uma saudação da Itália!
Thanks for your great project, I'm evaluating it in place of my BLTouch to do some comparative accuracy tests.
Unfortunately in the Kossel 3d printer (Delta) the space for the BLTouch is quite small, many effectors don't leave more than 44/45 mm from the holes in which the BLTouch is fixed to the nozzle, and your adapter is 46.5mm.
I believe that you could reduce a bit in height, perhaps creating a joint for the servo, to be able to cut the fixing wings and glue it.
The contracted BLTouch dimension is around 42.5mm, so with the M3 screw retracted the Z dimension should not exceed 45 mm.

Ciao Marco! :D

Thank you! Gluing is a good idea to reduce size! It needs to be a good glue, some heat resistant, and if you are using cheap servos should be easily dissolved somehow so you can replace the servo. Maybe even not using glue. Just something that holds the servo in place "sandwiched" between two parts. Cut the fixing wings help a lot to reduce size. Nice :D

I'm working on a compact version to solve the height problem on Delta Printer, and anyway you could reduce yours.
This is 42.7mm...


I am working with an "advanced" version of this sensor that will use a very small nano servo and will be as small as BLTouch (volumetric footprint....).

How are your comparative tests going?? :D

I am eager to see how it works with small nano servo...Have you published on thingiverse? Can you post link ?

Hi Bruno!.
I designed my own version without servo (check my profile), and it works divinely, but obviously I'm waiting for you with the nano servo!

It is not amazing how these cheap optical end stops are precise for this? :D This leveling probe started as something cheap to use until I could buy a BLTouch but it is working so well that I do not even consider spending that much money on a BLTouch anymore :D

I agree, for thi reason please work at "nano servo" version but respect the right Z dimension! :-)
Must not over 40mm.

No news? Good news... ;)

No.... I am finishing my 3d printer first before messing with the sensor again :) Last week I just transferred all hardware from my old Hypercube Evolution to the new forkLIFT and now that she is printing nicely I will tweak some issues and then design the new BFPTouch :)

Nice! 43 is not bad, 42.5 is better... :P

Hello Bruno,

A short interim report from me:

I printed it all out and put it together. I had to polish the M3x30 screw round, because I didn't get any without a continuous thread. However, this thread always got caught in the spring.

  • Now I will connect GRND of the servo and of the light barrier with each other.
  • I do the same with 5V+ from the servo and from the sensor (right?).
  • Then I have an orange sensor cable from the light barrier and another cable (control) from the servo.

I would like to connect the 4 cables as follows:

  • I plug the cable from the light sensor into the endstop plug (1) and the cable from the servo into pin 27 (2). I connect GRND with the pin at (3) and 5V+ with the pin (4).

Do I connect the cables correctly?

Source for the pins: http://jonathanlundstrom.me/2017/10/23/cr-10-bltouch-firmware/

It seems that it is the right way to connect to the Ender's main board! - Just like a BLTouch or any servo. Also, I read that you will lose the buzzer signal by doing it as the pin 27 was responsible for that.

Mine is just like you mentioned, common +5v for both servo and endstop, common ground and dedicated wire for each signal. Just be careful because my Arduino+Ramps did not have enough current to feed the servo and I needed to feed from external +5v supply. I do not know about the Ender 3 board but if it behaves weirdly with the servo try an external +5v source with the common ground! I used a hobby "UBEC" at the time.

About the spring and thread you need to find a spring that is almost the same diameter as the head of the screw - if it is too close to the thread the spring can enter the "channel;tunnel;hole" of the screw and lock it there sometimes. I use a standard M3x30 that is not fully threaded. Polishing it, like you did, would be better :D

My servo is actually behaving strangely. It keeps jerking at irregular intervals. It always seems to occur when I navigate in the Ender 3 menu. But I can extend and retract the pen.

Try an external 5v source, with common ground, for the servo. If it does not solve the issue or you are already using an external power source for it you can try a 220 uf capacitor between the ground and +5v of the servo to filter current peaks.

If you are using Marlin look for an option that turns off the servo when not in use. That helps to avoid false movemntes due to interferences. Another thing to try is to remove the 27th pin to avoid been connected to the flat cable of the display and transfer interferences. And there are some ferrite cores you can loop the signal wire around that can filter those interferences too.

I needed to ground my entire printer due to electrostatic energy generated by the belts....

Hello Bruno,
thank you very much for your patience.

I think I made a mistake connecting somewhere. Maybe you can draw me a schematic?

At the moment I soldered the red cable from the servo back to the circuit board (at the V) of the light barrier. In front the 3er plug goes from the V to 5V+.

I soldered the brown cable from the servo to the back of the G and go to Ground with it at the front.

So I still have two cables left. The sensor cable from the light barrier and a control cable from the servo. The sensor cable goes into the left connector of the mainboard of the Z-barrier. The servo cable to the red wire of the display (should be pin 27, because the beep has stopped).

I've already made several attempts to connect the whole thing. If I connect the servo separately (with plus e.g. to another Arduino), it won't move at all. If I then connect Ground from this Arduino to the mainboard, the servo stutters again.

Unfortunately I only have a 100uF capacitor, but it didn't improve. I soldered it between V and G on the back of the light barrier.

Unfortunately, I don't know much about electrical engineering, so it's very difficult to troubleshoot.
How did you ground your Ender?

Oh well, if I remove the cable from Pin27 (the control cable of the servo), it won't jitter anymore.

Just had a thought now: did you reconfigure your firmware to not send beep signals to that 27th pin? As it beeps at every move and confirmation of the menu system maybe it still sending the beeping signals through that pin an that is causing the issue!!

Hello again,

before I print the case, I thought about the mounting. Maybe you could create an "Ender 3 Version" with integrated bracket? That would be great :) I would most likely create a manual for the Ender 3 (and CR-10).
Here is an example of a similar fixture you might be able to use:

Oh, I missed you already offering a version with screw openings on the top. That's great of course, then I can use this holder for example:

Many greetings

M8 Inductive Sensor Mount for Creality Ender 3/CR-10
Bl-Touch mount for Ender 3 V2

That should work, the nuts version have the same hole spacing as the BLTouch, but the BFPTouch is fatter :D The worst that can happen is the need fo making a new version of this support! Let me know if they fit please :D If not I will use this adapter as reference to design one tat is!

this is a great idea. I'd like to use it with my Ender 3 but I've no idea how to wire it to the board :(

  • Posted with 3D Geeks Thingiverse Browser App

Thank you!! Find any tutorial for installing a servo/endstop based probing for your Ender 3 board and it will work - only need to adjust the servo angles for your specific case! :D This one, i.e., is for BLTouch but as BLTouch uses a servo and endstop channels to work the procedure is almost the same! https://www.youtube.com/watch?v=KoCvwPZUkBI

Hi Bruno,
thank you very much for the hint. I'll have a look and try it this way. Also I will post my progress / success.

  • Posted with 3D Geeks Thingiverse Browser App

Hello, and if you do under such an attachment option https://www.thingiverse.com/thing:2250863
Sorry through Google Translator

BL Touch Mount for E3D Clamp (Hypercube)
by BS3DP

Should fit with the servo to the front side. The screws distance is the same as BLTouch.

You can download the STP file to test fit within a CAD/3D software if you like.

The hole in the cover to fix both the servo and cover is too tight to fit the servo screw head.

I could not make it bigger or it would split the cover with this design then I used a very small screw :D Please measure the head of your screw and I will try to modify it.

Whoooaaaaa...this is amazing

Is it possible to use this with the anet a8 board?

Yes, sure. Look for any tutorial on how to implement a servo/endstop based bed leveling
solution and the configuration (besides the servo angles) should be the same.

Thx! think i found a solution, ordered the parts and will try to get this to work next week.

The probe works VERY well. I did go back to manual leveling though because my tower/X isn't perfectly level with the bed and it's throwing things off. If you mount any probe try to get it aligned X and Y as close to the extruder as possible because if anything else is out of alignment it will throw things off. I'm hoping to eventually mount this on the back of the hotend instead of -17.

I'll try this again once I get my other mods done.

Thank you very much! :D

Thanks! Nice DIY solution, printing slim version at the moment, will post once its done.

Decided to try out the Anycubic ultra base on my D-bot so needed this.
BLtouch V2 is about 76USD in SA. The glass ultra base + ssr + 5v psu+servo + lcd and ramps board was not much more!

Edit: Slim version a bit delicate, did not survive cleanup. Going to use the normal version

I printed and used the slim version without problems and later remixed the slim design with the Hero v2s replacement Hot-End mod for CR-10/Ender 3 style hotends (see: https://www.thingiverse.com/thing:3036933). What gave me slight problems was the lower screw of the servo was splitting at the layer bound. Nothing a drop of superglue couldn't fix though.

The Servo Touched Hero
by OderWat

Thank you!!! Where did it failed? This version I never printed to test :D I would reinforce a little there.

The neck just before the spring part. But I was using a milling bit to clean up the hole.
Normal one was fine, just waiting for servo to arrive.

Hi. I had same "issue" like you: prize of Bltouch looked somehow expensive to me. I just found your design and actually I have servo tat look the same as in your design and I have an optical endstop too! so basically I just need to print the parts. But I need some help because Im somehow new in 3d printers. If I post a pic of my extruder would you help/advise me how to mount it on it?I have a arduino mega 2560 and ramps 1.4 board, can i use it with them? Conection to the board will be the same as a bltouch? And configuration in repetier firmware?
Thanks in advance

Sure! I started using i with a Ramps. You will need external 5V supply as the Arduino regulator can not handle the current of the servo. I already had one UBEC used to supply the raspberry pi at the time and used that source. You can feed the servo directly from it (check your wiring) or you can look on how to supply the Ramps with an external 5v source.

About the firmware I used Marlin at the time but look for instructions on how to use any servo/switch based probe with Repetier and the setup should follow the same instructions.

Great. I have been looking the design and I think I can design a mounting by myself, If I can do it I will later post a remix here so other can have it. But I definitly would need help with some technical stuff and might be usefull for other newbies like me: 1.- can you tell me how you cenected the sensor to the ramps board? I can fin a clear info about it, I already understood I have to wire it so it has its own power source, but I dont know where should I connect the sensor and the controler of the servo (servo has 3 cables: yellow, red black in that order). You already told me you dont use repetier firmware, so I asked some good sould that might read this: anyone useing repetier formware is useing this probe? you you give me your config by PM or post it here for other people too?
Thanks in advance!!!!

"Can you tell me how you connected the sensor to the ramps board?"

Yes of course :D The servo you connect to the servo ports at your ramps. The wiring should be black for ground, red for +5v and yelllow for servo signal. Just connect it to the first servo port. The sensor have also three wires - you need to check the markins at the board to know witch one is each (Ground, 5v and signal). Here you have two options. You can use the same ground and 5v from the servo or you can connect to the ground and +5v from the endstops connections - where you are going to connect the signal at the Z-min portor the ramps.

I use an old USB cable for ir and weld the wires to feed ground and +5v to both (sensor and servo) and the other two cables for each signal for example. But you can have both three wire connected directly if you have them long enough and do not want to fuss with a soldering iron :D

Just like this: http://www.geeetech.com/wiki/images/thumb/a/a9/3DTouch_Auto_Leveling_Sensor_with_ramps_1.4-2.jpg/500px-3DTouch_Auto_Leveling_Sensor_with_ramps_1.4-2.jpg

For Repetier I found this good info: https://www.repetier.com/documentation/repetier-firmware/z-probing/

And here there is some discussions about setting the servo command for deploy and retract working ok:

Exactly what I've been looking for. I'm adding this to my Maker select v2 (Wanhao) with the stock board with the addition of arduino nano which uses code on the octoprint to trigger the probe deploy and retract since the stock melzi board doesn't have any outputs left. I'm also replacing the optical sensor with a simple wire connected to the nano which triggers a relay for the Z-stop.

Use a wire connection is a great idea for even cheaper solution :)

If you already have something in mind please do modify the stp files and publish a remix! But I can also modify it to you if you like.

Why a relay?

I wasn't able to use the wire solution so I'm waiting on a sensor. I did go ahead and wire it all up with a servo arm and switch solution which works great, however during testing the arm bent for my switch so I know this bfptouch solution will work much better.

Newb to electronics and it's the safest way I know to trip the z-probe switch which I'm lowering as a fail safe. Also, I'm still learning cad so I doubt I'll be able to modify the print for a while. Right now I'll take a soldering iron, drill and screw to it for the connections.

Please take some pictures of it done so I can modify it later with your idea!

I am pretty sure you can use this wire contact to connect it directly to the Rpi IO as it was a switch and be free of the hassle of wiring a relay . Like this: https://i.imgur.com/eMhX21k.png but instead of a switch is you wire contact sensor :D

i just opened the step file in Fusion360 and it does not have the round knob thingy on top like the one on the pictures

what are the different models? is the one in the step file the same holes etc as a bltouch?

There are two models: the standard with the knob thing on top and the one with the M3 nuts.

The one with M3 nuts have the same hole spacing and general lenght as a BLTouch (but is thicker!)

The one with the knob thing on top is to be used to replace a inductive sensor hold on top like the Hypercube Evolution as seen on the photos.

The new "slim" version only have the M3 variant file published.

Thanks for quick reply

i'm going to use it together with this titan aero mount: https://www.thingiverse.com/thing:2439225

i have the step file for that mount so i'm able to move the hole in that mount away if there is not enough room :-D

Coolice Hypercube Evolution Titan Aero & BLTouch Mount

Now I know what is wrong :D I did upload the STP file of the full assembly of the M3 version. Also the "source files" pack was very outdated!!!

I'll add the updated STP files later (they area t home....). For now you can work with the STL (I know.. they are horrible to work with) just to check if it fits. The base plane of the part is the one that is closer to the axis of the sensor so you can test if it fits only with the "main" parts as reference.

also you can use the adapter used to hold the BLTouch in place with that Titan Aero Mount to test the M3 version :D


no rush from my side, i only finished the frame and planning a shopping list for electronics

so it will be a month or maybe a little less before i'm ready to do electronics. for now i'm just browsing for improvements and picking what makes sense.

your "invention" is one that makes sense, a lot of what i have seen is just "cool" to have and does not bring anything new to the table

your thing certainly brings something to the table, cheap, precise and easy to assemble, it will only cost me a cheap pen to get the spring

By the way. If you are planning a shopping list for electronics I highly recommend the Duet3D boards. They worth the price and the gcode and macro based reprapfirmware is just amazing.

hehe,,, i allready have 2 arduino due on the table, the real ones and not clones (was hard to get as they are in high demand)

and then i'm following 2 proejcts for the board that goes on top.... Ramps 1.7 and Ramps FD v2.2

i know Ramps FD does not have a good name to it, but i blame that on China sellers that have spammed the market full with the unsafe alpha version even thou they got a warning that it was not safe

Thank you!! :D

did some quick testing in F360 the version in the step file works fine

i might add a few layers of tin foil on the surface that points towards the titan aero

i'm also using e3d silicone socks, they insulate pretty well and keep the nozzle clean

tin foil was just extra insurance

All current STP files uploaded!

A few days ago I swapped an old "main" for a new color - the base was melted with the impression of the hotend wires!!! That is why I did the new "R1" that is 1.1mm more thin at the base side.

Which servo horn should be used?

The best option would be one of the original ones from the servo trimmed to length. Those printed options are variants of the internal diameter by 0.1mm steps to test fit the best if you prefer or, as it was my case, you do not have the original horns at hand

Any chance I could get a picture of the spring? I've tried cutting 3 different springs and either there was too much pressure or not enough, haven't been able to get it right.

Some times you need to stretch them. I'll try to take a picture asap.

Hi brunofporto; Awesome design, can you upload a copy of your Marlin firmware? Although the printer is not the same, I want to modify it to fit my printer, thanks

Hello NCjian, thank you! There it is. :D

Thank you!! :D

thumbs u^, this is brilliant.

Having now printed this and played around with it a bit I can say I actually really like this design - It looks like it works great. I have mine running with a Duet WiFi no problem.

You weren’t kidding when you said print the flag in black - you're right it doesn't work in red… should have listened!

It may be beneficial to introduce slightly more z retraction - I'm currently measuring around 3.5 mm of retraction which cuts it a bit fine!

Do you mean the travel length of the probe or the necessary travel to trigger the sensor? The full travel of the screw should be 5mm and mine is triggering after 2mm.

I mean the travel length between “deployed” and “retracted” - i get about 3.5 mm total travel. Perhaps it will be enough, I havent got it mounted to my print head yet.

You should screw the M3x30 with the flag all up until the head is flush. The total travel of the flag is 5mm. Also check if your spring is not too short - you can stretch it and it is good as it get softer.

Ill have a fiddle and see what I can do - i need to change the flag too

Paint it with a CD marker or other soft tip "permanent" dark pen. Let it dry and do it two or three more times. It worked with my printer's endstops when I did not had any black material.

Can you upload the CAD files as .STEP or .IGES? I cant open inventor files on my machine as I run solidworks!

I'll upload them as soon as I got home. But as far as I remember Solidworks can import (without features) Inventor part files.

Unfortunetly not! You need to have inventor installed for solidworks to open inventor!

Install Inventor Viewer (its free) and Solidworks will open Inventor files.

Hey, it looks awesome! I'm new to 3D printing. Do you know if it will work for a TEVO tarantula? I mean because of the hardware and software compatibility.

Hey, thank you very much! It is pretty standard so I would guess that is compatible. Servos are compatible with most controlling board I ever seen and endstops well... :D This part is for sure! Just check if your board have dedicated servo connections!

But you will need to configure your firmware directly to make it work. I'll put instructions to Marlin soon.

Wow! this looks great, I actually have all the bits I need in my junk box, thank you.
I will be printing this up once we finish moving house.

Thanks!! Moving is one of the thins delaying my tests with it too :D

Very nice! Already have it printed (the M3 nut version) and will be installing it tomorrow to give it some tests! Do you know what the accuracy is like?

Now finally tested :D

Tested cold.
Mean: 0.000732 Min: -0.004 Max: 0.006 Range: 0.010
Standard Deviation: 0.002924

Any standard deviation below 0.05mm is good enough! :D

I'll now test it heated.

Heated for PLA

Mean: -0.045657 Min: -0.049 Max: -0.041 Range: 0.008
Standard Deviation: 0.001958

Thats very good!

Have you seen my other reply?

It would be handy if we could increase the retraction length a little - im only getting around 3mm currently!

Thanks! But it is not so consistent..... Only once was worst than 50 micron and was for some error - the bed was down and detecting false triggers not sure why - but the my wiring was made very poorly with an old and battered usb cable. Also my RAMPS could not handle to feed the servo without reseting so I did a workaround with the 5v from the Raspberry Pi USB. (temporary).

Just run a 30 point test with SD from the mean of 0.008 mm (8 microns!) which is very good! BLTouch quote anything under 50 to be acceptable.

Oh boy! I was converting microns to mm wrongly! I tough that 0.005 mm was 50 microns :D So my 0.009 results when heated still not so bad at all! :D Nice to know that you have one working :D

Yeah works great for probing - I’m very impressed by this design, its a great idea.

Still having some issues with the retraction: Mine seems to be triggering a bit later than it should so I'm losing a lot of Z travel. I'll have a play with the flag part and see if I can bring the trigger point down.

One way is to not left the head of the screw flat when retracted. At least at my printer if the head is 2mm out when retracted it stills higher than the nozzle. This will render a longer probe when released and could help.

Hmmm - not sure the issue there - Havent had any false positives on mine but havent got it on the print head doing any real testing just yet!

Here, not mine but I expect to achieve as good as these results.

"In my case GCode M48 ;” Z-Probe Repeatability Test” returns the following:
Mean: 0.002250 Min: 0.000 Max: 0.008 Range: 0.008
Standard Deviation: 0.002359"
From https://www.thingiverse.com/thing:2841443

That are good enough for something I did with parts I can found forgotten at the bottom of a large plastic box.

DIY Probe, OptiServo Z-Probe Sensor - 18mm mounting
by robscar

Thanks!!! I'll test it tomorrow too!! :D I had issues with a faulty optical sensor and too short cables :D But I do expect to be as accurate as other sensors with the same principle. One of those two that I mention link at the description have some values of a M48 test.

Love it, ordered the parts now!
Is it possible to get hold of the source files, wanted to adapt it to my mendel?

Thank you! Source files added :D

Thanks, but I still only see the .stl files?

Yep you are right! It was not there... for some reason it did not upload with the rest of the files. Now it is. Be kind! It is fun how we can be attached to some digital design. It was actually a painful decision to make - like releasing the hand of your kid for some risky thing :D

Yeah I know, but understandable since we all put a lot of time into our designs! I'wont even modify it actually... just need to see where I can add it to my assembly

Sure it is :D As soon as I got home I'll upload them. Try the M3 nuts version - it have the same dimensions as a BLtouch so most adaptors should work if it do not interfere with other components as it is bulkier.

this is brilliant! very nice design.