BLTouch nightmare

  • Re: BL touch correct offset when homed...too high when printing
    Howdy, I have 2 printers neither have a duet lol. But I've scoured the net and I'm struggling so I figured why not try here.

    This issue im having is recurring. I had it fixed(not sure how tbh) then i just put magnetic surfaces on my printers and the issue is back.
    I have a Tevo Tornado and a Monoprice Maker Select v2. Authentic BLTouches installed on both. both are running marlin 1.1.9 firmware. My config.h file has correct X/Y offset settings, and the Z offest is set to 0.

    The issue is that when i check z0, the nozzle goes to the perfect height, however when i start a print it is usually .05-2mm above the correct z height, i have to adjust the zoffset on the fly with the control box and hope i can get it set right before the brim finishes and the actual 1st layer of the print begins. freaking annoying!!

    Traditionally when I set the offset, i preheat the bed & I load a terminal (octopi/pronterface) and enter the following gcode commands
    m851 z0- set z offset to 0
    m211 s0- turn off soft endstops to allow z below 0.0
    m501-load saved settings
    m503-verify loaded settings
    g28- home to center based of probe
    g1 z0

    now i move my x(47) and y(11) axis to counter the off set and center the nozzle directly in the middle of the build plate.

    From here i lower the nozzle in 1mm increments until it hits the bed, then i back it up 1 mm, then switch it to .01 increments repeat until it touches the bed, then i back it up .01. After a quick paper resistance check (which is usually money with this method every time). lets say for this example it is -2.20.
    Then I go back to the terminal and command as follows:
    m851 z -2.20- set the offset to the correct state
    m211 s1- turn back the soft endstops
    m501-load saved settings
    m503- verify settings loaded correctly
    g28- home all
    g1 z0- to verify that the machine now recognizes that -2.20 is now equal to 0.0mm height of z axis, and that that height is the "perfect squish height".

    After this I turn off the machine, reboot,heat the bed and run:
    g28-home all
    g1 z0- final check that the z0 height is the perfect squish.

    Then I run "bed visualizer" from octoprint, which basically gives you an image of your mesh once you create one and tells you how off your leveling is and what part of the plate its off @. The idea when i do this about 5 times is to get an almost perfectly leveled bed, so that the bltouch doesn't have to compensate so much.
    Now that i have all this done, i run :
    g29- probe bed and create a mesh
    m501- load saved settings
    m503- verify saved settings

    So this, in the past up until about 2 weeks ago worked flawlessly. i could just hit print and walk away from the machine without a worry, it would heat up, purge in a line near the front of the bed and then begin at the right height.
    after i swapped out the mirrors for the Ziflex(which btw isn't that much of a difference at all when it comes to the height of the mirrors vs the height of the Ziflex) I did my normal routine, but now its doing this thing again where its starting to high above the plate , even though when i g1 z0 it goes to the "sweet spot". my start gcode is listed below, any help at all would be greatly appreciated!!

    G21; metric values
    G90 ; use absolute coordinates
    M83 ; extruder relative mode

    M117 Pre-Heating...
    M104 S180 ; set preheating extruder temp
    ;waiting for bed temp before extruder important for high bed temps
    ;minimizes time nozzle is at first layer temp and oozing
    M190 S55 ; wait for bed temp

    M117 Home and load mesh...
    G28; Home all axis
    M420 S1 ; load ABL mesh data
    G1 Z10 ; preheating position above bed

    M117 Heating Extruder...
    G1 X7.0 Y13.0 F7200 ; Position in the left front of the bed
    G1 Z1.6; Lower nozzle
    M109 S195 ; wait for extruder temp

    M117 Priming...
    ; prime right along X axis
    G1 Z0.3 F1000.0
    G92 E0.0 ; Set extrusion distance to 0
    G1 X210.0 E25.0 F2200.0
    ; prime line back to the left
    G1 Y11.0 F1000.0
    G1 X55.0 E25 F1400.0
    G1 Z0.20 F1000.0
    G1 X5.0 E4.0 F1000.0
    G92 E0.0 ; Set extrusion distance to 0

    M82 ; set extruder absolute mode

    M117 Printing...

  • @Vulrath I have three ideas:

    • BLtouch is based on hall effect, i.e. uses a magnet to trigger. So the magnetic surface may disturb this trigger too early. A solution may be to use more distance between BLtouch body and surface or an additional magnetic protection. The BLtouch wires are sensitive against disturbance of heater/fan also, so a wire shielding is also an option. Lowering the sensitivitiy of the BLtouch by changing the configuration setting is another possibility.

    • after power off and on again, steppers start at different positions (up to 4 full steps different), so every expectation about where x,y,z are at startup is not valid. So after startup I would calibrate Z0 and mesh compensation newly. Even XY may be at different places than stored because the endstops may trigger at different positions than last time (so the stored mesh compensation is at a different place than last time). The steppers starting at different positions is especially important if using 2 z steppers, because the x gantry or bed will start unleveled.

    • I would strip down the procedure to less steps, every complex process can have errors. So I would not use so much store/restores/verifications (or comment out to reuse later when all works ok).

  • Hey there, Thanks for the reply!

    Heres my thoughts,

    1. I agree that there could be interference from the bed now due to the magnetic plate, however I would figure this would cause issues during bed leveling, and homing as well, right? Also I did have this issue a long time agi when i first bought the bltouch, before i put the magnetice plates on. I just dont remember how i fixed it.

    2. this part makes no sense to me, and I guess that could be due to my ignorance, but what would be the point of ever saving a mesh if the initial startup stepper adjustments impacted this?
      I can see what your saying about the steppers starting up to 4 full steps different that when they were turned off,(i havent researched it yet, but i believe you) but the 1st thing you have to do before you can level the bed is home all (g28) which should align all steppers. The point of me turning off the machine and turning it back on, is only to test the the saved settings for z offset get loaded in with a power cycle. I want to make sure every time i turn on my machine if i send g1 z0 its going to go to the same place each time. Am I missing something about your point?(probably the case, sorry only been printing for 1 year)

    3. I agree, I will strip down the process some.

  • @Vulrath about the topic 2:
    all measurement has a tolerance: stepper position at startup, endstop triggering (x,y,z), your bed position may be different etc. I meant with the point, you should not trust the state at power on, e.g. stored positions (e.g.: the stored mesh points refer to X Y positions, and they were set with a given endstop measurement). The error may be very small, so it will probably not be the reason, because 2 mm is a much higher error.

    When you have stripped down the process, please post config and homeall files. If possible, please make a video (e.g. a 20 second youtube video) of the error behaviour, this would help much to see what could be wrong.

    One possible additional reason can be, that you run homeall and then heat up the hotend (M104 doesn't wait for heating up). The homeall should be done when bed and hotend are already heated up.

  • Hi,

    I use the BuildTak FlexPlate System on my two printers.

    They both have genuine BLTouch v3.0 devices and they work just fine.


  • @JoergS5 OK, this makes sense to me now. Thank you. I will try to hammer out some of this stuff over the next few days and repost. Thank you for your help with this!

  • @fcwilt This is good to hear!

  • @JoergS5 Here are the marlin config files, I'm pretty sure this is the firmware i loaded last.wasnt sure what the homeall file was called , maybe its this HAL.h?
    [0_1598381720358_HAL.h](Uploading 100%) [1_1598381656589_Configuration_adv.h](Uploading 100%) [0_1598381656583_Configuration.h](Uploading 100%)

    hmm doesnt seem to like these files.

    doh gonna have to make smaller vids, ill be back later

  • Moderator

    I guess we don't get many .h files uploaded here. You could change the extension to .g and they should upload ok as gcode files. Or change them to .txt.

  • @Phaedrux Thank you! I'll try that.

  • @JoergS5 configuration.h file Configurationh.txt

    configuration_adv.h file Configuration_advh.txt

    videos shortly

  • @JoergS5 I'm not sure how to make smaller videos. 4mb is a very small limit with todays smart phones and the HD quality of them. or maybe i just dont know how to use it properly. any way to shrink the size drastically , but the video still clear enough to see whats happening?

  • @Vulrath Maybe you can find an app to make videos with low resolution for youtube. Are you using Android or iPhone, or something other?

    I looked into the config files, but I must confess that it's difficult to read if one is used to the Duet config files. Maybe someone can help who knows marlin files.

    Are there homing files in marlin or is the procedure you described above a manual process?

  • Moderator

    vimeo might be the easiest way to share video.

  • @JoergS5 I understand, I'm on a Duet forum asking for marlin help, so its ok that your not familiar with it. I have an android. I dont seem to find any homing files, it seems this is a manual process.

Log in to reply