Every time I print, I need to increase baby steps
-
@infidelprops Height calibration just finished and I am very pleased to say this is the best height map I've seen since I started this journey... thanks @fcwilt
-
@infidelprops said in Every time I print, I need to increase baby steps:
Can I see what you have in your probe_set_z.g file?
Glad to do it.
If you want to see the M98 invoked files let me know.
I hope you don't get confused by my approach of using many separate files.
M98 P"homeALL_verify.g" ; verify printer is homed - abort if not M98 P"probe_config.g" ; configure probe M98 P"center_probe.g" ; position on XY for probing G29 S2 ; cancel mesh bed compensation M290 R0 S0 ; cancel baby stepping G1 Z{global.g_z_home} F600 ; move Z to "homed" height - insures probe is not too close to the bed - value is set into a global variable in config.g G30 ; do single probe - sets Z to probe trigger height - if trigger height is wrong Z position will be wrong - see probe_config.g G1 Z{global.g_z_home} F600 ; move Z back again to "homed" height
-
@infidelprops
Forgot.
Once you set the Z Trigger Height correct (and it seems you have) setting baby stepping will not be needed every time you print.
I still find myself tweaking the starting Z height when printing if it looks like the first layer is not quite right.
Frederick
-
@fcwilt said in Every time I print, I need to increase baby steps:
@infidelprops said in Every time I print, I need to increase baby steps:
Can I see what you have in your probe_set_z.g file?
Glad to do it.
If you want to see the M98 invoked files let me know.
I hope you don't get confused by my approach of using many separate files.
M98 P"homeALL_verify.g" ; verify printer is homed - abort if not M98 P"probe_config.g" ; configure probe M98 P"center_probe.g" ; position on XY for probing G29 S2 ; cancel mesh bed compensation M290 R0 S0 ; cancel baby stepping G1 Z{global.g_z_home} F600 ; move Z to "homed" height - insures probe is not too close to the bed - value is set into a global variable in config.g G30 ; do single probe - sets Z to probe trigger height - if trigger height is wrong Z position will be wrong - see probe_config.g G1 Z{global.g_z_home} F600 ; move Z back again to "homed" height
Thanks, making more sense and I will take you up on the offer to see the homeALL_verify.g, center_probe.g and your config.g file?
And nah, I don't get confused... it makes more sense to me as a developer. (more on the JS/Node side than this/perl)
-
@infidelprops
Here are the files. I cleaned them up a bit removing experimental stuff. I hope I didn't break anything doing that.
; homeALL_verify.g if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed M291 R"Printer has not been homed" P"Cannot continue" S2 T0 abort "Action aborted - printer not homed"
; center_probe.g M98 P"homeALL_verify.g" M98 P"z_position_adjust.g" ; adjust Z position as needed - insures probe is far enough away from bed to work ; move probe to center of bed G90 ; absolute moves ; this mess computes the center of the bed based on axes min/max values and probe XY offsets G1 X{((move.axis[0].max + move.axis[0].min) / 2) - sensors.probes[0].offsets[0]}, Y{((move.axis[1].max + move.axis[1].min) / 2) - sensors.probes[0].offsets[1]}, F1800
; z_position_adjust.g ; adjust Z if it is not in a good position for probing if {move.axes[2].machinePosition} < 5 || {move.axes[2].machinePosition} > 20 G90 ; absolute moves G1 Z{global.g_z_home} F1200 ; move Z to "home" position
; ---------------------------------------------------------------------------------------------------- ; start of file - printer FT5 - hardware Duet 2 WiFi/Duex 5 - firmware 3.3.0 ; ---------------------------------------------------------------------------------------------------- ; **************************************************************************************************** ; prologue ; **************************************************************************************************** M111 S0 ; debug off M550 P"FT5" ; machine name (can be anything you like) M555 P2 ; set output to look like Marlin M575 P0 B57600 S2 ; communication parameters for USB serial M575 P1 B115200 S1 ; communication parameters for PanelDue M552 S1 ; enable WiFi (S1) M586 S1 P1 T0 ; enable (S1) FTP (P1) Disable TLS (T0) M586 S1 P2 T0 ; enable (S1) Telnet (P2) Disable TLS (T0) G21 ; dimensions in mm G90 ; for X,Y,Z use absolute coordinate values M83 ; for E0,E1,etc use relative coordinate values ; **************************************************************************************************** ; mode control variables ; **************************************************************************************************** global g_z_home = 5 ; can be used to always move Z to known height global g_print_beg_prime = 30 ; default - set desired in filament config.g global g_print_beg_retract = 0 ; default - set desired in filament config.g global g_print_pause_retract = 0 ; default - set desired in filament config.g global g_print_end_retract = 0 ; default - set desired in filament config.g global g_print_end_mode = "HEAT OFF" ; determines if heaters are turned off when print is done global g_map_mode = "FULL" ; determines which kind of height map is created/loaded global g_probe_mode = "TWO" ; determines if z proving used consecutive or averaging global g_level_mode = "3PT" ; determines if 3 or 4 points are used for leveling global g_pa_setting = 0 ; used for pressure advance testing global g_pa_increment = 0 ; used for pressure advance testing global g_pa_layer_count = 0 ; used for pressure advance testing global g_pa_layer_counter = 0 ; used for pressure advance testing ; **************************************************************************************************** ; kinematics - K0 = Cartesian (X is -left/+right, Y is -front/+back, Z is bed -up/+down) ; **************************************************************************************************** M669 K0 ; defaults = X1:0:0 Y0:1:0 Z0:0:1 ; **************************************************************************************************** ; motors ; **************************************************************************************************** ; motor direction - drive (P), direction (S1 = normal, S0 = reverse) M569 P0 S1 ; drive 0 - normal - X M569 P1 S0 ; drive 1 - reverse - YL M569 P2 S1 ; drive 2 - normal - YR M569 P3 S0 ; drive 3 - reverse - E M569 P5 S0 ; drive 5 - reverse - Z ; motor assignment M584 X0 Y1:2 Z5 E3 ; set what motors do what ; motor performance settings ; X Y Z M92 X80 Y80 Z400 ; steps per mm (Z1600 for 2mm lead - Z400 for 8mm lead - Z400 for belt drive using stepper with gearbox of 5-to-1) M203 X12000 Y12000 Z1200 ; max speed (mm/min) M566 X900 Y900 Z120 ; max instant speed change (jerk) (mm/min) (defaults 900 900 12) (120 z value from phaedrux) M201 X500 Y500 Z240 ; acceleration (mm/s^2) (defaults 500 500 20) (240 z value from phaedrux) M906 X1000 Y1000 Z1000 I30 ; motor current (mA) and idle current (30%) ; E (Zesty Nimble) M92 E2750 ; steps per mm (suggested 2750) M203 E3600 ; max speed (mm/min) (suggested 3600) M566 E40 ; max instant speed change (jerk) (mm/min) (suggested 40) M201 E120 ; acceleration (mm/s^2) (suggested 120) M906 E500 ; motor current (mA) (suggested 500) ; if M92 above is set for the default 16x microstepping then putting M350 here ; will result in the needed adjustments to the initial values set by M92 M350 X16 Y16 Z16 E16 I1 ; 16x microstepping with interpolation ; ============================================================ ; axis dimensions and coordinate value modes for 0,0 in center ; ============================================================ M208 X-150:150 Y-150:150 Z0:350 ; set axes min/max values M579 X1.0 Y1.0 Z1.0 ; scaling (values are determined by measuring test object) M564 H1 S1 ; H1 = dont allow moving non-homed axes S1 = limit movement to axis min/max ; **************************************************************************************************** ; end stops ; -- X,Y,Z,etc = location of endstop (0 = none, 1 = low end, 2 = high end) ; -- S = type (1 = switch, 2 = probe, 3 = motor stall (one), 4 = motor stall (multiple) ; -- ! = invert ^ = enable pull-up ; **************************************************************************************************** M574 X2 S1 P"xstop" ; configure active-high endstop for max end on X M574 Y2 S1 P"ystop" ; configure active-high endstop for max end on Y M574 Z1 S1 P"zstop" ; configure active-high endstop for min end on Z ; **************************************************************************************************** ; heaters ; **************************************************************************************************** M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor M950 H0 C"bedheat" T0 Q10 ; create bed heater output on bedheat and map it to sensor 0 M307 H0 B0 S1.00 A107.3 C136.0 D2.8 V12.0 ; values A, C, D, V determined by running heater tuning M140 P0 H0 ; map heated bed to heater 0 M143 H0 S115 ; set temperature limit for heater 0 M308 S1 P"e0temp" Y"thermistor" T500000 B4723 C1.196220e-7 ; configure sensor 1 as thermistor (SLICE) M950 H1 C"e0heat" T1 Q250 ; create nozzle heater output on e0heat and map it to sensor 1 M307 H1 B0 S1.00 A362.4 C121.7 D4.4 V11.8 ; values A, C, D, V determined by running heater tuning M143 H1 S250 ; set temperature limit for heater 1 ; other heater settings M570 P300 ; heater fault timeout - increase to allow extra heating time ; **************************************************************************************************** ; cooling fans ; -- P# is fan, S# is speed (0 to 255 or 0.0 to 1.0) H# means turn on fan when heater H# temp hits T# ; -- H-1 means no thermostatic control ; **************************************************************************************************** M950 F0 C"fan0" Q500 ; create fan (F), pin name (C), frequency (Q) M106 P0 C"Part" S0 H-1 ; set fan (P), name (C), speed (S), thermostatic control off (H) M950 F1 C"fan1" Q500 ; create fan (F), pin name (C), frequency (Q) M106 P1 C"Hotend" S1 H1 T45 ; set fan (P), name (C), speed (S), thermostatic control on (H & T) ; **************************************************************************************************** ; LED light strips ; -- P# is fan, S# is speed (0 to 255 or 0.0 to 1.0) H# means turn on fan when heater H# temp hits T# ; -- H-1 means no thermostatic control ; **************************************************************************************************** M950 F2 C"fan2" Q500 ; create fan 2 (F), pin name (C), frequency (Q) (lights center) M106 P2 C"Lights C" H-1 L0 ; set fan 2 (P), name (C), thermostatic control off (H) M950 F3 C"duex.fan6" Q500 ; create fan 3 (F), pin name (C), frequency (Q) (lights left) M106 P3 C"Lights L" H-1 L0 ; set fan 3 (P), name (C), thermostatic control off (H) M950 F4 C"duex.fan7" Q500 ; create fan 4 (F), pin name (C), frequency (Q) (lights right) M106 P4 C"Lights R" H-1 L0 ; set fan 4 (P), name (C), thermostatic control off (H) ; **************************************************************************************************** ; tools ; --- M563 --- ; P is tool number ; S is tool name (optional) ; D is extruder drive (0 or 1) ; H is associated heater number ; F is associated fan number ; --- G10 --- ; P is tool number ; X, Y, Z are axis offsets ; R, S are initial standby & active temperatures ; **************************************************************************************************** ; tool 0 M563 P0 S"T0" D0 H1 F0 ; define tool 0 to use extruder drive 0, heater 1, fan 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active/standby temperatures ; **************************************************************************************************** ; external buttons (T trigger #, E end-stop #, C when to trigger (0 = always), S = edge (rising = 1, falling = 0) ; external buttons (P = pin #, T = trigger #, R = when to trigger (0 = always, 1 = printing), S = what edge (I->A = 1, A->I = 0, -1 = ignored) ; --- T0 does emergency stop ; --- T1 does pause (see M25) ; --- T# runs macro trigger#.g ; **************************************************************************************************** M950 J1 C"^duex.e2stop" M581 P1 T2 R0 S0 ; little button runs trigger2.g which does M999 reset M950 J2 C"^duex.e3stop" M581 P2 T0 R0 S0 ; big button does emergency stop ; **************************************************************************************************** ; filament sensor ; Pnn = sensor type ; - 0 = none ; - 1 = simple sensor (high signal when filament present) ; - 2 = simple sensor (low signal when filament present) (TriangleLabs) ; - 3 = Duet3D rotating magnet sensor ; - 4 = Duet3D rotating magnet sensor with microswitch ; - 5 = Duet3D laser sensor ; - 6 = Duet3D laser sensor with microswitch ; - 7 = pulse-generating sensor ; C"xx" = input pin name ; Dnn = extruder drive (0,1,2,...) ; Snn = enable/disable monitoring (0 = disable, 1 = enable) ; --- for types 3 to 7 --- ; Ann = when to check (0 = printing motion only, 1 = all motion) ; Enn = min extrusion to trigger check (mm, default 3) ; Lnn = movement per sensor wheel rotation (in mm, default 28.4) ; Raa:bb = extrusion error range (percent) ; **************************************************************************************************** M591 D0 P2 C"e1stop" S1 ; TriangleLabs ;M591 D0 P3 C"e1stop" S1 A0 E3.0 L25.72 R40:115 ; E3D Magnetic ; **************************************************************************************************** ; epilogue ; **************************************************************************************************** ; ---------------------------------------------------------------------------------------------------- ; workplace coordinates ; Ln Mode (L1 L2 or L20 - see below) ; Pnnn tool number if L=1 or coordinate system number if L=2 or L=20 ; X,Y,Z,U,V... Offsets ; ; L= 1: this sets the tool offset, as if the L parameter was not present ; L= 2: this sets the origin of the coordinate system number specified by the P parameter (1 to 9) to the specified X, Y, X... values ; L=20: this is similar to L=2 except that the origin is specified relative to the current position of the tool ; ---------------------------------------------------------------------------------------------------- G10 L2 P1 X0.00 Y0.00 Z0.00 G10 L2 P2 X0.00 Y0.00 Z0.00 G10 L2 P3 X0.00 Y0.00 Z0.00 G10 L2 P4 X0.00 Y0.00 Z0.00 G10 L2 P5 X0.00 Y0.00 Z0.00 G10 L2 P6 X0.00 Y0.00 Z0.00 G10 L2 P7 X0.00 Y0.00 Z0.00 G10 L2 P8 X0.00 Y0.00 Z0.00 G10 L2 P9 X0.00 Y0.00 Z0.00 ; ---------------------------------------------------------------------------------------------------- ; Z probe configuration ; ---------------------------------------------------------------------------------------------------- M98 P"probe_config.g" ; ---------------------------------------------------------------------------------------------------- ; end of file ; ----------------------------------------------------------------------------------------------------
-
@fcwilt very clean setup mate, very clean.
Thank you, I'm going to digest and reverse engineer some of this and do some level testing on my printer...
And with that, I've done two test already using the file @Phaedrux mentioned and both times I still had to adjust the baby steps... First print was set to -0.25, second print was -0.38. I decided to re-run the manual bed levelling and mesh, at which point I think I will re-do my probe z-offset calibration and then the MBL and ABL again.
-
@fcwilt So I'm doing the Z-Probe config again and running into the same problem I always have been, and wondering if this is why I'm always having to adjust my baby steps, for every print.
According to the article, I should run
G30 S-1
2-3 times until I get a consistent reading, and then use that as my offset in theG31
setting. BUT my problem is, I never get a consistent reading and in fact, it increases every time I jog the Z by 5mm in rapid succession.... but if I wait a minute or 90 seconds, it decreased or sometimes has a larger/smaller increment.
Is this indicative of a different problem?Here's what I've gotten to far (read bottom to top):
01/09/2021, 09:08:39 G30 S-1 Stopped at height 1.339 mm 01/09/2021, 09:08:22 G30 S-1 Stopped at height 1.327 mm 01/09/2021, 09:08:02 G30 S-1 Stopped at height 1.326 mm 01/09/2021, 09:07:42 G30 S-1 Stopped at height 1.325 mm 01/09/2021, 09:06:51 G30 S-1 Stopped at height 1.364 mm 01/09/2021, 09:06:42 G30 S-1 Stopped at height 1.383 mm 01/09/2021, 09:06:21 G30 S-1 Stopped at height 1.381 mm 01/09/2021, 09:05:52 G30 S-1 Stopped at height 1.370 mm 01/09/2021, 09:05:32 G30 S-1 Stopped at height 1.369 mm 01/09/2021, 09:05:05 G30 S-1 Stopped at height 1.367 mm 01/09/2021, 09:04:54 G30 S-1 Stopped at height 1.356 mm 01/09/2021, 09:04:29 G30 S-1 Stopped at height 1.355 mm 01/09/2021, 09:03:29 G30 S-1 Stopped at height 1.364 mm 01/09/2021, 09:02:34 G30 S-1 Stopped at height 1.383 mm 01/09/2021, 09:01:07 G30 S-1 Stopped at height 1.441 mm 01/09/2021, 08:58:29 G30 S-1 Stopped at height 1.410 mm 01/09/2021, 08:57:51 G30 S-1 Stopped at height 1.409 mm 01/09/2021, 08:57:16 G30 S-1 Stopped at height 1.398 mm 01/09/2021, 08:56:44 G30 S-1 Stopped at height 1.396 mm 01/09/2021, 08:56:10 G30 S-1 Stopped at height 1.375 mm 01/09/2021, 08:55:30 G30 S-1 Stopped at height 1.374 mm 01/09/2021, 08:55:19 G30 S-1 Stopped at height 1.352 mm 01/09/2021, 08:55:05 G30 S-1 Stopped at height 1.341 mm
-
It looks like your probe isn't very consistent. Could try reducing dive speed and adding A10 S0.03 to the M558 command.
If you need to baby step down by approximately 0.3 each time, just increase your G31 Z by that amount and see how that goes.
-
@phaedrux thanks. I've updated M558 to
M558 P5 C"!zprobe.in" H2 A10 S0.03 F650 T12000
and getting smaller changes when I run the commands in rapid succession, but still inconsistent. But when I wait 60 - 90 seconds, the trigger height has a large change...01/09/2021, 09:21:48 G30 S-1 Stopped at height 1.305 mm 01/09/2021, 09:19:58 G30 S-1 Stopped at height 1.344 mm 01/09/2021, 09:19:48 G30 S-1 Stopped at height 1.342 mm 01/09/2021, 09:19:41 G30 S-1 Stopped at height 1.351 mm 01/09/2021, 09:19:34 G30 S-1 Stopped at height 1.350 mm 01/09/2021, 09:19:25 G30 S-1 Stopped at height 1.349 mm 01/09/2021, 09:19:16 G30 S-1 Stopped at height 1.347 mm 01/09/2021, 09:19:09 G30 S-1 Stopped at height 1.336 mm 01/09/2021, 09:18:58 G30 S-1 Stopped at height 1.335 mm
-
@infidelprops said in Every time I print, I need to increase baby steps:
F650
Try half that speed and see if it's better.
-
@phaedrux yeah, I've been playing with that and have tried numbers between 325 and 585 and when done in rapid succession, it increments by 0.001 - when I wait 30+ seconds, it decreases by roughly 0.008
Just waited 7 minutes and it was a decrease of .03
-
So been reading other threads and kind of sounds like people with sensors like the ABL have had problems with heat/magnetic beds throwing off the calibration and have said going back to a BLT solved their problems.
-
@infidelprops said in Every time I print, I need to increase baby steps:
people with sensors like the ABL have had problems
@infidelprops, Voron uses the inductive probe for relative leveling between various bed points and and fixed switch for absolute Z homing of nozzle. It's not perfect (e.g. it ignores variations in the PEI thickness) but is overall stable despite the high chamber temperature.
-
So I'm still at a loss here... After all this work and getting MBL and ABL working and nice even surface, the problem still exists.
Printing the same file, the same filament, the same printer, etc...
First print, adjusted baby steps by -0.015
Second print, had to adjust baby steps by -0.027
Third print, had to adjust baby steps by -0.02I've also noticed, that consistently, when facing the printer.. the right side of my pint seems flatter and adheres better where the left side appears a bit higher and adheres worse.
I've confirmed that the gcode is setting the mesh on line 18:
;FLAVOR:RepRap ;TIME:340 ;Filament used: 0.205003m ;Layer height: 0.2 ;MINX:59.1 ;MINY:65.7 ;MINZ:0.2 ;MAXX:280.9 ;MAXY:288.3 ;MAXZ:0.2 ;Generated with Cura_SteamEngine 4.10.0 T0 M190 S60 M104 S200 M109 S200 M82 ;absolute extrusion mode G28 ;Home G29 S1
And here's what I have in Cura for my start code:
G28 ;Home G29 S1; Load Mesh G92 E0 ;Reset Extruder G1 Z2.0 F3000 ;Move Z Axis up G1 X1.1 Y1 Z0.28 F5000.0 ;Move to start position G1 X1.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line G1 X1.4 Y200.0 Z0.28 F5000.0 ;Move to side a little G1 X1.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line G92 E0 ;Reset Extruder G1 Z2.0 F3000 ;Move Z Axis up
-
@infidelprops
What is material is your bed made out of?
How thick?
How long do you heat it before trying to print?
Do you create your height map with the extruder and bed at temp?
Thanks.
Frederick
-
It's a TH3D flex plate, magnetic - Not sure of how thick it is
I let it get up to temp and then the print starts shortly after
I created the height map with both bed/hotend at temp.Interesting enough.... I just did a 4th print and did not need to adjust the baby steps....
Going to wait 20 minutes and run another test print and see how it goes
-
@infidelprops said in Every time I print, I need to increase baby steps:
It's a TH3D flex plate, magnetic - Not sure of how thick it is
I let it get up to temp and then the print starts shortly after
I created the height map with both bed/hotend at temp.Interesting enough.... I just did a 4th print and did not need to adjust the baby steps....
Going to wait 20 minutes and run another test print and see how it goes
Well you must have something supporting that plate.
For example I use 6mm thick cast aluminum tool plate.
Frederick
-
@infidelprops said in Every time I print, I need to increase baby steps:
First print, adjusted baby steps by -0.015
Second print, had to adjust baby steps by -0.027
Third print, had to adjust baby steps by -0.02I wonder if
@infidelprops said in Every time I print, I need to increase baby steps:
First print, adjusted baby steps by -0.015
Second print, had to adjust baby steps by -0.027
Third print, had to adjust baby steps by -0.02I wonder if this widget, which can count Z stepper steps, would help diagnosing this problem. The expectation is that two consecutive prints should have the same step count at the same stage of the print.
-
@infidelprops said in Every time I print, I need to increase baby steps:
First print, adjusted baby steps by -0.015
Second print, had to adjust baby steps by -0.027
Third print, had to adjust baby steps by -0.02Seems to match the variance of your probe results.
Do a couple point tests around the surface of your bed with the mesh enabled, and carefully move the nozzle to Z0 and see if it's accurate or not.
Just as a test to eliminate other factors, change to manual probing by using
M558 P0
This will pop up a jogging prompt whenever a G30 is done allowing you to manually move the nozzle to just touch the bed surface. You only really need to do it for setting Z0 before the print.This removes the probe from the equation. Though if the heightmap is inaccurate from the first test, then you might need to create a new heightmap with maybe only a 5x5 grid to keep the number of points to manually probe reasonable. But if it works and gives you a good first layer, then you know the probe is the problem.
-
@infidelprops said in Every time I print, I need to increase baby steps:
I've also noticed, that consistently, when facing the printer.. the right side of my pint seems flatter and adheres better where the left side appears a bit higher and adheres worse.
That usually means that the probe trigger height relative to the nozzle tip is varying across the bed. You can check by using feeler gauges to measure the nozzle height when the probe triggers. The usual cause of that using an offset Z probe and the print head tilting, for example because the axis is sagging or the bed plate is bowed.