Close



Page 1 of 4 123 ... LastLast
Results 1 to 10 of 33
  1. #1

    Bed auto leveling works, but x/y axis are off with correct offset

    I'm hoping someone might have an idea or answer to this problem. I technically know what is wrong, but I have no idea how to fix it.

    I got my bed auto leveling working about a month ago, but when I first got it going, I was experiencing some bad offset problems. My Z probe offsets were (and still are) throwing off my X and Y axis, however the Z axis is working perfectly. I inverted the figured exactly like I was supposed to, but after auto leveling was done and the print began, it was shifting my X and Y axis exactly the same amount that I had in my configuration.h file for the Z probe offsets in the X and Y axis.

    This would make my X 0 actually become X 33 and the Y 0 to become Y -11. So a print that would use the entire 200mm x 200mm bed would cause serious issues. My X carriage was crashing into the X motor mount because of the 33 shift and when trying to print around Y 0, I would experience a crash too. A print that would start around X 2 would start at X 35 because of this 33 offset. I finally figured out the Z probe offsets in the X and Y axis were causing the shift, so to remedy this problem temporary I ended up changing my Z probe offsets in the configuration.h file to 0 for both the X and Y axis, but my -5.7 offset for the Z axis was working perfectly, so I left that alone.

    Now my printer is using the entire bed space without the mechanical crashes, but I have noticed that although this has fixed the print offset problem, my auto leveling has been thrown off because of it. Prints are being squished too much around X0-X33, while X167 -X200 are being messed up because the hotend is too far away from the bed. The same problem goes for the Y axis. The auto leveling is not adjusting because it is calculating everything based on thinking that my hotend is in the X and Y position that the actual z probe is. This basically is rendering my bed auto leveling as useless.

    If I change the Z probe offsets back to the correct values for the real offset of the X and Y axis my auto leveling becomes accurate, but then I am back to the problem of my bed coordinates being shifted and not being able to use the entire 200mm x 200mm or else face certain mechanical crashing.

    Does anyone have any idea at all what could be causing them. I am even open to trying any suggestions that this point because I am out of ideas. Any help would be much appreciated

    Configuration.h.
    I have included my configuration.h file just in case it might help. This is the current configuration I use to NOT experience the crashing but the auto leveling is bad off because of the 0 X and Y Z probe offset.

    Almost forgot, the printer is an I3, not an I3V
    Last edited by Pronus; 09-14-2014 at 08:28 PM. Reason: left out info

  2. #2
    So even though this issue has me stumped, I've still been trying to find a fix or way around this problem. Last night I reentered the correct z probe offsets which are X:32.6 Y:8.1 Z:-5.7. I noticed that when I enter a G28, the X and Y axis will home to 0,0 but as soon as the z probe lowers and touches the bed to zero, then those figures are changed from zero to the opposite of my z probe x/y offsets. After the G28, M114 gave me X:-33.00 Y:-8.00 Z:5.70. I can't seem to figure out why the Z offset works perfectly which is normally most peoples issue, but the x and y offsets are throwing everything off. So out of desperation, I tried doing G28 X0 Y0 and then afterwards a G28 Z0 and then G28 X0 Y0 again. A M114 confirmed afterwards X:0.00 Y:0.00 Z:5.70. I got super excited thinking I found a way around my problem...until I tried G29. As soon as the z probe was about to touch the bed it threw everything back off to X:-33 Y:-8.

    I tried searching the web for anyone who has experienced x/y offset problems with bed auto leveling but all I could come up with is people experiencing z offset issues.

  3. #3
    Super Moderator Roxy's Avatar
    Join Date
    Apr 2014
    Location
    Lone Star State
    Posts
    2,182
    How many other changes do you have to the firmware? Would it make sense to start with a working, known good code base and move your values to that?

  4. #4
    I do have a number of changes in the configuration.h file and I thought the same thing might be possible. I figured I could have messed up something in the configuration.h file while updating my firmware to one that had bed auto leveling, since the firmware version that came with my printer from Markerfarm did not include bed auto leveling. Last night I also downloaded the latest update for Marlin and tried to change the configuration.h file to the values that the stock Makerfarm firmware has, aside from enabling the bed auto leveling feature and enabling the servo. I got the same issues with trying that route. I'm not ruling out the possibility that I still messed something up though.

    I wish i could get a hold someone's version of Marlin with working bed auto leveling and then just go in there and change the values for my servo retraction angle and my particular z probe offsets and see if that would work.

  5. #5
    Technologist dacb's Avatar
    Join Date
    Aug 2014
    Location
    Edmonds, WA
    Posts
    139
    In this post, I have a diff file for my config with working auto bed level, calibrated to my extruder and Auto Bed Leveling (ABL) probing mechanism. This is for Marlin as cloned from GitHub on 9/7/14.

    HOWEVER, don't use it without calibrating your E-steps (see ZennmasterM's video here: https://www.youtube.com/watch?v=w_Wb0i0-Qvo ) and some parameters for the ABL system, including the servo foot pulse width for extend and retract and the Z-offset from the probe-to-tip. Also, disable the software safe on travel beyond endstops. Really, see this ZennmasterM video ( https://www.youtube.com/watch?v=6msLOR_EfKc ) and read his blog.

    This is an archive of my current Marlin including the Configuration.h. Use at your own risk!
    Marlin_dacb_9_13_14.zip

  6. #6
    Super Moderator Roxy's Avatar
    Join Date
    Apr 2014
    Location
    Lone Star State
    Posts
    2,182
    Quote Originally Posted by Pronus View Post
    I wish i could get a hold someone's version of Marlin with working bed auto leveling and then just go in there and change the values for my servo retraction angle and my particular z probe offsets and see if that would work.
    Dacb beat me to it. I just crossed all of my stuff over to the latest Marlin code base. There is a small bug in the current Marlin code base and some of the new Probe Sled stuff is missing a conditional #ifdef to turn it off. That is fixed in mine but if you grab the latest from GitHub you may hit that. Other stuff has changed too.

    It is difficult to help somebody if you are not sharing an identical code base. Let's see if you can get your values crossed over to Dacb's code-base and see what happens. If that doesn't work out, we can try the same approach with my code base. But in the mean time, why don't you post your Configuration.h file so we can do a quick scan of it and see if anything obvious is wrong with it.

    Actually... Why don't you .ZIP up the whole thing and post it. The problem you are talking about kind of feels like a few lines of code got accidentally deleted. It really doesn't feel like a Configuration.h file problem if that makes any sense.

  7. #7
    Technologist dacb's Avatar
    Join Date
    Aug 2014
    Location
    Edmonds, WA
    Posts
    139
    Roxy is right, in the current Marlin clone, there were sled #ifdefs I had to add to get it to compile. They are included in my archive above.

    Aside: Roxy, are your mods to raise the carriage before retracting the probe and leaving the probe down during leveling integrated back into the Marling main codebase? I'd really like those features.

  8. #8
    Super Moderator Roxy's Avatar
    Join Date
    Apr 2014
    Location
    Lone Star State
    Posts
    2,182
    Quote Originally Posted by dacb View Post
    Roxy is right, in the current Marlin clone, there were sled #ifdefs I had to add to get it to compile. They are included in my archive above.

    Aside: Roxy, are your mods to raise the carriage before retracting the probe and leaving the probe down during leveling integrated back into the Marlin main code-base? I'd really like those features.
    I do not believe they are. I was trying to get setup to submit the Enhanced G29 command and that was the reason for moving to the current code base. The only thing submitted and accepted so far is the M48 Z-Probe Repeatability Test.

    Here is an archive file with my stuff moved to the current code base. If you use it, you will need to modify Pins.h and Configuration.h for your setup. If you have an UltiPanel, you will need to delete a couple of functions up at the top that facilitate the M600 filament change command. Other than that... I think it will compile and work. (Famous last words!!!) If Dacb decides to migrate to this code base, it would make sense for Pronus to move there also. That way we all would have the same code base and it would not be too difficult to get Pronus up and running.

    I've printed a couple of parts and everything seems correct and working. However, I think there is an extra Raise Z After Probe at the end of the G29. I'm not sure. It doesn't hurt anything, but the updated Marlin code-base seemed to have some of those issues addressed and right now there might be an extra raise that needs to be pulled out. If so... I'm pretty sure it is just a matter of deleting 1 line of code but I haven't dealt with that yet.
    Attached Files Attached Files

  9. #9
    I really appreciate all of the help.

    Dacb, I guess I should have mentioned it, but I have been following Zennmaster's youtube videos and blog even before I had the printer and "thought" I followed everything in both his videos and blog to a T with the bed auto leveling. I've messed with the configuration.h file so many times that I'm actually understanding a large portion of it now which I guess is one of the positives of running into this issue

    Dacb, I downloaded your version of Marlin and the only things that I changed in the configuration.h file was my extruder e-steps, bed size (I have an 8 inch), hotend max temp (I have a J-head), the probing points for auto leveling, my z-probe offsets, and my servo endstop angles.

    I noticed however in that version of Marlin, that there was no Marlin.pde file that I normally use to upload the firmware with the Arduino software. I ended up just copying my .pde file over to compile it.(I hope that was ok because I'm not really sure how else to remedy that issue)

    I noticed a few changes in the behavior of the printer like my servo shaking like crazy so I did go back and turn on #define PROBE_SERVO_DEACTIVATION_DELAY 300 like I had in my configuration.h file.

    G28 worked great, and when I tried G29, right after the x carriage raised and dropped down the z-probe, I noticed on the LCD screen that I was right back to the same x-33 y-8 which are the values of my z-probe offsets to the hotend. The z-probe z axis offset however is still working great like it did in my version of Marlin and configuration. I confirmed this after the auto leveling was done with a G1 F1500 X0 Y0 and noticed same offset that I keep experiencing.

    I'm going to try your version Roxy, but I was wondering if I could get some more information about how I should modify the pin.h because I have zero experience with messing with that. I'm going to go ahead and download your 9-15-2014-work copy.rar and see if I can't get that going. I was really hoping that Dacb's version was going to fix my issues because I was assuming it was a problem in my configuration.h. I feel more confused to why this I am experiencing this issue now more than ever lol.
    Last edited by Pronus; 09-16-2014 at 01:13 PM.

  10. #10
    Marlin-Marlin_v1.zip

    I almost forgot, here is the version of Marlin that I was using with my configurations. I did notice a few differences with mine and Dacb's in the configuration.h file in regards to endstop pullups and a few other things, but they must not be the cause of my issue since Dacb's version and configuration is still creating the same offset issue for me.

    Roxy, I've been working on the configuration.h file of your 9-15-2014-Work Copy.rar, but when I got to a certain area it was so different than any other configuration.h file that I have ever messed with, that it just completely when over my head.

    the part that has me confused and/or confused is about I'll paste below
    -----------------------------------------------------------------
    //===========================CALIBRATION PARAMETERS==========================
    //================================================== =========================
    // Formula for X and Y steps per mm = [(Number of Motor Steps per Revolution)*(1/(microstepping ratio)]/(BeltPitch*ToothCount)
    // Formula for Z steps per mm = (Motor Steps per revolution)*(1/(microstepping ratio)/(Vertical Movement per revolution) where Vert. Movement per revolution = 1.25mm for directly driven M8 rods on Prusa
    // Formula for Extruder steps per mm = [(PackingDensity)*(Number of Motor Steps per Revolution)*(Gear Ratio of Extruder)*(1/(microstepping ratio)]/(pi*(Diamter of Hobbed Bolt or Pinch Wheel))
    // -Equation based on: http://www.brokentoaster.com/blog/?p=358 and http://hydraraptor.blogspot.com/2011...flow-rate.html
    // -The term ((NozzleDiameter^2)/(ExtrudedFilamentDiamter^2) from the above articles is consolidated to the term "PackingDensity"
    // INSTRUCTIONS: ENTER PARAMETERS BELOW FOR YOUR EQUIPMENT.
    #define MICROSTEPPING_RATIO 0.0625 // Enter microstepping ratio of electronics. Printrboard and Pololu = 1/16, Gen6 = 1/8, etc.
    #define XY_MTR_STPS 200 // Enter number of steps per one revolution of the X and Y motors. See motor datasheet, 1.8degree = 200 steps, 0.9degree = 400 steps
    #define Z_MTR_STPS 200 // Enter number of steps per one revolution of the Z motor(s). Print calibration cube of 10-20mm to compute xyz steps
    //#define EXTRUDER_MTR_STPS 200 // Mark 100mm length on filament. Measure length needed in software to extrude 100mm. 110mm(software)/100mm(physical)*200=220steps

    #define EXTRUDER_MTR_STPS 200 // EDN hack to get edges of fill to smoosh together.


    #define PACKING_DENSITY 1.0 // Leave at 1.0 and adjust in Skeinforge 40+. Alternatively, leave at 1.0 in Skeinforge and calculate manually: Packing_Density = (NozzleDiameter^2)/(Measured_Extruded_Filament_Diamter^2)
    #define BOLT_DIAMETER 8 // Enter measured diameter of hobbed bolt or pinch wheel



    //#define EXTRUDER_GEAR_RATIO 49/15 // Enter gear ratio of extruder. Wade's Extruder: 39/11, Accessible Wade's by Greg Frost: 43/10, Adrian's Extruder: 59/11, etc.
    #define EXTRUDER_GEAR_RATIO 75.0/9.0 // Hacked by Roxy for low gear ratio gears with 53mm spacing


    #define BELT_PITCH 2.5 // Enter pitch of X and Y belts in millimeters (space from tooth to tooth). XL belts = 5.08mm
    #define GEAR_TEETH 16 // Enter number of teeth on X and Y gears
    #define Z_ROD_PITCH 1.05833333333 // Enter pitch of Z rods in millimeters. Pitch = 1.25mm for directly driven M8 rods, 1.41111111mm for directly driven 5/16-18 rods.
    // ************* End MECHANICAL Calibration *************

    // default settings

    #define PI 3.14159265359
    #define DEFAULT_AXIS_STEPS_PER_UNIT {((XY_MTR_STPS/MICROSTEPPING_RATIO)/(BELT_PITCH*GEAR_TEETH)), ((XY_MTR_STPS/MICROSTEPPING_RATIO)/(BELT_PITCH*GEAR_TEETH)), ((Z_MTR_STPS/MICROSTEPPING_RATIO)/Z_ROD_PITCH),((PACKING_DENSITY*EXTRUDER_MTR_STPS*E XTRUDER_GEAR_RATIO*(1/MICROSTEPPING_RATIO))/(PI*BOLT_DIAMETER))}


    -------------------------------------------------------------------------

    I'm completely a newb when it comes to motor stepping and motor specs/belt pithces and what not. Any idea what I could enter for these values or where I could teach myself in order to better understand how to configure this part?
    Last edited by Pronus; 09-16-2014 at 02:20 PM.

Page 1 of 4 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
  •