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 timehow 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
G90that´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 pointaG1 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 abputzenGreetings from Germany
-
I'm guessing that you have no Z probe. Is that correct?
-
correct, only z-max
-
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:
- If your bed has levelling screws, you can set up your bed.g file so that G31 will tell you what adjustments to make to the screws. See https://duet3d.dozuki.com/Wiki/Using_the_manual_bed_levelling_assistant.
- If you just want to get an accurate Z=0 level, position the head over the centre of the bed and execute G30. You can set up a macro to do this.
- If you want to do bed compensation, set up a mesh (I suggest just 4 or possibly 9 points) and do mesh bed compensation. See https://duet3d.dozuki.com/Wiki/Using_mesh_bed_compensation.
-
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 -
You can adjust the Z parameter in your M208 S0 command to define the exact height at which the Z endstop switch triggers.