Bed leveling seems to have no effect

smoothie-forum
(Eyal51_SW) #1

Hi,

I have a Cetus3D with a Smoothieware CPU, and a bed leveling sensor which has a bit of offset.
Important to note that my printing surface is 180x180 and that’s also the range movement of the motors, so I can’t add the offset to the calibration, cause it’ll try to go places it can’t.
I think my printing bed is a bit slanted to the left.
When I try to do bed leveling calibration it always seems to be ignored.
My print start gcode:

G28
G X90 Y90 F 5000; center plate
G30 Z1.8; calibrate Z height
G1 Z100.000 F1200
G31 X0 Y0 A140 B170 I3 J5; Bed leveling calibration
M109 S[extruder0_temperature]; wait for extruder temp to be reached

My config stratrgy:

# Levelling strategy

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 180 # size of bed in the X axis
leveling-strategy.rectangular-grid.y_size 180 # size of bed in the Y axis
leveling-strategy.rectangular-grid.size 5 # The size of the grid, for example, 7 causes a 7x7 grid with 49 points. Must be an odd number.
leveling-strategy.rectangular-grid.do_home false
leveling-strategy.rectangular-grid.probe_offsets 0,0,0 # Optional probe offsets from the nozzle or tool head
leveling-strategy.rectangular-grid.save false # If the saved grid is to be loaded on boot then this must be set to true
leveling-strategy.rectangular-grid.initial_height 10 # will move to Z10 before the first probe
leveling-strategy.rectangular-grid.dampening_start 0.5 # compensation decrease point (optional)
leveling-strategy.rectangular-grid.height_limit 1 # no compensation to apply after this point (optional)
mm_per_line_segment 1 # necessary for cartesians using rectangular-grid
leveling-strategy.rectangular-grid.only_by_two_corners true # Two point calibration


I tried G29, G32, both of them with 3 point calibration, now G31 is the latest. It does the calibration nicely and write the conclusions in the machine control terminal, but all the prints look the same, and it is evident that the calibration is not taken into account.
I tried flashing the latest firmware, an older firmware, changing the leveling strategy, many codes of leveling, rewriting from scratch the config file to match the firmware, following the zprobe manual over and over again, but it all boils down to this:
I printed without leveling and with leveling and there’s no difference. Bed leveling seems to have no effect.

What am I missing here? What am I doing wrong?
Help!

Imported from wikidot

(EagleB3_SW) #2
  1. I printed without leveling and with leveling and there’s no difference” - and what is the maximum deviation of the table level from “0” in the area where you print? I think that if the deviation is not significant, then you will not be able to notice the difference. A straight line can not be made even more sraight…
  2. After the calibration is complete, try executing the command M373 (“completes calibration and enables the Z compensation grid”)
  3. Try to disable calibration at two angles
leveling-strategy.rectangular-grid.only_by_two_corners    false

After performing the calibration with command G32, did you save the data with the M374 command?

  1. After restarting the printer and using the M375 command, is the calibration data table read and displayed (M375.1) correctly?

  2. If the answer to question 3) = “yes, it is correct”, then try to print without calibration in the start code, simply setting the height of the nozzle that is relevant for the start of printing and using M375. The calibration table after loading by M375 command must be used automatically.

(Eyal51_SW) #3

Thank you for the response!

Since my bed was a bit slanted it caused a line to be extruded to far from the plate on one side, while being to close to the extruder on the other side, interfering with the extrusion.
It seems that I did not do any M37X code, thus the calibration was not taken into effect.
The M373 did not allow the two points calibration to be saved, and I didn’t have time to experiment with the rectangular grid. I used the 3 point calibration, saving it with M374, and saving the G30 calibration with M306 with the same Z offset.
My bed and range movement are the same, and since the probe has an offset from the extruder, setting the bed size for calibration is not so simple (for me, at leat).
In the future I’ll keep trying to set the rectangular grid strategy.
Thank you very much for the help!

My current gcode for whomever has the same issues:

;    Bed leveling
G32; Three points calibaration
M374; Save calibration results
G0 X0 Y0 Z100.000 F2000; Move up a bit

; Z setting
G30 Z1.75; calibrate Z height
M306 Z1.75;
G0 Z100 F2000; raise Z

M109 S[extruder0_temperature]; wait for extruder temp to be reached


(EagleB3_SW) #4

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:

  1. 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.
  2. 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.
  3. Reading the table from MicroSD with the command M375 included in the file **.GCODE** hangs up my printer.
  4. 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.
(EspElement_SW) #5

Hello! I am struggling as well. I am expecting my machine to run like you see here in this video (z axis tweaking as the xy changes). I have never seen this and am trying everything here…

youtube - BLTouch on Smoothieware Azteeg mini x5 Bed Level P3Steel i3 build

I cannot post links…

Thoughts?
Thanks!
Joshua

(EspElement_SW) #6

I checked and found I never added the code below. This seemed to have done it! Thanks team!

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.