cartesian and disortion correction

edited March 11 in Questions & Answers
So i got a new heat plate and probed it... much better

but one strange issue if i enable disortion correction, first layer is ok, but for the next layer nozzle goes down and not up. This makes the extruder start grinding filament as it can not get rid of filament


screencapture from online config tool:

bump map:

i'm sure this is my fault some how :-D 


  • Yes, looks like your fault:-)
    Values should swing around 0 and not 2.2. After all you reduce correction in teh next millimeter to 0 from 2.2mm. So for 1mm up it needs to go 2.2mm down, just as you said.

    This happens normally if z probe height is wrong. Best is running G32 S2 and then G33 directly afterwards (if extruder can switch to probe). That way it uses the height based on same z probe height and should be around 0.

    My guess is that for homing you do some tricks to compensate a wrong z probe height but G33 is not aware of this.
  • I do not do tricks for homing, but my Z limit switch's are top mounted so i just adjust the Z max height to get the first layer correct

    But i will try and check z probe height, i prop. forgot that

    Did the config look ok otherwise?
  • Exactly that is the trick. Firmware measures distance to top based on z probe height, so this correction needs to be added.

    Or you have an other problem. Make sure to go back from max endstop so z homing is not at switch. If you move at top it will go up/down and must not hit limit switch.
  • As you are homing to Z max, i think you need to do a G32 S2  to measure and set the Z length in eeprom and the follow on with your G33, this should set your matrix values closer to 0.
  • "As you are homing to Z max,"


    " do a G32 S2  to measure and set the Z length"

    why ? i just do a test print with disortion correction disabled and figure what Z lenght should be to get a perfect first layer

    And G32 is that not autolevel? just asking to be sure

    I use the disortion correction as i dont want/need to do an autolevel before each print

  • let me explain how switches are connected..

    2 z max limit switches as i use dual Z stepper drivers and limit switches to they are in sync all the time
    limit  switch 1 is connected to Z max and switch 2 is connected to X max (i dont use it anyway)

    Z probe is connected to Z min.

    its a cartesian printer and not a delta.... without disortion correction i can get a smooth first layer, for now i have just printed a marvin so the area is limited

  • edited March 12
    So if i understand both of you correct what i need to do is to home Z

    then lower Z until probe triggers, the current Z pos. should be my probe height (Z_PROBE_HEIGHT)

    i have my DISTORTION_LIMIT_TO set pretty high as the old bed was much bend, what is a reasonble value for that?

    i have DISTORTION_START_DEGRADE set to 0.3 and DISTORTION_END_HEIGHT to 1, not sure if that are still good values

  • if i do that... ie home and then lower Z until probe is triggered it says 6,61 in Z pos

    i just made a new and more solid bracket for it so might not be the same as before

    is this my new Z_PROBE_HEIGHT number?
  • edited March 12
    new bump map:

    does this look more "reasonble"? 
  • its strange.... a 250x210x0.2 test object gives these results

    the nicer one at the keyboard is without correction

    is there anything i can do to improve things? or is the inductive probe just "trash" ?
  • First MartinH is correct with saying Zmax homing should use G32 S2 to autolevel and save. This will additionally measure distance to top and set z length accordingly. Of course only works with correct z probe height.

    Your idea to home go low until it triggers and z is the height sounds nice, but is wrong. This is only true IF it was already calibrated so z=0 is where it needs to be with active autoleveling. Under this special condition it would be the value you want.

    Your correction output looks at least much better, but still is >0.8mm. For such a big value you might use at least 2mm of height to correct it down to 0 correction.

    You could make a height map in host to see if heights get equal after enabling this at least. I think it includes distortion correction.

    With inductive measurement make sure bed is off but still hot. The current changes result. I hope you have also a solid metal plate on top and do not measure against the bed heater wires with inductive probe.
  • the reason why i got really confused about G32 S2 is that i only want disortion correction and not auto level

    but i will give it a go, just need to figure a way a dummie like me can do it. i read this page:

    but it just did not make sense, that is why i tried to disable any correction and lower Z until probed triggered. i now my Z lenght without correction so i thought it was a valid way to do it
  • odd

    G32 is an unknow command

    21:40:41.921 : Unknown command:N37422 G32  S2
    21:40:45.058 : Unknown command:N37423 G32  S2
    21:40:45.984 : Unknown command:N37424 G32  S2
  • ahh autolevel was not enabled as i had never had the need to enable it

    flashing firmware with enabled :-) upps
  • edited March 12
    i tried G32 S2

    Got this odd error 

    22:16:02.691 : Error:Activating z-probe would lead to forbidden xy position: 5.000000, -20.00
    22:16:02.706 : RequestStop:
    22:16:04.486 : fatal:Could not activate z-probe offset due to coordinate constraints - result is inaccurate! - Printer stopped and heaters disabled due to this error. Fix error and restart with M999.

    odd enough it still starts to probe

  • figured it... i have to define where the probe can get and not where the nozzle can get... so that parts is ok now


    the part that says using metal block... could that not be any object i know the the height of?
  • i'm very surprised. i initial just lowered Z and found that my probe height was 3mm

    but with your guide i found it to be 1,989mm.. does this sound right?

    i found an object that is 10mm high and the other numbers in the guide are

    z0 10,611
    zold 10
    Znew 10,4
    ZHold 3
  • gave the G32 S2 a go and it ended with

    23:47:02.911 : plane: a = -0.0021 b = -0.0005 c = 3.5735
    23:47:02.919 : Transformation matrix: 0.999998 0.000000 0.002082 -0.000001 1.000000 0.000548 -0.002082 -0.000548 0.999998
    23:47:02.923 : Printer height:206.58
    23:47:02.923 : CurrentZ:3.57 atZ:4.09
    23:47:02.927 : Info:Autoleveling enabled
    23:47:03.725 : X:245.01 Y:200.00 Z:2.953 E:0.0000

    i can get the probe to within  5mm of all 3 edges but it throws a big warning if i try to go less that 0 on the Y... reason i want this is to probe all of the bed and there is enough room for the nozzle that i can go negative on Y

    strange enough G33 allows to go that far but maybe G32 and G33 see things different?

  • new bump map:

    only thing that worries me is that G32 S2 does not get the probe to Y0 but only to Y20 where as G33 goes to Y0

    and then of course if i got the probe height correct
  • something is not right still... even thou the bumpmap is "perfect" when Z is 0 the nozzle is still 1-2 mm to high up

    should i just manual adjust Z lenght to match? or where could i have "screwed up" and how do i correct that screw up?
  • Ok, first the bump map now looks like it shold be. Swinging around zero and small values. Never figured you did not autolevel before. As you now see your bed is rotated and you completely neglected that causing big corrections. You would never get square models with this.

    What you still seem to need is increase z probe height if your z=0 is too high. You need to increase it by the error in height. Then yo can simply increase z length by same value or redo calibration.

    G32 is a bit picky about positions. Did not know G33 was missing the tests. But it is no problem if you do not get full bed with G32 - it assumes a planar bed and a bit smaller makes no real difference.
  • please do not change G33... i like the extra "insurance" that it probes right to edge of bed

    but i will figure how high above the bed the nozzle is when Z=0 and add the extrace distance to probe height and redo G32 and G33
  • btw.. are there any difference in how precise probing is? i mean doing it fast or slow or number of times a point is probed?
  • It mainly depends on th ez probe speed. So if z-probe takes some time to trigger the speed will influence the distance. If it is very fest it only depends on printer being able to stop without loosing steps.
  • edited March 14
    I don't know if this "helps", I seem to recall when I had a probe on my Delta I started with all correction turned off, but left the Z-probe enabled. I made sure Z steps were calibrated, then I set my center position on the bed at Z=0 manually and made sure after homing and entering G1 Z0 it returned there (Z height was correct), then I entered G1 Z10,  then a G30 and it should report that my Z was 10 if the probe height was set correctly. That's what I remember. It's been a while (now have a CoreXY).
Sign In or Register to comment.