Currently, I myself use a rectanglar grid strategy. It seems it works.
But I have a very even table - I was lucky. Therefore it is difficult to say - a good print is obtained because the table itself is flat or because the correction system works successfully.
I tell you how it is done with me (Printer CoreXY, inductive Z-probe).
In config.txt :
leveling-strategy.rectangular-grid.enable true #The strategy must be enabled in the config, as well as the zprobe module.
leveling-strategy.rectangular-grid.x_size 224 # Bed size (from Home) X, mm
leveling-strategy.rectangular-grid.y_size 224 # Bed size (from Home) Y, mm
#leveling-strategy.rectangular-grid.size 5 # Number of points on each of the axes. Number must be odd (NECHETNOE!). 7x7 = 49
leveling-strategy.rectangular-grid.grid_x_size 5 # The number of points along the X axis for the case if X! = Y. Number must be odd (NECHETNOE!)
leveling-strategy.rectangular-grid.grid_y_size 5 # The number of points along the Y axis for the case if X! = Y. Number must be odd (NECHETNOE!)
leveling-strategy.rectangular-grid.do_home false # This can be set if you want the leveling strategy to home before probing. FALSE, If you are not using all 3 endstops
leveling-strategy.rectangular-grid.probe_offsets 20,0,0 # Offset of the probe in relation to the nozzle, mm
leveling-strategy.rectangular-grid.save true # True == When you start the printer, the table is loaded from the file
leveling-strategy.rectangular-grid.initial_height 5 # The initial height of the probe lift above the table, mm. Probe where to move to in Z before it probes, this should be around 5-10mm above the bed
leveling-strategy.rectangular-grid.human_readable true # Human readable formatting of probe table
leveling-strategy.rectangular-grid.only_by_two_corners false # G29/31/32 will not work without providing XYAB parameters: XY - start point, AB rectangle size from starting point.
leveling-strategy.rectangular-grid.dampening_start 0.5 # Compansation normally is applied for all heights, with full power. If you set this setting to a height, the compensation will start to be applied less and less (linearly) until "height_limit" is reached. Any height before this setting is still will be compensated fully
leveling-strategy.rectangular-grid.height_limit 1 # The compensation algorithm will stop working after this limit, starting from the "dampening_start" parameter. After the height goes through this limit, no more compansation will be applied
mm_per_line_segment 1 # Necessary for cartesians using rectangular-grid
After starting the printer with this config.txt in the Pronterface, I do:
G28 X-35 Y-70 ; My endstops place
G1 X-20 Y0 ; Go to 0,0 and my probe offset (20mm)
G30 Z1.0 ; Find the level of the table
G1 Z5 ; Down table for probe OFF
G32 ;
G1 Z5 ; Down table for safe travel
M375 ; Save correction table to MicroSD
G1 X0 Y0 ;
G92 X0 Y0 Z0 ; Save current position as 0,0,0
M375.1 ; Look and compare the results with those that were issued during calibration, copy-paste in temporary .txt-file
Reboot printer. Immediately after reboot in the Pronterface:
M375.1 ; Show pre-loaded correction table. Look, copy-paste, add in temporary .txt-file and compare
If everything works correctly, then the table stored on MicroCD or in EPROM must be automatically loaded when the printer starts, because the config file specifies:
leveling-strategy.rectangular-grid.save true # True == When you start the printer, the table is loaded from the file
and already without additional loading is shown to you by the command M375.1
This table will automatically be used to adjust when printing until you turn off the adjustment or delete the table.
After starting the printer directly for printing, I in Pronterface execute a sequence of commands:
M375.1 ; Check correction table successfully pre-loaded
G28 X-35 Y-70 ; My endstops place
G1 X-20 Y0 ; Go to 0,0 and my probe offset (20mm)
G30 Z1.0 ; Find the level of the table
G1 X0 Y0 ;
Now accurately set the desired nozzle clearance for printing the first layer (for the thickness of a sheet of paper, or as you see fit). Fix the settings made:
G92 X0 Y0 Z0 ; Save current position as 0,0,0
G1 Z15 ; Down table for safe travel
G28 X-30 Y-65 ; Place behind the edge of the table, if the plastic is squeezed out - it will fall past the table in the pallet or it will be convenient to remove it
The start zero point (X0Y0) should be exactly the same where, when calibrated with the G32. Adjustment according to the table will be calculated from the current Z0.
You can start printing. File .gcode begins commands of a warming-up of a table and hotend
---Start code begin---------------------
T0
M107 ; stop blower
M140 S70 ; set bed temperature, warm up
M104 S215 ; set hotend temperature, warm up
M190 S70 ; wait bed temperature
M109 S215 ; wait hotend temperature
;Prime the extruder
M82 ; set extruder absolute coordinates mode
G92 E0 ;set Extruder zero
G1 E20 F200 ;Press 20mm through extruder
G92 E0 ;set Extruder zero
G1 X0 Y0 F2000; Head to ZERO
;---Start code end---------------------
M83 ;relative extrusion mode
G1 F1500 E-6.5
;LAYER_COUNT:10
;LAYER:0
I’m a novice user of a 3D printer. Maybe that’s why I remember all the difficulties so well.
Maybe the order of actions can be different and more optimal.
While I was developing it (for myself, reading many different tips on different forums), I ran into some incomprehensible problems. The procedure I use does not allow them to be solved or eliminated, but allows them to be circumvented (bypass? Sorry, I do not know much English).
Known issues:
- Zero position by endstops MUST CORRESPOND TO NEGATIVE VALUES. At least -1, -1. Otherwise, on the command of G32, the hotend leaves for endostops and the work is interrupted.
- As soon as the hotend comes out DIAGONALY abroad, designated as the correction area (in my configuration = 224,224), the motors stop moving. I have a large table (~295x~295); I can freely move the end into coordinates X295Y0, X150Y225, X0Y225. But near the far right corner, some incomprehensible limitation works for me.
- Reading the table from MicroSD with the command M375 included in the file **.GCODE** hangs up my printer.
- Deleting a table from MicroSD card with the M374.1 command can also hang the printer if there is no such file on the MicroSD card.