Piezo as Z Endstop & as Z-Probe config
-
I have been wrestling with this on and off now for like 2 weeks. I re-calibrated the trigger height as per the method that @Phaedrux refered me to.
I still do not believe that mesh bed compensation is being applied correctly. With Marlin, I could watch the Z motor/pulleys move as the carriage moved around the bed.
I do not see that at all with RRF. It does not seem that the Z level adjusts as the printer lays down the first layer watching the screw. I even put a tell-tale on the end of the screw in case the motion was so small.
I feel like I am missing something to enable the compensation.
I am re-reading this page and trying to follow it all to the letter. https://duet3d.dozuki.com/Wiki/Using_mesh_bed_compensation
-
I preheat, clean the nozzle and then home Z to establish the Z=0 datum. This is the 'middle point' of the mesh at the bed center.
-
M557 is defined in config.g as from 5 to 285 (total of 280mm) probe every 70mm, so 5 points in X and Y. I do not have M376 in there yet.
M557 X5:285 Y5:285 S70 ; Define mesh grid
-
Then I enter G29 and the printer will probe the bed at the 5x5 grid.
-
The printer will report that the heightmap is saved. It used to automatically display it automatically, but something I did changed the behavior and I now have to manually go to the pulldown to display it.
Is this an indication that something is awry?
- This is my homez.g if needed-
M561 ; clear any bed transform M290 S0 R0 ; clear baby steps G91 ; relative positioning G1 Z5 F6000 S2 ; lift Z relative to current position G90 ; absolute positioning G1 X150 Y150 F6000 ; go to first probe point G30 ; home Z by probing the bed ; Uncomment the following lines to lift Z after probing G91 ; relative positioning G1 S2 Z5 F100 ; lift Z relative to current position G90 ; absolute positioning
- This is my homeall.g
M561 ; clear any transforms M290 S0 R0 ; clear baby steps G91 ; relative positioning G1 Z5 F2000 S2 ; lift Z relative to current position ; move quickly to X and Y axis endstops and stop there (first pass) G1 S1 X300 Y300 F4800 ; djp edit change to make MAX endstops G1 X-5 Y-5 F2000 ; go back a few mm ; move slowly to X and Y axis endstops once more (second pass) G1 S1 X300 Y300 F720 ; djp edit change to make MAX endstops G90 ; absolute positioning G1 X150 Y150 F4800 ; go to first bed probe point and home Z G30 ; home Z by probing the bed ; Uncomment the following lines to lift Z after probing G91 ; relative positioning G1 S2 Z1 F500 ; lift Z relative to current position G90 ; absolute positioning
- here is my bed.g
M561 ; clear any bed transform M290 S0 R0 ; clear baby steps G29 ; probe the bed and enable compensation
Do I misunderstand this? Should I be able to see my Z motion system actively changing to compensate for the bed out of level out-of-plane?
-
-
There's no need to probe the bed for every print.
In my bed.g, I use G29 S1 to load and activate the stored map. This allows you to create a much more detailed map than 5 x 5 and save it. I refresh the map once in a while, but there is rarely any difference between the new and previous maps.
Are you executing a G32 so that bed.g is executed in your slicer's start code?
-
I only probe at every power on. I don't re-probe between prints
I am not using G32. I thought that was for Delta's.
Is it redundant with G29?
-
G32 just runs bed.g.
What do you have in your slicer start gcode?
When G29 is run the mesh is probed and the results are saved, and compensation is made active.
G29 S1 will load the saved heightmap. So you should have that in your slicer start code after your G28.
You can send M122 to get a diagnostics report, look for a line saying compensation: mesh to indicate that it's active.
-
I currently don't have anything in my start gcode. I understood that the mesh bed compensation was active until you re-homed via G28.
EDIT: when I print, I use a macro to preheat, then home & level-
M80 M106 S0 M104 S130 G28 X Y M109 S130 G28 Z G29 G1 X150 Y150 Z5 F3500
M122 shows-
=== Move === Hiccups: 0, FreeDm: 99, MinFreeDm: 63, MaxWait: 24240329ms Bed compensation in use: mesh, comp offset 0.000
full listing is here- https://pastebin.com/HGviebvr
BTW: Is there a way to get more verbose output to the console? I wish that more info would get displayed to know what is going on.
-
G28 won't clear G29 by default. Yours will because you have M561 at the start.
M122 shows mesh is active.
What does your heightmap image look like?
I think the best way to test if mesh compensation is effective is to print an STL like this once with mesh disabled and once with mesh enabled. The results should be better when it's enabled.
-
Which M561 do you mean? I have that in there because I wanted to make sure I cleared out baby-stepping in the case I forgot to clear it.
Perhaps this is the source of my issue? How do you clear baby-steps?
here is my heightmap from different views-
-
So the z motors don't move at all if you move to that dipped area?
-
typically, i stay away from that area if i can.
i will scale the stl you linked and print it over the whole bed.
i have a print finishing now- it might be a couple of hours before i can post results.
-
thanks again for your tutelage.
the compensation does work as expected. i have been trying to straighten the bed little by little by taking it off and giving it a good, strategic hammer blow or two.
sinneD
-
@sinned6915 nothing wrong with a little percussive maintenance now and then.
-
"percussive maintenance"
Lovely!