Close



Page 1 of 3 123 LastLast
Results 1 to 10 of 25
  1. #1
    Banned
    Join Date
    Jan 2015
    Posts
    306

    Auto bed level Z offset inconsistent

    Hi,

    I have installed auto bed level on 2 of my machines. I am running arduino 2560 / ramps 1.4 / marlin. I use a micro servo with very little backlash and my own bracket designs that are very stiff. The mechanics of my setup are very repeatable. I tested the ABL with an M48 command and my standard deviation is less then 0.01 for both machines. That means the micro switch and bracketry is stiff and predictable.

    The problem lies with my z offset. I get the value by rough measurement, then attempt to print, and then I adjust my next print accordingly to get closer to the perfect 1st layer thickness. This process takes 3 or 4 tries before I nail down my first layer thickness and the correct z offset.

    I then edit my firmware and upload it. The new z offset is in the machine, I see it on my LCD screen.

    However, despite all this, the machines do not show a consistent Z offset after a few prints. The z offset changes, by a large amount, on the order of millimeters. I end up having to recalibrate the zoffset frequently. I even went to lengths and bought a dial gauge and made brackets to mount it to the machine head, just to ensure the bed is flat.

    I took every precaution to ensure the printing is repeatable and quick. The ABL system does work, the Z axis rods are turning and attempting to compensate, but z offset is just a ghost that I am trying to chase.

    Any advice is appreciated.

    - D

  2. #2
    Super Moderator Roxy's Avatar
    Join Date
    Apr 2014
    Location
    Lone Star State
    Posts
    2,182
    Do you have the EEPROM turned on in your version of Marlin? If so, what ever Z_PROBE_OFFSET_FROM_EXTRUDER that you set will be ignored. It will pick up the stored value in the EEPROM. Probably you should turn off the EEPROM and EEPROM chit chat until you get the Z_PROBE_OFFSET_FROM_EXTRUDER dialed in and at the right height.

    If you can't do that (turn off the EEPROM), you can do a M502 followed by a M500 to load the Configuration.h settings and then store them in the EEPROM.

    But before you do that... Do a M503 and see what it says the Z_PROBE_OFFSET is. Probably, that is where the bad number is coming from.

  3. #3
    Banned
    Join Date
    Jan 2015
    Posts
    306
    Quote Originally Posted by Roxy View Post
    Do you have the EEPROM turned on in your version of Marlin? If so, what ever Z_PROBE_OFFSET_FROM_EXTRUDER that you set will be ignored. It will pick up the stored value in the EEPROM. Probably you should turn off the EEPROM and EEPROM chit chat until you get the Z_PROBE_OFFSET_FROM_EXTRUDER dialed in and at the right height.

    If you can't do that (turn off the EEPROM), you can do a M502 followed by a M500 to load the Configuration.h settings and then store them in the EEPROM.

    But before you do that... Do a M503 and see what it says the Z_PROBE_OFFSET is. Probably, that is where the bad number is coming from.
    Wow thank you. I will try to do this.

    To your first question, how do I know if EEPROM is turned on in my version of Marlin? I would not know how to answer that question.

    How do I turn off EEPROM and chit chat? Do I turn it back on after I set my extruder offset?

    I will try the M503 first. If the number is good, do I just leave it alone? If the number is bad, what would be the next step from there?

    Thank you Roxy

  4. #4
    Super Moderator Roxy's Avatar
    Join Date
    Apr 2014
    Location
    Lone Star State
    Posts
    2,182
    You can tell if your EEPROM is turned on by looking at your Configuration.h file. It will have a couple of lines towards the bottom:

    //#define EEPROM_SETTINGS
    //to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
    // please keep turned on if you can.
    //#define EEPROM_CHITCHAT

    If you see the // they are commented out and the EEPROM is turned off.

    M503 may not tell you about the Z_PROBE_OFFSET. There is a bug depending upon which version of Marlin you are using. Who ever did the early Auto Bed Leveling didn't realize you could print EEPROM values with M503. That has been fixed in later versions but if you don't see a number, it is probably because you have the wrong version of Marlin.

    I would do a M502 and M500 either way. Get everything sync'ed up to what the Configuration.h file has for values.

  5. #5
    Banned
    Join Date
    Jan 2015
    Posts
    306
    This is what I have.

    // @section extras


    // EEPROM
    // The microcontroller can store settings in the EEPROM, e.g. max velocity...
    // M500 - stores parameters in EEPROM
    // M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
    // M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
    //define this to enable EEPROM support
    //#define EEPROM_SETTINGS


    #ifdef EEPROM_SETTINGS
    // To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
    #define EEPROM_CHITCHAT // please keep turned on if you can.
    #endif



    I ran a print, my z offset was 12.88mm. It made a good first layer. Then a couple hours later I came back to run a new print and it was printing 3+ mm above the bed. WTF??

    I hooked up pronterface and issued M503 and it shows the firmware 12.88mm offset as expected. How do I sync up everything?

    I am in need of a little bit detail direction as I have never encountered this issue before and it is driving me insane.

  6. #6
    Banned
    Join Date
    Jan 2015
    Posts
    306
    Is there any way I can issue a command to change the z offset during a print? That would be such a huge step for me because then I can tweak the first layer in real time through pronterface while its making the brim until I am satisfied with the first layer height, and I dont even need to kill the print and start over.

    This would be a good thing. Other then that, I am still getting air prints as first layers when I walk away from my machine.

  7. #7
    Super Moderator Roxy's Avatar
    Join Date
    Apr 2014
    Location
    Lone Star State
    Posts
    2,182
    If you enable custom M codes:

    #define CUSTOM_M_CODES
    #ifdef CUSTOM_M_CODES
    #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
    #define Z_PROBE_OFFSET_RANGE_MIN -5
    #define Z_PROBE_OFFSET_RANGE_MAX -2
    #endif

    You can pause the printer and change the Z_OFFSET. But instead of doing that, I suggest you try disconnecting PronterFace from the printer (between prints) and resetting the Arduino board. Then reconnect PronterFace and start over. Some how... Doing that avoids the air prints.

    The good news is the air printing bug has a lot of a attention and I do think it is going to get resolved very soon. My best advice is to hold on and wait for the fix instead of trying desperate things.

  8. #8
    Banned
    Join Date
    Jan 2015
    Posts
    306
    Quote Originally Posted by Roxy View Post
    If you enable custom M codes:

    #define CUSTOM_M_CODES
    #ifdef CUSTOM_M_CODES
    #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
    #define Z_PROBE_OFFSET_RANGE_MIN -5
    #define Z_PROBE_OFFSET_RANGE_MAX -2
    #endif

    You can pause the printer and change the Z_OFFSET. But instead of doing that, I suggest you try disconnecting PronterFace from the printer (between prints) and resetting the Arduino board. Then reconnect PronterFace and start over. Some how... Doing that avoids the air prints.

    The good news is the air printing bug has a lot of a attention and I do think it is going to get resolved very soon. My best advice is to hold on and wait for the fix instead of trying desperate things.
    Thank you! You are the best dude (gal?).

    I will try M851

  9. #9
    Banned
    Join Date
    Jan 2015
    Posts
    306
    Hi Roxy. My firmware already has the M851 command coded.

    I put m851 in pronterface and it shows the same offset on my LCD screen. Then I type"M851 Z-13.91" to go from my current offset of 13.5 to the new offset of 13.91mm. All this while the printer was paused, I then resumed print and I am unsure if it accepted this new offset or not. I dont think it did, was my syntax correct in pronterface to issue the change?

  10. #10
    Super Moderator Roxy's Avatar
    Join Date
    Apr 2014
    Location
    Lone Star State
    Posts
    2,182
    Oh Wait! The Z_PROBE_OFFSET is only used at the end of the G29 when it 'Corrects' the nozzle position. That M851 command won't do anything unless you do a G29 also. And of course, you don't want to do that in a middle of a print.

Page 1 of 3 123 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •