Building Leveling like Ultimaker does



  • Hello,
    since my ultimaker 2 mainboard broke down i´m trying to build my own "FW" for the duet.

    My goal is to have the same behavior like with the ultimaker board.

    Actually i fail at the leveling procedure.

    Behavior UM:

    start leveling:
    homing z-max down
    raising up Z to about 150 or 160
    i have to raise it manually with the wheel until the nozzle is about 1mm away from the bed (checking 3 points)
    after that i push the button and he raises up 1mm now i have to level again every 3 points
    i think that he is saving his Z0 point at this time

    how can i rebuild that?

    Cause i only have Z max i have to tell the FW how much Z is allowed to travel with the variable Z-lengt

    Sure i can measure it out and only level at exact the same point, but that´s not the behavior of the ultimaker and makes trouble if i change the nozzle or hotend.

    that´s what i´ve actually got in homeall
    G91 ; relative positioning
    G1 S1 X-215 Y-215 F6000 ; move quickly to X and Y axis endstops and stop there (first pass)
    G1 X5 Y5 F6000 ; go back a few mm
    G1 S1 X-215 Y-215 F3000 ; move slowly to X and Y axis endstops once more (second pass)
    G1 S1 Z205 F3000 ; move Z down stopping at the endstop
    G1 Z-5 F3000 ; move Z 5mm up
    G1 S1 Z205 F1500 ; move Z down stopping at the endstop
    G92 Z211.4 ; Zmax = 211.4mm
    G91 ; absolute positioning
    G1 Z-5 F3000 S2 ; lift nozzle
    G90

    that´s my leveling macro
    i´ve turned out an endstop (M577 E0 S0) to use it as a button for the leveling procedure, to start when i want it
    G4 is only to prevent pushing the button once will used for 2 leveling pointa

    G1 Z10 F6000 ; fahre bett hoch schnell
    G4 S1 ; warte 1sec
    M577 E0 S0 ; taster betätigenn
    G1 Z1 F1000 ; fahre bett noch weiter hoch langsam
    G4 S1 ; warte 1 sec
    M577 E0 S0 ; taster betätigenn
    G1 X96 Y0 F3000 ; levelposition hinten mitte 1.mal
    G1 Z0.1 F100 ; bett zum leveln hinfahren
    G4 S1 ; warte 1 sec
    M577 E0 S0 ; taster betätigen
    G1 Z2 F3000 ; Bett weg fahren für nächste Position
    G1 X0 Y200 F3000 ; levelposition vorne links 1. mal
    G1 Z0.1 F100 ; bett zum leveln hinfahren
    G4 S1 ; warte 1 sec
    M577 E0 S0 ; taster betätigen
    G1 Z2 F3000 ; Bett weg fahren für nächste Position
    G1 X200 Y200 F3000 ; levelposition vorne rechts 1. mal
    G1 Z0.1 F100 ; bett zum leveln hinfahren
    G4 S1 ; warte 1 sec
    M577 E0 S0 ; taster betätigen
    G1 Z2 F3000 ; Bett weg fahren für nächste Position
    G1 X96 Y0 F3000 ; levelposition hinten mitte 2. mal
    G1 Z0 F100 ; bett zum leveln hinfahren
    G4 S1 ; warte 1 sec
    M577 E0 S0 ; taster betätigen
    G1 Z2 F3000 ; Bett weg fahren für nächste Position
    G1 X0 Y200 F3000 ; levelposition vorne links 2. mal
    G1 Z0 F100 ; bett zum leveln hinfahren
    G4 S1 ; warte 1 sec
    M577 E0 S0 ; taster betätigen
    G1 Z2 F3000 ; Bett weg fahren für nächste Position
    G1 X200 Y200 F3000 ; levelposition vorne rechts 2. mal
    G1 Z0 F100 ; bett zum leveln hinfahren
    G4 S1 ; warte 1 sec
    M577 E0 S0 ; taster betätigen
    G1 Z2 F3000 ; Bett weg fahren für nächste Position
    G1 X96 Y0 F3000 ; levelposition hinten mitte 2. mal
    G1 Z0 F100 ; bett zum leveln hinfahren
    G4 S1 ; warte 1 sec
    M577 E0 S0 ; taster betätigen
    G1 Z2 F3000 ; Bett weg fahren für nächste Position
    G1 X0 Y200 F3000 ; levelposition vorne links 2. mal
    G1 Z0 F100 ; bett zum leveln hinfahren
    G4 S1 ; warte 1 sec
    M577 E0 S0 ; taster betätigen
    G1 Z2 F3000 ; Bett weg fahren für nächste Position
    G1 X200 Y200 F3000 ; levelposition vorne rechts 2. mal
    G1 Z0 F100 ; bett zum leveln hinfahren
    G4 S1 ; warte 1 sec
    M577 E0 S0 ; taster betätigen
    G1 Z195 F3000 ; Bett weg fahren
    G1 X5 Y5 F6000 ; hotend wegfahren, fertig abputzen

    Greetings from Germany


  • administrators

    I'm guessing that you have no Z probe. Is that correct?



  • correct, only z-max


  • administrators

    A Z probe would make things much easier, and I recommend that you add one. However, you can use M558 P0 to tell the firmware that you have no Z probe. Then you can do the following:



  • i understand
    a correct Z=0 level is everething i need.

    I thought about G30, but how is it, when i home the axis, do i have to adjust it always, or will he save the value?
    If he won´t save i have to adjust it every print, that wouldn´t be verry nice.



  • the other idea would be G10
    i say that i got my fixed z-max and a travel range from about 210mm. everething above i have to do with the tool offset.
    i think tha ultimaker is doing the same but verry verry comfortable


  • administrators

    You can adjust the Z parameter in your M208 S0 command to define the exact height at which the Z endstop switch triggers.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.