1. Got a question or need help troubleshooting? Post to the troubleshooting forum or Search the forums!

Solved Auto leveling

Discussion in 'Troubleshooting' started by Bd182, Mar 3, 2019.

  1. Bd182

    Bd182 Member

    Joined:
    Jan 25, 2019
    Messages:
    66
    Likes Received:
    1
    I've been thinking a lot about this, trying to understand the logic of it all. Especially about the inequality between the Z axis lead screw nuts, which can be adjusted with the screws that secure the limit switch holder. I've now set them to be roughly equal, to get the right side limit switch to engage sooner. But it seems to me it doesn't much matter WHEN the limit switch engages. The lead screws will turn until the nozzle touches the bed no matter where the nuts are. As long as the X axis is parallel to the bed, the auto leveling function ought to work no matter where the Z axis nut is, within reason. It seems to me that, after this, the Macro code to set the Offset (M565) is what really matters. Too big and you're printing air. Too small and your'e scraping the bed. Am I wrong?

    I've watched all the demos on bed leveling and read all the posts I can find, but I still don't understand how to deal with my current problem. The right side of the bed is high, the left side is lower. In the picture, you can see the results. I think scraping the bed is what clogged my nozzle, and I really want to avoid doing that again.

    How do I trim the level I now have? By turning one of the Z axis lead screws a tiny bit?

    Your Macros have steps of 0.1. But I could create finer steps, right? For example, if I need an offset of 1.15, that's legitimate isn't it?

    circle1.jpg
     
  2. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    Shim the low side -- that is the easy answer :)
    No shame there, mine are shimmed
     
  3. Bd182

    Bd182 Member

    Joined:
    Jan 25, 2019
    Messages:
    66
    Likes Received:
    1
    Thanks for that. It's the answer that made sense to me.

    But why does the auto level function not take care of this? Is it because the precise degree of level required is too fine for the software to resolve, and we need to make up the last bit with shims or factional turns of the lead screws?
     
  4. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    Because the style of autoleveling used in the 1.0 version of Marlin (the stock version for the R1/R1+) is not very smart.
    It mathematically creates a level plane that intersects all of the sampled points. This will not cure a bed that is off by a large enough amount consistently on on side or another. The newer version of Marlin (1.1.x) has other more intelligent options for autoleveling. Sadly Robo did not chose to go that route. You can use the forum version if you want (not stock). I personally just do some manual leveling and then let autoleveling fine-tune it.
     
  5. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    Also the reason the switch positions matter is that if either Z switch triggers then the firmware gets a Z home signal.
    So if one is physically positioned lower or higher than the other they will tend to trip sooner (or not at all) and you are not getting a really good Z home signal. They should both be positioned so that they almost trip together or they are very close to both tripping when the bed is probed for a given position.
     
  6. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    The autoleveling Z offset (the M565 command used in the startup GCode block) is there to assist the autoleveling code understand what "slop" is in the sensors. That way it will account for that extra bit of inaccuracy when it is calculating the level plane. Make sure you use that M565 and tweak it to find the best value for your printer (everyone will be slightly different) Set the value and then run a 1-layer print and see this page for what it SHOULD look like: printedsolid.com/blogs/news/tagged/first-layer
    tweak the offset MORE negative to lift is further from the bed and LESS negative to get it close (the default is -1.0mm ->

    G28 ; home all axes
    M565 Z-1.0 ; set the offset for auto-leveling mechanism
    G29 ; run auto-level
    M117 Waiting for extruder to stabilize


    but you should adjust it to match what is best for your printer
     
  7. Bd182

    Bd182 Member

    Joined:
    Jan 25, 2019
    Messages:
    66
    Likes Received:
    1
    I've been tweaking the lead screws, tweaking the M565, and printing one layer of a circle for five hours. I'm not convinced I'm any closer than when I started. One you get off in the weeds, it's HELL to get back. I've seen filament streaming into thin air and I can hear the nozzle scrape the glass. And I still haven't see a first layer like I should.

    The default offset values that come up in MatterControl are 0.8 to 1.2 ... a long way from -1. And when the machine was new, +1.1 worked fine. But no more.

    Are you CERTAIN that negative values raise the print head? Seems to me I had an offset of 30 and the head was way up in the air.
     
  8. Bd182

    Bd182 Member

    Joined:
    Jan 25, 2019
    Messages:
    66
    Likes Received:
    1
    M565 Z1.0 - prints in air
    0.5 - right side closer but too high, left side, not sure
    0.3 - Whole circle looks like it’s too close and the nozzle is dragging the glass.
     
  9. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    So do your manual leveling based on what you see with the 0.5 (and you should be adjusting that in 0.1 increments for best results)
    Shim the left side if that is higher.
    Paper shims work fine (although once you know who much to shim you can use something more permanent if you like.

    Hole punch "holes" from a paper punch work really good for shimming.
     
  10. Bd182

    Bd182 Member

    Joined:
    Jan 25, 2019
    Messages:
    66
    Likes Received:
    1
    I gave up on paper shims because they were getting crushed and changing thickness over time. The lower magnet is in a pocket, ad the long it sits there, the more the paper gets pushed into the hole and the bed drops. I think I can manage level by hand turning the lead screws, but I can't find "the zone" for M565. Are you sure more negative values are a higher print head? Becuase that's not what I'm seeing.
     
  11. Bd182

    Bd182 Member

    Joined:
    Jan 25, 2019
    Messages:
    66
    Likes Received:
    1
    For future reference, here is what I have arrived at:

    Offset test
    0.5 - Printed a small square. First layer seems too thin.
    0.6 - Not much different. Very thin layer 1
    0.9 - The skirt is spotty, but the layer is thick.
    0.8 - The skirt is spotty, but the layer is thick.
    0.7 - Has a skirt, very thin first layer.

    Using too much hairspray raises the level of the bed surface, and the nozzle drags though it, leaving a track that looks like the print nozzle is too low. The hairspray makes it very difficult to judge exactly what’s happening. Small test prints with nothing on the bed gives much clearer results.

    No setting seems to give a first layer that is very opaque, or nearly as thick as the second .3mm layer, even though MatterControl was told to use a .4mm first layer.

    Also, when trimming with the lead screws for level, one has to consider that a .3mm layer of filament corresponds to just 1/13 of a turn of the lead screw. It's very easy to manually adjust them too far and overshoot the golden zone.
     
  12. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    More negative is further from the bed. Not a larger value -- technically a smaller one :)

    -1.0 is x
    -1.1 is x+ 10% more

    Less negative values are closer to the bed. (you would NOT ever want to use an actual positive number because that -- technically -- would be below the bed.

    No mind you , the value from M565 is not directly used, it is a part of the calculations the autoleveling code does to determine WHERE the level plane starts.

    I am not a real fan of the early versions of autoleveling in Marlin. They are dumb and there are many things that it will not fix (like a section of the bed that is warped).
     
  13. Bd182

    Bd182 Member

    Joined:
    Jan 25, 2019
    Messages:
    66
    Likes Received:
    1
    I don't understand that, but I seem to be back on track so it's okay. My values are not negative, they're positive. Though you say to never use an actual positive number, my default Offsets were positive numbers starting at 0.8, which I confirmed with the M565 query. It currently returns:

    <- zprobe_offset: 0.70

    Maybe it does not care about the sign. Anyway, the larger the positive number, the farther from the bed it is.
     
  14. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Just to throw in more confusing data, the R1 had an ingenious way of detecting when the nozzle hit the bed, but a very poor implementation. As the nozzle moves across the X axis the triggering Z endstop switch changes from the left side to the right side, and unless the switch is 100% identical (which is simply impossible to tell and nearly as impossible to manufacture that way) there will be differences between the sides. Most of the long time users have abandoned auto-leveling per print and went to newer leveling schemes such as MESH (now no longer being improved) and UBL (Unified Bed Leveling). those are more akin to one and done leveling schemes where you level the bed once and then every print only requires a HOMING command.
     
    Geof likes this.
  15. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    It cares.

    M565 Z-0.6
    and
    M565 Z 0.6

    Give me totally different actions -- one is perfect for the printer it is on and the other is way off of the bed

    Also it matters where in the startup script the M565 is.
    It must be aftter the last G28 and before the G29 or it is not used :)
     
    Kevin H likes this.
  16. Bd182

    Bd182 Member

    Joined:
    Jan 25, 2019
    Messages:
    66
    Likes Received:
    1
    M565 Z-0.6
    and
    M565 Z 0.6

    Give me totally different actions -- one is perfect for the printer it is on and the other is way off of the bed

    I wish to understand this. If I enter M565 in the gcode terminal, it returns my positive numbers. And, the preprogrammed default values on the MatterControl (2) Macro settings were all positive numbers when I downloaded it. Why would it be that your rule of thumb is negative values, and all of my experience is positive numbers? Does it just depend on where the limit switches are arranged to trigger relative to the nozzle tip?
     
  17. Bd182

    Bd182 Member

    Joined:
    Jan 25, 2019
    Messages:
    66
    Likes Received:
    1
    This makes total sense to me. Auto leveling on every print seems unnecessary and is a tedious overhead of time, especially on small prints. I wish I could disable auto leveling and execute it manually when I needed it. Do people ever do that on the Robo R1?

    And, it seems like a better sensor, like the BLTouch would do a more consistent job. Could you not rig a BLTouch-like sensor on the carriage and attach it to the current sensor wires so that the center-traveling probe triggered the current auto leveling procedure? This would probe the bed height much more accurately than two side mounted micro switches. But, it would require a manual leveling procedure instead of an automatic one on every print.
     
  18. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    The M565 has always used a negative mnumber because 0 (zero) is supposed to be "on the bed" so a positive number to M565 would be below the bed.

    Please do NOT confuse the autoleveling Z offset to any "silcer" defined Z offsets because those are not going to be used by the autoleveling. They can be global Z offsets that the slicer applies to ITS calculations, but they are not used directly by the firmware autoleveling logic. In the Marlin 1.0 firmware the Robo uses stock -- M565 is how you do that.
     
  19. Bd182

    Bd182 Member

    Joined:
    Jan 25, 2019
    Messages:
    66
    Likes Received:
    1
    I swear to you that I'm not trying to be difficult. I just want to understand.

    The image below shows the default settings for the Macros that came with the MatterControl I downloaded a month ago. I've only had the (new) Robo since January 11. The numbers are all positive, and when I issue the query "M565" manually, it returns positive values. When I edit one of the macros, it shows the M565 and M500 codes, and the values are positive.

    Would it not be true that the value needed for M565 would depend on the relative positions of the nozzle tip and the level at which the limit switches opened?

    Macros.jpg
     
  20. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    I can't speak for mattercontrol as I never use it.
     

Share This Page