Page 1 of 7

BLTouch Auto Leveling Sensor

Posted: Wed Dec 09, 2015 4:23 am
by Mach
BLTouch is an auto-leveling sensor that uses a retractable z-stop instead of a inductive sensor. The indiegogo campaign ended in November and they're selling them direct now. I've ordered a couple to test. Precision is an initial concern but the idea is interesting. ... printers#/

Re: BLTouch Auto Leveling Sensor

Posted: Tue May 24, 2016 8:30 am
by random0000
Just wondering if you ever got this working and what you had to do to make it work. I just ordered one from Amazon. Thanks!

Re: BLTouch Auto Leveling Sensor

Posted: Tue May 24, 2016 8:45 pm
by tks546
random0000 wrote:Just wondering if you ever got this working and what you had to do to make it work. I just ordered one from Amazon. Thanks!
I just bought one myself, maybe we can work through the setup.


Re: BLTouch Auto Leveling Sensor

Posted: Thu May 26, 2016 4:18 am
by Mach
No, I never tried. It seems to keep toggling down on the project priority list.

Re: BLTouch Auto Leveling Sensor

Posted: Thu May 26, 2016 10:06 pm
by tks546
Here's the only info I found on the BL Touch google group doing a search for Rambo. ... 14/s/rambo

I assume the second connector goes to one of the limit switch ports?

I going to see about modeling a mount for it tonight.


Re: BLTouch Auto Leveling Sensor

Posted: Fri May 27, 2016 3:07 am
by tks546
Here's my first attempt at a mount. I haven't printed it yet just roughing it in.


Re: BLTouch Auto Leveling Sensor

Posted: Sat Jun 18, 2016 9:24 pm
by random0000
Did you ever finalize this design? I printed this ( but have not yet tried it. Just noticed that there is no place for the guide tubing in this design. Thanks

Re: BLTouch Auto Leveling Sensor

Posted: Sun Jun 19, 2016 6:02 pm
by tks546
I've been busy converting to dual print heads and haven't worked on the bltouch setup any more.

I've kind of decided that using a dial indicator to level the bed is easy enough that I don't need the extra hardware on my M2.


Re: BLTouch Auto Leveling Sensor

Posted: Sat Aug 27, 2016 5:31 am
by jturrell
I finally got the BLTouch working. It was a bit of a learning curve for me, but now that I know what I'm doing, I could probably do it in an hour or so. The steps will vary somewhat depending on your particular M2 revision. Mine was purchased in 06/2015, and was upgraded to a V4 extruder. It has the old silver and black Z motor. This revision had the Z min endstop (on top of the printer), and not the Z max endstop (like the newer revision). I do not have an LCD. Depending on your accessories/modifications/etc, you may have to plug the BLTouch into different pins on the RAMBo.

You will need:
- BLTouch Probe
- Long servo wire - about 3ft with three wires - I like the twisted 22AWG wire.
- Dupont connectors ("Universal"/JR Servo connectors).
- Dupont connector crimp tool. You can try needle-nose pliers, but a good crimper does a much better job.
- Basic knowledge of 3D printer firmware. Check out Thomas Sanladerer's Firmware Basics Guide on YouTube.

Step 1: Print out an appropriate filament guide with a bracket to hold the sensor.
I used this one (for a V4 extruder):

Step 2: Remove the cover on your RAMBo board. Unplug the fan if necessary.

Step 3: Remove the fans and old filament guide. Bolt the BLTouch to the new filament guide. Feed both BLTouch wires through the rectangular hole and replace your old filament guide.
I had to enlarge the rectangular hole to get the wires to feed through - would have been easier to temporarily remove the dupont connectors.

Step 4: If you don't already have a modified firmware, go here, and determine the correct firmware version and download it:
Make sure you're 100% certain you have the correct firmware. Download and unzip the file somewhere on your computer.

Step 5: Get the correct version of the Arduino IDE for editing the firmware. The website above lists a specific version - trying to use a more recent version didn't work for me.

Step 6: Remove the Z min endstop. Cut the wires close to the endstop. You won't need the wire to the LED - I removed it entirely.
You'll be left with a black and white wire. Strip the two wires and crimp on a male 2-pin dupont connector. (YouTube has great tutorials on dupont connectors.)
I had to re-route the Z min endstop wire from the RAMBo and bundle it with the wires to the extruder. These plug right into the black and white wires on the BLTouch.
These two wires enable the BLTouch to act as your new Z min stop. You should not have to relocate these wires on the RAMBo itself but you may need to extend the wires.
Leave them connected to the same pins in the RAMBo as the original Z min endstop.

Step 6: You'll need a new, long 3-wire servo wire (brown/orange/yellow, if you want to match the probe). Crimp a 3-pin male connector to one end, and a female to the other.
Plug the male end into the BLTouch and route the wire to the RAMBo with the other extruder/fan wires. The female end will get plugged into the "MOTOR EXT" pins.
Plug the red wire into the MX1 "+" pin.
Plug the brown wire into the MX1 "-" pin.
Plug the yellow wire into the MX1 "signal" pin, just to the left of the "-" pin.
These three wires enable the BLTouch to act as a servo, raising and lowering the probe.
All three pins should be next to each other in a row. The signal pin is #22.
Note that your negative lead is in the middle of the other two pins (unlike the end connected to the BLTouch).

Step 7: Replace your fans & RAMBo cover and zip tie everything back up. (I tested a few things before putting everything back together.)

Step 8: Turn your printer on. The BLTouch probe should move in and out a couple of times. If this doesn't happen, something went wrong with your wiring.

Step 9: Open the Arduino IDE, and edit your Marlin.ino file (in the new firmware you just downloaded). Navigate to the Configuration.h sketch.

Find this line and ensure it is set to false:
const bool Z_MIN_ENDSTOP_INVERTING = false;

Uncomment this line:

Update the lines below with these numbers: (You can play with these to fine-tune.)
// set the rectangle in which to probe

Update your probe offsets:
// These settings assume you're using the same filament guide as I am.
#define Z_PROBE_OFFSET_FROM_EXTRUDER -2.05 // You may need to play with this to get the right "squish" on your first layer.

Update the following setting:

Update the lines below to define servos and endstops. Make sure these lines aren't commented out:
#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command
#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 10,90} // X,Y,Z Axis Extend and Retract angles

Save the sketch. There are other settings you can play with in Configuration.h, but these are the important ones.

Step 10: Navigate to the Pins.h sketch.

Search for the "Rambo Pin Assignments" section.
Add the following line just before the "#endif //RAMBO" line:

#define SERVO0_PIN 22

This line assigns the signal from pin 22 to Servo zero (servo numbers start with zero).

Save the sketch. Upload your firmware using the Arduino IDE. (Check YouTube if you don't know how to do this.)

Step 11: Connect to your 3D printer with Simplify 3D (or whatever software you're using). Edit your process settings. Select the "Scripts" tab. Insert a G29 command after the G28 command. G29 runs the auto level routine.

Some additional G Code for testing the probe:
M280 P0 S10 ; pushes the pin down
M280 P0 S90 ; pulls the pin up
M280 P0 S120 ; Self test –keeps going until you do pin up/down or release alarm
M280 P0 S160 ; Release alarm

Hope this helps!

Re: BLTouch Auto Leveling Sensor

Posted: Sat Sep 17, 2016 4:27 pm
by dfwspeed
What changes would have to be made for those of us with a Z max endstop? Having trouble getting this to work