auto level and z homing

Hello,
I have a prusa i3 rework.
I want to do an autoleveling before a print. The problem is that my printer start always to print to high.
A the start of my gcode file i use G8 and G29. Can you tell me where is the problem?

Thanks

Fredd3dRob
«1

Comments

  • z probe height is distance of nozzle when z probe triggers. Increase it, if you are starting too high. G8 is not a implemented command. G29 only works if your bed is not rotated! Use G32 to correct rotation as well.
  • Hello,
    Thank you for your answer. It's correct, i meen G28. I don't really know the difference between  G29 and G32...

    I have a big problem with my Z 0. I define it with a G92 Z0 when my nozzle is at the correct distance from the bed but i think this define is not store to the memory of my printer.

    Can you help me?

    Thanks

    Fredd3dRob
  • Exactly. G92 is just a temporary shift of coordinate system that does not survive G28. What you normally do is G32 S2 or G29 S2 to store the result in eeprom. Then on next start homing is all you need until you change bed somehow.
    When you correct z probe height and then do probing you should get the correct height and only G28 is needed.

    Difference:
    G29 measues 3 points and takes the average height. So this is when you do not want to correct your bed rotation.
    G32 takes 3 points and puts a plane trough it so it adjusts z for every position according to your bed rotation. You will see that z moves a bit when you move left/right/fron/back depending on your rotation. G32 returns the rotation matrix. Normally you want it to contain 0s and 1 on diagonal, then it is perfect square. The bigger the zeros get the more the printer has to correct.
  • Hello everyone,

    I'm new to Repetier. I just setup the new firmware on my printer a few days ago. I'm also having a problem with z homing and probing. I am switching over from Marlin because I was told Repetier has native 4 nozzle support and superior auto bed leveling. So far, I haven't been able to experience either as I am stuck.

    I use a servo with a switch attached. I want to home on Z min.

    When I try to home on the bed (Zmin) the servo does not swing out as it does when it's auto leveling. However, the switch does function and I can press it with my finger to stop it from crashing. The arm does swing down for auto bed leveling. So, I can run the auto leveling sequence but I cannot home Z on the bed. So, I guess the question is: How do I make the servo work in conjunction with Z home?

    For temporary relief, I changed Z home to Zmax. So, now it homes at the top of the printer (which I don't love but I wanted to get printing asap). This provided me with a new problem. It homes at Zmax just fine but when I go to print, after the auto leveling portion is done, it prints mid air (around 10mm above the bed). So, I thought to myself, ok, let's just fix this by changing the Zprobeoffset or whatever it's called in the firmware. I'm not looking at the firmware at the moment as I am writing this from my office or I would give exact values and names. Well, changing the Z offset did nothing for my cause. It did the same thing no matter what value I used.

    I was able to z home on the bed in Marlin with the servo, so I know it's possible. I just have no idea how to do it in Repetier.
    Also, what the heck is going on with printing in the air? I measured everything for appropriate values, double and triple checked.
  • If you home to Z Max then do a G1 Z0 where does your nozzle end up? 

    My guess is that your Max Z height is incorrect (too small).

    I can only offer limited support since I use a Delta machine, but we also home to Zmax and then print. If you're air print it's typically because your max Z height is set up too small. 
  • You can change z length to correct it. Once you know correction value change z probe height by the z length difference to have it fir on next calibration.
  • Ok, Thanks! I'll give that a try in a few minutes. What about homing with the servo on the bed? Is there something I can do to make that work?
  • Homing has no servo support. It uses a z min switch not a z probe (also there are exceptions). Also with z probing you should home to z max. A rotated bed hot not one z min position. z=0 depends on x and y position.
  • Hello,
    thank you for you answer...
    i have tried it but why when i make G32 S2 and turn of and on my printer the result from G32 S2 are not stored in eeprom?
    I need to do a new G32 S2.

    Fredd3dRob
    Exactly. G92 is just a temporary shift of coordinate system that does not survive G28. What you normally do is G32 S2 or G29 S2 to store the result in eeprom. Then on next start homing is all you need until you change bed somehow.
    When you correct z probe height and then do probing you should get the correct height and only G28 is needed.

    Difference:
    G29 measues 3 points and takes the average height. So this is when you do not want to correct your bed rotation.
    G32 takes 3 points and puts a plane trough it so it adjusts z for every position according to your bed rotation. You will see that z moves a bit when you move left/right/fron/back depending on your rotation. G32 returns the rotation matrix. Normally you want it to contain 0s and 1 on diagonal, then it is perfect square. The bigger the zeros get the more the printer has to correct.

  • Why do you think G32 S2 does not store rotation in eeprom. You see it in the log when you connect. It writes the rotation matrix you get after G32 and it should be the same.

    Of course you loose position when disabling printer. You need to home after every reset to make it work.
  • edited November 2015
    Homing has no servo support. It uses a z min switch not a z probe (also there are exceptions). Also with z probing you should home to z max. A rotated bed hot not one z min position. z=0 depends on x and y position.


    Others have told me that it has been done with Repetier. I'm interested
    in the exceptions! In this instance, why do you think home should be z
    max? What's your rationale?
  • Take a extreme and tilt your bed 10°. Where would you home z min without crushing nozzle? Must be the lowest point but is that where your nozzle would home? Would be just luck if this is the case.

    If you want to come 0.05mm close how do you do that with z min homing? With z max I only increase z length by 0.05.

    You paused to change filament and z changed while changing filament, how can you now continue with z min? With z max you just rehome and continue.

    That is why I prefer z max homing and why it is the only real solution wit z probing (with some very special exceptions).
  • Hey,

    I'm trying to re-use this thread but if better I can create a new one.

    I have a cartesian printer and moving from Marlin where I have all working fine, so my hardware side of things is ok.
    I was reading the instructions but they are a bit confusing in terms of commands to use and run.

    I know that my probe is 2.85mm higher than the nozzle (that is what I have so far) and I was using G28 to home all axis and later G29 to compute the bed level matrix.

    I have noticed that I can no longer do G28 because for the Z homing instead of the center of the bed it uses the corner where the probe won't stop... and bad things happen.

    So question is, is there a command to level the Z that automatically moves it to the center of the bed before performing the homing? Or I need to manually add gcode to move it there?

    Thanks!
  • Only homing order z up xy preheat z has a selectable probing position. But why do you miss your z min endstop and why are you using z min in combination with autoleveling if your z probe is 2,85mm away? z min homing is normally a bad idea since the autoleveling means you do not know where z=0 is and risk a head crash.
  • Ok, go it. 
    So I just need to add the Gcode to run the autolevel in the print gcode.

    I already have Gcode that raises the Z, then does homing of XY so it prevent the head hitting the bed during it.
    I'll remove the Z homing and just leave the autolevel code and give it a try.

    Thanks for the insights.


  • Repetier, I've read your posts re auto-leveling and probing a Cartesian printer. But you add the caveat "That is why I prefer z max homing and why it is the only real solution wit z probing (with some very special exceptions)."

    Here's my setup:

    a Taz 4 Cartesian printer with 3 FSR (force sensitive resistors) under the bed. These are arranged on a large triangle with points at the front right, front left and middle rear of the bed.

    I have these interfaced with the JohnSL board so they look like a single endstop input - which I have configured on Z min. I am sure you can see where this is going! X, Y and Z home at the front left right over one of the FSRs when I run a G28. I then run a G32 to do the probe and calculate Z plane. There are 3 probe points all directly over the FSRs. I should also note that the Z plane is adjusted manually and is pretty good. This all works well except that in my case when I print at the center of the bed the nozzle is too low. Now that I've read your post 4 above I understand that running the G28 G32 does not result in a "good" Z=0 for the print. You recommend Z max homing and I understand that. But you mention that some special exceptions. I'd like to understand these before I implement a Z max home switch. On a cartesian printer, Z movement is painfully slow and I'd prefer not to home to Z max if there is another way.

    cheers,
    Michael











  • mhackney A probe with height 0 is in deed the special exception. Maybe with the problem that homing/probing should be done with hot extruder only to prevent ooze to change the result.

    Next thing is where to home z - Rotation is done around the origin, so you need to z home at x = y = 0 to you will get an error depending on bed rotation. You might even add a small 

    #define ENDSTOP_Z_BACK_ON_HOME 0

    To compensate the resulting deflection to trigger zmin.
  • Ok, I now have the things working more or less ok.
    But still there is some behaviour that seems odd.

    @Repetier you said that there is a Z probing position and I have found the params bellow:
    ---
    #define ZHOME_X_POS 130
    #define ZHOME_Y_POS 125
    ---
    That is the middle of my bed, still if I issue a G28 after the X and Y homing the Z does the homing in the corner and outside the be, so that is not good. 
    I was hopping that it would move to the center of the bed? Aren't these the correct  ones?
    (In the mean time I use G28 X0 Y0 and then G32.)

    Another issue is that the Z homing is quite slow and in case I have the Z high up and run a G32 it take ages, as it will always return to the position where I started it to move between points.
    Shouldn't it just use the value of the Z_PROBE_BED_DISTANCE?
  • Ok, thank you for the reply! I do probe with a hot bed and hot extruder, retract and clean the ooze so no filament is interfering with the results. The bed on this machine is not terribly rigid, there is indeed a little flex during a probe. I was not aware of the ENDSTOP_Z_BACK_ON_HOME 0 parameter, that is perfect to compensate for the flex. Is this parameter available in EEPROM? If not, this would be a good candidate to add.

    Thanks again, this will make things much easier.

    cheers,
    Michael
  • @mhackney No back on home is not in eeprom. What we have in eeprom is a bedning correction for each probe point and then we compute a correction plane from this. This is more for beds hold at one side so bending increases with y. This gets added to zrpobe values. So maybe not so perfect for homing in your case.

    @Nanox z home xy is only used for homing order z up xy preheat z. So if you are not running G28 it is ignored. G32 uses the probe points defined in eeprom. Z_PROBE_BED_DISTANCE would be fine and for z max homing we even use this for a starting height after z homing to max. Then we know how deep we can go. I guess we could do a special test before starting to adjust height to enforce this so you have 4 probe runs. One for start height and 3 measurement points where we should not adjust any more. Will see when I get my next printer..
  • @Repetier - does the ENDSTOP_Z_BACK_ON_HOME parameter actually adjust the Z = 0 or just back off the "switch" (in my case the bed)? 
  • It goes up and then defines that position as z=0.
  • Perfect, thanks!
  • @Repetier - working great, thanks!
  • @Repetier, thanks that would be great.

    At the moment I need to recall to lower the Z before a new print, because if it ends quite high in the Z axis the G32 takes a looot of time. :) 


    But I have it all running fine now, just have to remember to update my old printing profiles.
  • I have to admit I don't quite follow your logic on not allowing use of Z Probe as Z min? Marlin does that just fine.

    You say there is a risk of head crash at z=0, but isn't it exactly the same if you have z max endstop at 200mm, then go 200mm lower from there? The distance to bed might be 199mm or 201mm depending on x/y.. So where's the difference in homing min or max?

    Marlin homes to z min using the probe, at the middle of the bed.. That is a good starting point for bed autolevel, just raise z like 5-10mm and start probing again at new points. Then the correction plane is calculated so that this midpoint z=0 is this valid, so later you can home with G28 and z is still correct everywhere on bed.

    I compiled a Repetier firmware that has no Z endstops defined, no min or max. It works reasonably well, but G28 wants to go to (unhomed) Z=0, which might be under the bed.. Works fine if I only home X and Y and then use G32, but it looks funny if Z is very high before probing. G32 returns to original z after each probe..

  • bccbcc
    edited April 2016
    I have tasted version 0.92.9. I only use z-min as a probe with my inductive sensor. Z-max is disabled in my case. 
    Everything is working properly without any crashes into the bed. I simply don't like to do anything with the "z-max".

    I  followed this guide to enable "G32 S2" via LCD without connecting Octoprint or computer to do the same thing. 
    I think that code should be implemented in repetier firmware from the start.

    One more thing is that my sensors offset on x is 31.5mm, on Y is 0 mm. My first move before I do G32 S3 is to move the 
    printer 31,5 mm (x offset) in positive direction. I write that start script in Slic3r otherwise the printer will go 31.5 mm to the left
    chrashing with x-min endstop. I think an offset should be handled by firmware without any script if possible.
    Here is my video test.


     
  • Works perfectly now, thanks for the hints!

    I had to adjust my Y axis a bit so that the probe is above bed at X/Y home. Originally Y home was at -5mm, and probe didn't trigger. But now it is safe to do G28 and it homes all axes.

    I think there is a slight bug in the G32 command.. I also have probe X offset 31.5mm. G32 makes extruder go 31.5mm left, no matter what the current X coordinate is.. So if you are at X home, for instance, it will bang the left endstop very violently. But this is fixed by doing "g1 x40" or something like that, before G32..

    I made a start script that heats the extruder while doing auto leveling, so actually there is no time wasted at all! Still have to wait for extruder after autoleveling.

    Anyway, I'm very satisfied at it now, works really fine and  gives excellent results.

    I'm using the Zonestar P802Q, steel frame i3 prusa clone with melzi board. They provide two firmwares, Repetier and Marlin, but only Marlin has autolevel enabled. But I got much better print results with Repetier.. Now I have good quality and autolevel in the same firmware. :)

    I asked for firmware sources from Zonestar, they gave me only Repetier source.. It is normal 0.92.8 source, but obviously it was a big help to get ready-made configuration.h.

    Oh, I had to disable menu animations, otherwise the firmware would be too big to fit.. :)
  • You are right. Would be good to check for enough place and adjust the move otherwise even if it then would measure the wrong point.
  • You are right. Would be good to check for enough place and adjust the move otherwise even if it then would measure the wrong point.

    Currently it first moves 31.5mm left, before moving to probe point. So even if my first probe point is at 40,40, it still bangs xmin endstops if I start G32 when at 0,0... It tries to go to X -31.5. It would be more logical to move directly to x=40-31.5 = 8.5.

Sign In or Register to comment.