BLTouch Auto Leveling Sensor

The place to discuss your hardware and software/firmware modifications...
ksevcik
Posts: 56
Joined: Fri Oct 21, 2016 1:07 am
Location: Houston, TX

Re: BLTouch Auto Leveling Sensor

Post by ksevcik » Fri Dec 09, 2016 11:05 pm

Bratag wrote:There was a discussion on the boards at one time where it compared auto levelling with auto mesh. Auto levelling simply handles tilt in the print bed but it makes the assumption that the bed is perfectly flat. Mesh levelling actually accounts for the print bed having deviations outside the tilt.

The current Marlin firmware we have doesn't handle mesh levelling, though I know Insta was looking into it and I had poked about with it myself. Perhaps we need revisit that.
I think Ed and my are of the opinion that any kind of auto leveling isn't going to help a bed that's nearly level because of stiction and other non linear effects.

The amount of force it takes to start something moving is almost always higher than to keep it moving. Stiction is that force to start something moving.

The other important concept is that your stepper is not infinitely strong. It has a torque rating, and that's how much torque it puts out across a full step. When you're micro stepping, it's better to think of the stepper as a spring attached to your shaft. With the other end of the spring attached to the commanded position. Until that spring stretches tight enough, the shaft isn't moving.

For a more concrete example, picture dragging a rock around with a rubber band. Move your hand a foot to the right, and the rock trails behind it because of the stretch in the rubber band. Move your hand to the left a foot and the rock doesn't move the whole foot because it's trailing behind in the other direction. For a small enough hand movement, the rock doesn't move at all. That's about what I think is happening with Ryan's fairly level bed. It doesn't matter during normal printing because you're always dropping the bed, or at least moving in larger increments.

Turning up the stepper current makes the spring tighter, which should help. I'm going to take a look at the stepper and driver when I get home and see how much higher it could stand to go.

User avatar
ryaneb85
Posts: 92
Joined: Mon Oct 19, 2015 2:03 pm
Location: Singapore

Re: BLTouch Auto Leveling Sensor

Post by ryaneb85 » Mon Dec 19, 2016 11:01 am

That makes a lot of sense. I simply thought for a long time that my configuration was incorrect and didn't really give any consideration to the mechanical limitations. I did also try mesh bed leveling and faced a similar situation there, so I think it's likely the same scenario whether you are mesh leveling or auto leveling.

User avatar
mv3dnerd
Posts: 4
Joined: Thu May 05, 2016 4:02 am

Re: BLTouch Auto Leveling Sensor

Post by mv3dnerd » Thu Jan 05, 2017 1:31 am

I saw questions regarding the use of the BLTouch sensor and the newer printers. I have a Rev. E and have added an inductive sensor. I have made a post on the forum going through some of the steps including updating the Marlin firmware using mesh bed leveling. Here is the forum post viewtopic.php?f=10&t=3450&p=31110#p31110.

~Marc

wiredinoc
Posts: 4
Joined: Tue Dec 30, 2014 9:09 am

Re: BLTouch Auto Leveling Sensor

Post by wiredinoc » Wed Jun 14, 2017 10:25 pm

Hi, resurrecting this. Decided to get a BLTouch after dusting off the M2.

Jturrell's instructions are spot on. Items I've noted:

1. The BLTouch is incredibly fragile. I've busted 2 of them so far with only a few successful fidget spinner prints to show for it. The first one bent the metal dropper during a botched print job. I just busted a second pin for no aparant reason. The pin just lost its ability to easily move up and down with zero force. I thought this was due possibly to using hair spray on my bed, pulled off the top plug and ran a pipe cleaner through it, no luck. It is possible that it got hot being 17mm next to a V4 head, but who knows.

2. When you set the offset, it will not appear to take until you do an M1 Z0. At this point, the head will move to the offset location. I added M1 Z0 to the end of my startup script, but that may be redundant.

3. When running the leveling routine the head will stay about 4mm from the bed. This is normal. Again, M1 Z0 will bring it down.

After many hours and $100 of messing with this thing, I'm over it. It's way too fragile, and easy to break. Nice concept though. Will be ordering the 4 point bed next.

Cheers

jfjohnny5
Posts: 12
Joined: Fri Jul 22, 2016 1:12 am

Re: BLTouch Auto Leveling Sensor

Post by jfjohnny5 » Mon Jun 19, 2017 11:18 pm

I'm having some odd issues with this. I followed Jturrell's instructions to the letter. Like him, I also have an older model with the silver and black Z motor along with a Z min endstop up at the top of the unit. The BLTouch responds to commands just fine. But there are some issues.

The first thing I noticed is that pressing the "Home Z" button in the Simplify3D control panel has no effect. X and Y homing are fine. I tried running a G28 command. It homed the X and Y properly, then started to raise the plate, as it should. It was going all the way up, hitting the probe, then continuing to raise until the nozzle is in physical contact with the plate, and the probe alarm triggers. Then it just sits there. Running a G29 command after had it start the auto bed leveling process, but it just kept moving the build plate away from the probe. It's like it was running the auto leveling process, but Z was flipped. Yet the Jog controls for +Z and -Z in the control panel work just fine.

I then saw the post about flipping the black and white connector. So, I tried that. I then ran another G28 command. The bed raises, hits the probe, and instead of going up, it now rapidly descends until it hits the bottom. At that point, it comes back up about 5 centimeters. Running G29 after that looks like maybe its working properly, but it's trying to level from that lowered position, instead of up at the actual probe. It's hard to explain. It's just... off. I'm not sure what to adjust. Any ideas?

UPDATE: Ok, I've made some progress. I still have an issue with it triggering the alarm when homing, but I was able to get the auto leveling process to run correctly. I ran an M502 command to update the EEPROM to the values from the file. It's been so long since I've done firmware updates, I totally forgot about that. I then ran G28. It homed all three, but it triggers the alarm on the BLTouch and the nozzle presses into the build plate. I then ran M280 P0 S160 to clear the alarm, followed by G29. The auto leveling process now works. Not sure what to adjust for my homing problem... Back to config tweaks I go.

UPDATE 2: I got the alarm to stop triggering on homing Z. The problem was that it was homing too quickly. The probe didn't have enough time to reset. I changed the HOMING_FEEDRATE value for Z from 15*60 to 10*60.

stottsjr
Posts: 16
Joined: Sun Aug 21, 2016 1:56 am

Re: BLTouch Auto Leveling Sensor

Post by stottsjr » Wed Aug 23, 2017 9:10 pm

For what it's worth I created a mount for the RevE machines and you can find the file here:

https://www.thingiverse.com/thing:2492704

I also updated my RevE to the latest Marlin as well and if people would like that information I could put up a primer on that.

Jason

brookstalley
Posts: 11
Joined: Thu Mar 02, 2017 10:28 pm

Re: BLTouch Auto Leveling Sensor

Post by brookstalley » Thu Jan 18, 2018 12:35 am

I'm about to embark on the BLTouch + Marlin 1.1.8 path for my M2E dual.... so yes, I would really appreciate any tips on upgrading Marlin to the latest.

sprior
Posts: 384
Joined: Thu Apr 10, 2014 8:37 pm

Re: BLTouch Auto Leveling Sensor

Post by sprior » Fri Jan 19, 2018 10:12 pm

brookstalley wrote:I'm about to embark on the BLTouch + Marlin 1.1.8 path for my M2E dual.... so yes, I would really appreciate any tips on upgrading Marlin to the latest.
It's my understanding that you can't do auto-leveling with the dual extruder because on a non-level bed one extruder would crash into the bed when the other was at the correct distance from the bed.

I was one of the experimental batch to upgrade directly from a single V3B to a dual V4 setup, and I've come to realize that bed adhesion issues which I assume are bed leveling issues (I've got a PEI bed) have made me frustrated enough to always be nervous about printing anything. So I've decided that it's worth giving up the dual capability and go with the BLTouch. If this gets me more confident in 3D printing and then I really need the dual capability I'd go IDEX.

brookstalley
Posts: 11
Joined: Thu Mar 02, 2017 10:28 pm

Re: BLTouch Auto Leveling Sensor

Post by brookstalley » Sun Jan 21, 2018 12:29 am

sprior wrote:
brookstalley wrote:I'm about to embark on the BLTouch + Marlin 1.1.8 path for my M2E dual.... so yes, I would really appreciate any tips on upgrading Marlin to the latest.
It's my understanding that you can't do auto-leveling with the dual extruder because on a non-level bed one extruder would crash into the bed when the other was at the correct distance from the bed.
I think that would only be true of both nozzles were touching the bed. With the nozzles 0.1mm off of the bed for the first layer, there can be about 0.2deg of tilt, which is 0.6mm across the 200mm width of the bed; easily enough for adhesion issues.

But my main impetus for the BLtouch is that I have the dreaded X axis bow and have not been able to get it dialed in with shimming. So I'm calibrating for printing in the middle of the bed, but there is more gap on the far left and right of the bed. Mesh leveling should, I hope, fix that.

stottsjr
Posts: 16
Joined: Sun Aug 21, 2016 1:56 am

Re: BLTouch Auto Leveling Sensor

Post by stottsjr » Sun Jan 21, 2018 9:41 pm

A very high level on what I did to enable BLTouch a while back:

I wired it up like this (per the CLabs page):
https://plus.google.com/113792662927481 ... tWww5rCV3F

If you wire it like this you have to change the:
#define SERVO0_PIN 22
to
#define SERVO0_PIN 44
in the pins_RAMBO.h.

Alternatively if you plug in the orange wire next to the brown you shouldn't have to do any updates to the configuration files. I just did the above before I found this thread and wasn't as familiar with the RAMBO boards as I am now.

Uncomment out to enable the BLTouch in Configuration.h:
#define BLTOUCH

You have to define your offsets in the Configuration.h. This is what I use yours may differ:
#define X_PROBE_OFFSET_FROM_EXTRUDER 24 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 0 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER -1.2 // Z offset: -below +above [the nozzle]

You have to enable the Bed Leveling of your choice. (Since I use glass which is pretty flat and uniform I use BILINEAR:
//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
#define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING

You'll have to define your probe points depending on the leveling choice. Keep in mind your offsets that you have from the above, your offsets will probably not match my offsets.
// Set the boundaries for probing (where the probe can reach).
#define LEFT_PROBE_BED_POSITION 30
#define RIGHT_PROBE_BED_POSITION 170
#define FRONT_PROBE_BED_POSITION 30
#define BACK_PROBE_BED_POSITION 220

Enable Z_SAFE_HOMING so it'll home in the middle of your bed for Z.
#define Z_SAFE_HOMING

That should get you going for the BLTouch.
Last edited by stottsjr on Thu Jan 25, 2018 6:35 pm, edited 2 times in total.

Post Reply