G29 failing height map for a core XY config with fixed bed
-
@campeancalin said in G29 failing height map for a core XY config with fixed bed:
@fcwilt
G29
Warning: the height map has a substantial Z offset. Suggest use Z-probe to establish Z=0 datum, then re-probe the mesh.
9 points probed, min error 0.110, max error 0.190, mean 0.152, deviation 0.024
Height map saved to file 0:/sys/heightmap.csvheightmap(1).csvSo you did something like this:
To create the test height map:
G1 X290 Y290 ; position probe at bed center
G30; probe the bed and set the Z=0 datum
M557 X290:310 Y290:310 P3 ; set the probing grid
G29; probe the bed and create the height mapTo load the test height map:
G1 X290 Y290 ; position probe at bed center
G30; probe the bed and set the Z=0 datum
G29 S1; load the existing height map -
This post is deleted! -
Bellow you have the slicer star g code:
G28 ; home all axes
G29 S1
G1 X20 Y37 Z0.5
G1 X10 Y10 F1500 ; move to prime
G1 Z0.2 F3000 ; get ready to prime
G1 X100 F5000 ; quick wipe -
After the G28 and before G29 S1 , there has to be the G30 command?
-
@campeancalin said in G29 failing height map for a core XY config with fixed bed:
After the G28 and before G29 S1 , there has to be the G30 command?
Hi,
It depends on what homeall.g does.
I don't use my Z probe for homing Z so I need to use G30 by itself before creating the height map and again before loading the height map.
The probe point for the G30 must be the same in both cases.
Your homez.g file uses G1 X20 Y37 F2400. I strongly suggest you use the center of the bed for G30.
Now your G31 command has the offsets of X=10 and Y=10.
Are you those values are correct? That puts the Z probe very close to the hotend, closer than my probe could be.
In any case, assuming the offsets are correct the command to position for G30 would be G1 X290 Y290 F2400.
With that change then as long as you use G28 before creating the height and loading the height map it should work fine.
Frederick
-
@fcwilt Thank you for your reply.
The homez.g has been changed :
; homez.g
; called to home the Z axis
;
; generated by RepRapFirmware Configuration Tool v3.1.4 on Mon Oct 05 2020 11:50:09 GMT+0300 (Eastern European Summer Time)
G91 ; relative positioning
G1 H2 Z5 F800 ; lift Z relative to current position
G90 ; absolute positioning
G1 X270 Y270 F2400 ; go to first probe point
G30 ; home Z by probing the bed
;G29 S1 ; autoload the height map; Uncomment the following lines to lift Z after probing
G91 ; relative positioning
G1 Z2 F100 ; lift Z relative to current position
G90 ; absolute positioningAlso the G31 command from config.g has been changed:
G31 P25 X20 Y37 Z2.23
-
campeancalin
campeancalin 14 Oct 2020, 16:19@fcwilt: while posting the homez.g file , I noticed something that I forgot to take in consideration; the new homez.g file is bellow:
; homez.g
; called to home the Z axis
;
; generated by RepRapFirmware Configuration Tool v3.1.4 on Mon Oct 05 2020 11:50:09 GMT+0300 (Eastern European Summer Time)
G91 ; relative positioning
G1 H2 Z5 F800 ; lift Z relative to current position
G90 ; absolute positioning
G1 X270 Y270 F2400 ; go to first probe point
G29 S1 ; autoload the height map -- initially was commented
G30 ; home Z by probing the bed -- this was before G29; Uncomment the following lines to lift Z after probing
G91 ; relative positioning
G1 Z2 F100 ; lift Z relative to current position
G90 ; absolute positioning -
@campeancalin said in G29 failing height map for a core XY config with fixed bed:
Also the G31 command from config.g has been changed:
G31 P25 X20 Y37 Z2.23
OK those offsets looks better.
Assuming the center of the bed is X300, Y300 the command to position for G30 would be G1 X280 Y263.
To determine those values I did that math: X280 = X300 - X20 and Y263 = Y300 - Y37
And I assume you are going to do the G29 S1 somewhere else?
Frederick
-
@fcwilt the G29 S1 is called for in homez.g, and also , I've written it in the printing start script
; homez.g
; called to home the Z axis
;
; generated by RepRapFirmware Configuration Tool v3.1.4 on Mon Oct 05 2020 11:50:09 GMT+0300 (Eastern European Summer Time)
G91 ; relative positioning
G1 H2 Z5 F800 ; lift Z relative to current position
G90 ; absolute positioning
G1 X270 Y270 F2400 ; go to first probe point
G29 S1 ; autoload the height map
G30 ; home Z by probing the bed; Uncomment the following lines to lift Z after probing
G91 ; relative positioning
G1 Z2 F100 ; lift Z relative to current position
G90 ; absolute positioningAnd the start script for printing:
G28 ; home all axes
G29 S1 -
However I'm not really too sure about G29 S1 in the start script , if I already call for G 29 S1 in homez.g
-
@campeancalin said in G29 failing height map for a core XY config with fixed bed:
However I'm not really too sure about G29 S1 in the start script , if I already call for G 29 S1 in homez.g
I do things a little different from many folks.
For instance I have a macro (map_create.g) to create the height map. It performs all the commands needed to insure the map is correct. It does not depend on anything else (like config.g or homeall.g) to have done some important commands first. So when I run the macro I know that height map is created correctly.
Likewise I have a macro (map_load.g) to load the height map. And like the macro described above it does not depend on anything else. It does assume the height map has been created.
As you know most slicers can execute code prior to starting a print and after finishing a print.
Again I do not rely on the slicer to do everything that needs to be done to start or end a print.
Instead I have two macros (print_begin.g and print_end.g) that are invoked by the slicer.
One of the many things that print_begin.g does is to invoke map_load.g
If I desired I could have it instead invoke map_create.g if I wished to create the height map at the start of every print.
Frederick
-
@fcwilt Can you share an example of each of the macros you specify? Just so I have an idea where to start from.
-
@campeancalin said in G29 failing height map for a core XY config with fixed bed:
Bellow you have the slicer star g code:
G28 ; home all axes
G29 S1
G1 X20 Y37 Z0.5
G1 X10 Y10 F1500 ; move to prime
G1 Z0.2 F3000 ; get ready to prime
G1 X100 F5000 ; quick wipeThat looks fine.
@campeancalin said in G29 failing height map for a core XY config with fixed bed:
After the G28 and before G29 S1 , there has to be the G30 command?
In your case your G28 already does a G30 in your homez.
@campeancalin said in G29 failing height map for a core XY config with fixed bed:
G1 X270 Y270 F2400 ; go to first probe point
G29 S1 ; autoload the height map -- initially was commented
G30 ; home Z by probing the bed -- this was before G29This is incorrect. Remove the G29 S1 from your homez. Or at least move it until AFTER the G30. The way you had it before was already fine.
@campeancalin said in G29 failing height map for a core XY config with fixed bed:
Just so I have an idea where to start from.
You already had it right.
-
@campeancalin said in G29 failing height map for a core XY config with fixed bed:
@fcwilt Can you share an example of each of the macros you specify? Just so I have an idea where to start from.
Hi,
I would be glad to share them with you BUT my approach is not what you would call a common approach.
You might say it's a bit more "advanced" or maybe just "complicated" because you have tasks coded in different macros. You cannot just look at one file and see every command. You, of course, see the command to invoke the macro (M98 P"some_macro.g") but if you don't remember what the macro does you have to open that file.
It's a bit more work but I do it because I can invoke a given macro from different places and know that it is always going to do the same thing.
For example, I can invoke "map_load.g" from the console, from a DWC macro, from my "print_begin.g" macro and it will always do the same thing AND it will always work, assuming I have written it correctly and tested it to be sure it works.
So if you still want to see my macros just let me know.
Frederick