Dual Z bed Levelling and strange behavior
-
Hi RYNR,
Yes, I agree and I would expect at some point for the trigger points to be the same and therefore indicate a level bed.
-
Right, so what is curios should we be the only two with this problem or is there e better headline for this topic?
-
@chas2706 said in Dual Z bed Levelling and strange behavior:
M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0 (bed)
M305 P1 T92000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1 (nozzle)this will most likely be incorrect. you need to replace the beta value with the value for your thermistor
-
@Veti how this relates to the levelling problem?
-
it is not but its something you should look into
-
Thanks for pointing that one out Veti.
I will look into it at a later date.My main reason to include the config.g though was to point out that my M671 command comes after my M584 command and any M667 or M669 command as stated in the "Bed levelling using multiple Z motors" guide and everything else regarding the set up is correct.
-
@rynr The first two figures are the adjustments which were made, not the height of the two probe points, so you can't view them as A - B should equal the third number.
The code which drives the bed adjustment is kind of complicated. I can understand what it does, but how it does it is complicated enough to make my brain hurt.
-
@grizewald Thanks for that but it still does not explain why adjustments are always made no matter how many consecutive times you carry out a levelling procedure.
-
@chas2706 I can't answer that I'm afraid.
Out of curiosity, I created a macro to see how repeatable my lead screw levelling is. The macro looks like this:
M929 P"tiltlog.txt" S1 G28 M98 Pfixtilt.g M98 Pfixtilt.g M98 Pfixtilt.g M98 Phomez.g M98 Pjogy10.g M98 Pfixtilt.g M98 Pfixtilt.g M98 Pfixtilt.g M98 Phomez.g M98 Pjogy50.g M98 Pfixtilt.g M98 Pfixtilt.g M98 Pfixtilt.g M98 Phomez.g M98 Pjogx10.g M98 Pfixtilt.g M98 Pfixtilt.g M98 Pfixtilt.g M98 Phomez.g M98 Pjogx50.g M98 Pfixtilt.g M98 Pfixtilt.g M98 Pfixtilt.g M98 Phomez.g M929 S0
The macros it calls are four simple macros to jog the head either 10 or 50mm in X or Y directions then return to where it was before. The fixtilt.g and homez.g macros are used in my homing routines.
So, the test starts by homing all axes. My homeall.h includes a call to fixtilt.g. Then, it does three calls to fixtilt.g and finally re-homes Z. I repeat this four times, using one of the jog macros between each set of three tilt corrections. Everything gets logged to a file.
The fixtilt.g macro is just two lines:
G30 P0 X0 Y233 Z-99999 ; probe near left lead screw G30 P1 X290 Y233 Z-99999 S2 F1.1 ; probe near right lead screw and correct with two motors and fudge factor of 1.1
And homez.g looks like this:
; homez.g ; called to home the Z axis ; G91 ; relative positioning G1 Z5 F360 S2 ; lift Z relative to current position G90 ; absolute positioning G1 X145 Y233 F6000 ; go to homing probe point G30 ; home Z by probing the bed ; Lift Z again after probing G91 ; relative positioning G1 S2 Z5 F360 ; lift Z relative to current position G90 ; absolute positioning
For the sake of completeness, my config.g is below:
; Configuration file for Duet WiFi (firmware version 1.21) ; executed by the firmware on start-up ; ; ; General preferences G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M667 S1 ; Select CoreXY mode ; Network M550 PV-Core ; Set machine name M551 Preprap ; Set password M552 S1 ; Enable network M587 S"****" P"****" ; Configure access point. M586 P0 S1 ; Enable HTTP M586 P1 S0 ; Enable FTP M586 P2 S0 ; Enable Telnet ; Drives M584 X0 Y1 Z2:4 E3 P3 ; Z on drivers 2 and 4 (Z and E1) M671 X-46:346 Y233:233 S2 ; Set lead screw positions and set max correction to 2mm M569 P0 S0 ; X Drive goes backwards (1 = forwards, 0 = backwards) M569 P1 S0 ; Y Drive goes backwards M569 P2 S0 ; Z Drive goes backwards M569 P3 S0 ; E0 Drive goes backwards M569 P4 S0 ; E1 (Z2) Drive goes backwards M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E411.00 ; Set steps per mm M566 X1200.00 Y1200.00 Z100.00 E3600.00 ; Set maximum instantaneous speed changes (mm/min) M203 X18000.00 Y18000.00 Z600.00 E3600.00 ; Set maximum speeds (mm/min) M201 X1000.00 Y1000.00 Z180.00 E3600.00 ; Set accelerations (mm/s^2) M906 X1800.00 Y1800.00 Z1800.00 E595.00 I30 ; Set motor currents (mA) and motor idle factor in per cent M84 S180 ; Set idle timeout to 180 seconds to stop the bed relaxing while waiting for the final ; phase of heating the bed and print head. ; Axis Limits M208 X0 Y0 Z0 S1 ; Set axis minima M208 X290 Y280 Z285 S0 ; Set axis maxima ; Endstops M574 Y1 X1 S0 ; Set active LOW endstops for X and Y at minimum ; Z-Probe M574 Z1 S2 ; Z end stop is probe at low value M558 P8 R0.4 I1 H5 F360 T6000 ; Set Z probe type to inverted, unfiltered piezo and the dive height + speeds G31 P500 X0 Y0 Z-0.02 ; Set Z probe trigger value, offset and trigger height M557 X5:285 Y5:275 P14 ; Define mesh grid ; Heaters M307 H0 B0 S1.00 ; Disable bang-bang mode for the bed heater and set PWM limit M305 P0 T100000 B3950 R4700 ; Set thermistor + ADC parameters for heater 0 M143 H0 S120 ; Set temperature limit for heater 0 to 120C M305 P1 T100000 B4725 C7.060000e-8 R4700 ; Set thermistor + ADC parameters for heater 1 M143 H1 S290 ; Set temperature limit for heater 1 to 290C ; Fans M106 P0 S0 I0 F500 H-1 ; Fan 0 is the part cooling fan. Start at zero speed and let the slicer decide M106 P1 S1 I0 F500 H1 T45 ; Fan 1 is the hot end heatsink. Keep it running while hot end temp is > 45C M106 P2 S0.3 I0 F100 H-1 ; Fan 2 is cooling the Duet3D board. I originally had it full speed on an ; always on connection but it was so loud! ; Tools M563 P0 D0 H1 ; Define tool 0 G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C T0 ; Select the one and only tool ; Set Pressure Advance parameters M572 D0 S0.11 ; Seems OK from test pattern ; Run any overrides M501
So, after all that preparatory information, what did my macro show? Here's the log: (I added some blank lines so that the adjustment messages are easier to match up to each stage of the test.)
2019-08-09 16:08:54 Event logging started 2019-08-09 16:09:26 Leadscrew adjustments made: 0.102 0.088, points used 2, deviation before 0.095 after 0.000 2019-08-09 16:09:41 Leadscrew adjustments made: 0.101 0.111, points used 2, deviation before 0.106 after 0.000 2019-08-09 16:09:51 Leadscrew adjustments made: 0.006 -0.004, points used 2, deviation before 0.004 after 0.000 2019-08-09 16:10:01 Leadscrew adjustments made: -0.000 0.003, points used 2, deviation before 0.002 after 0.000 2019-08-09 16:10:16 Leadscrew adjustments made: 0.102 0.105, points used 2, deviation before 0.104 after 0.000 2019-08-09 16:10:26 Leadscrew adjustments made: 0.003 -0.000, points used 2, deviation before 0.002 after 0.000 2019-08-09 16:10:36 Leadscrew adjustments made: 0.000 -0.003, points used 2, deviation before 0.002 after 0.000 2019-08-09 16:10:52 Leadscrew adjustments made: 0.095 0.098, points used 2, deviation before 0.096 after 0.000 2019-08-09 16:11:02 Leadscrew adjustments made: 0.002 0.002, points used 2, deviation before 0.002 after 0.000 2019-08-09 16:11:12 Leadscrew adjustments made: -0.006 0.004, points used 2, deviation before 0.004 after 0.000 2019-08-09 16:11:27 Leadscrew adjustments made: 0.098 0.092, points used 2, deviation before 0.095 after 0.000 2019-08-09 16:11:37 Leadscrew adjustments made: 0.003 -0.000, points used 2, deviation before 0.002 after 0.000 2019-08-09 16:11:47 Leadscrew adjustments made: 0.003 -0.000, points used 2, deviation before 0.002 after 0.000 2019-08-09 16:12:03 Leadscrew adjustments made: 0.098 0.092, points used 2, deviation before 0.095 after 0.000 2019-08-09 16:12:13 Leadscrew adjustments made: -0.009 0.001, points used 2, deviation before 0.005 after 0.000 2019-08-09 16:12:22 Leadscrew adjustments made: 0.012 -0.002, points used 2, deviation before 0.007 after 0.000 2019-08-09 16:12:28 Event logging stopped
Oddly, re-homing Z between each test seems to introduce a 0.1mm deviation. However, performing the lead screw adjustment (with a fudge factor of 1.1) fixes the misalignment on the first attempt. Subsequent adjustments after that show a deviation which is within the variation caused by the repeatability of my piezo probe.
Hopefully, this post is more helpful!
-
That should be homeall.g not homeall.h, but the system won't let me edit my post claiming "It was detected as spam"!