Bed leveling
-
Hello
I have gotten an issue with the bed is very low, in the hight map.
I was not by the printer, and when I came back the printer had stopped and was pressing against the board, maybe for some time.It was my 3 print and to 2 previous was perfict i anyway.
Yesterday I then started to print the same opjekt again, (ofcause I homed all and al that) but then the printer began to touch the bed.
I started over again, homed all. but it still persist.
Then I made a mesh bed, but the problem still persist.
Then I did it again, but still the same.The code has not been changed, the only thing was the printer pressing against the bed. And I do not get it. What has changed?
Here are the bed leveling code and the Config.g
Config.g
; Configuration file for Duet 3 (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sun Mar 27 2022 12:01:23 GMT+0200 (Centraleuropæisk sommertid) ; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Heides Printer" ; set printer name M669 K1 ; select CoreXY mode ; Wait a moment for the CAN expansion boards to start G4 S2 ; Network M552 P192.168.0.110 S1 ; enable network and set IP address M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P1.0 S1 ; physical drive 1.0 goes forwards A M569 P1.1 S1 ; physical drive 1.1 goes forwards B M569 P0.1 S1 ; physical drive 0.1 goes Forwards Z1 M569 P0.0 S1 ; physical drive 0.0 goes forwards E M569 P0.2 S0 ; physical drive 0.2 goes backwards Z2 M569 P0.3 S1 ; physical drive 0.3 goes forwards Z3 M569 P0.4 S0 ; physical drive 0.1 goes backwards Z4 M584 X1.0 Y1.1 Z0.1:0.2:0.3:0.4 E0.0 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X82.1328 Y82.133 Z400 E397.00 ; set steps per mm M566 X900.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima limits M208 X275 Y275 Z275 S0 ; set axis maxima limits ; Endstops M574 X2 S1 P"!io1.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin !io1.in M574 Y2 S1 P"!io2.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin !io2.in M574 Z1 S2 ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin io5.in ; Z-Probe M558 P5 C"io4.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds M558 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved G31 P500 X0 Y0 Z1.50 ; set Z probe trigger value, offset and trigger height M557 X0:270 Y0:240 ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 R0.753 K0.444:0.000 D3.45 E1.35 S1.00 B0 ; disable bang-bang mode for heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 R3.751 K0.520:0.000 D1.88 E1.35 S1.00 B0 V23.8; disable bang-bang mode for heater and set PWM limit M143 H1 S300 ; set temperature limit for heater 1 to 300C ; Fans M950 F0 C"out4" Q500 ; create fan 0 on pin out4 and set its frequency M106 P1 S1 I0 H1 T150 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out5" Q500 ; create fan 1 on pin out5 and set its frequency M106 P1 S1 I0 H1 T50 ; set fan 1 value. Thermostatic control is turned on M950 F2 C"out7" Q500 ; create fan 2 on pin out7 and set its frequency M106 P2 S0.25 H-1 ; set fan 2 value. Thermostatic control is turned off M950 F3 C"out8" Q500 ; create fan 3 on pin out8 and set its frequency M106 P3 S0.25 H-1 ; set fan 3 value. Thermostatic control is turned off ; Tools M563 P0 D0 H1 F-1 ; 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 ; Custom settings are not defined ; Miscellaneous T0 ; select first tool
Map Hight
RepRapFirmware height map file v2 generated at 2022-04-06 22:07, min error -4.715, max error -3.112, mean -4.010, deviation 0.285 axis0,axis1,min0,max0,min1,max1,radius,spacing0,spacing1,num0,num1 X,Y,0.00,270.00,0.00,240.00,-1.00,20.00,20.00,14,13 -4.100, -4.090, -4.142, -4.213, -4.245, -4.283, -4.340, -4.395, -4.438, -4.493, -4.537, -4.630, -4.645, -4.715 -4.120, -4.097, -4.137, -4.195, -4.215, -4.235, -4.287, -4.328, -4.363, -4.395, -4.445, -4.528, -4.530, -4.578 -4.108, -4.082, -4.120, -4.162, -4.170, -4.190, -4.230, -4.262, -4.285, -4.318, -4.347, -4.415, -4.403, -4.455 -4.102, -4.080, -4.102, -4.137, -4.137, -4.137, -4.165, -4.195, -4.205, -4.220, -4.245, -4.305, -4.293, -4.332 -4.102, -4.065, -4.080, -4.100, -4.097, -4.095, -4.115, -4.125, -4.132, -4.135, -4.135, -4.205, -4.175, -4.205 -4.118, -4.070, -4.075, -4.090, -4.070, -4.055, -4.060, -4.062, -4.057, -4.060, -4.060, -4.108, -4.065, -4.085 -4.130, -4.075, -4.073, -4.078, -4.055, -4.033, -4.025, -4.010, -4.003, -3.995, -3.983, -4.012, -3.965, -3.965 -4.132, -4.073, -4.047, -4.052, -4.007, -3.970, -3.945, -3.915, -3.888, -3.872, -3.845, -3.875, -3.815, -3.825 -4.132, -4.052, -4.005, -4.017, -3.965, -3.918, -3.888, -3.852, -3.812, -3.775, -3.735, -3.753, -3.688, -3.685 -4.137, -4.055, -4.007, -3.997, -3.940, -3.888, -3.855, -3.818, -3.760, -3.715, -3.665, -3.675, -3.588, -3.557 -4.137, -4.052, -4.005, -3.970, -3.902, -3.840, -3.803, -3.745, -3.682, -3.618, -3.555, -3.543, -3.452, -3.405 -4.135, -4.045, -3.993, -3.953, -3.868, -3.797, -3.743, -3.682, -3.602, -3.535, -3.450, -3.423, -3.325, -3.265 -4.150, -4.035, -3.975, -3.925, -3.832, -3.745, -3.680, -3.608, -3.525, -3.445, -3.367, -3.310, -3.185, -3.112
Homeall and Z=0 datum (I home this is correct, but has worked for the first 2 prints)
G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X305 Y305 F1800 ; move quickly to X or Y endstop and stop there (first pass) G1 H1 X305 ; home X axis G1 H1 Y305 ; home Y axis G1 X-5 Y-5 F6000 ; go back a few mm G1 H1 X305 F360 ; move slowly to X axis endstop once more (second pass) G1 H1 Y305 ; then move slowly to Y axis endstop G90 G91 G1 X-5 Y-35 F2000 ; put the head wherever you want it to be when you home Z (omit this line if it doesn't matter) G1 H1 Z-400 F360 ; move Z down stopping at the endstop G90 ; absolute positioning G92 Z0 ; set Z position to axis minimum (you may want to adjust this) G29 S2 ; cancel mesh bed compensation M290 R0 S0 ; cancel baby stepping G1 H2 Z5 F6000 ; lift Z relative to current position G1 X119.5 Y111 ; move probe to bed center G30 ; do single probe - sets Z to probe trigger height - if trigger height is wrong Z position will be wrong G29 S1 ; Load height map from file
Regards
Heide -
By the way. I can confirm that the hight level over the bed in regards of G31 is 1.5 mm. Leveled 3 times and confirmed. This is at X119,5 Y111. This is not the exact center, but the object I was going to print, was the bedcentering tool, to get the correct setting.
-
The numbers in your height map are strange. The deviation is good but the mean should be closer to 0.
Before creating the height map did you cancel baby stepping and mesh bed compensation and set the Z=0 datum?
Because mesh bed compensation is a feature to improve printing I load the height map at the start of a print and disable it at the end of a print.
Perhaps you should try that approach.
Frederick
-
@fcwilt I will have a look at it tonight when I come home from work.
But can you tell me how a code would be to be able to do that.
-
@heide said in Bed leveling:
@fcwilt I will have a look at it tonight when I come home from work.
But can you tell me how a code would be to be able to do that.
Be glad to.
Frederick
-
@fcwilt Okay, this is also what I think, that the hight map looks strange, too low (But this is after the accident, if I can call it that). Before that it was over the bed. Really weird.
Is I did all that, you ask.
I used my macro that I call "Home all and Z=0 datum" before I run mesh compensation, and I have done it two times.
If there are something wrong with the code, please tell me. -
@heide said in Bed leveling:
@fcwilt Okay, this is also what I think, that the hight map looks strange, too low (But this is after the accident, if I can call it that). Before that it was over the bed. Really weird.
Is I did all that, you ask.
I used my macro that I call "Home all and Z=0 datum" before I run mesh compensation, and I have done it two times.
If there are something wrong with the code, please tell me.Hi,
Please copy-and-paste that code using the </> tag.
Frederick
-
@fcwilt It is the last code in the tread
@heide said in Bed leveling:
Homeall and Z=0 datum (I home this is correct, but has worked for the first 2 prints)
-
@heide said in Bed leveling:
@fcwilt It is the last code in the tread
@heide said in Bed leveling:
Homeall and Z=0 datum (I home this is correct, but has worked for the first 2 prints)
Thanks.
So you call that and then execute G29 to run your mesh.g file?
Please copy-and-paste your mesh.g file.
Thanks.
Frederick
-
@fcwilt I do not have a mesh.g file. But maybe that would be a problem. I use the G29 file that are incorperated into DWC.
But I have been thinking that it would be posible to make my own
-
@heide said in Bed leveling:
@fcwilt I do not have a mesh.g file. But maybe that would be a problem. I use the G29 file that are incorperated into DWC.
But I have been thinking that I would be posible to make my own
There is no G29 file incorporated in to DWC.
The intended approach is to create a bed.g file bed leveling and this is invoked with G32, and to create a mesh.g file for creating the height map and this is invoked with G29.
If you do not have a mesh.g file then a G29 will create the height map using any currently existing conditions which may not be correct for height map creation.
So it is best to create a mesh.g file so you know that everything you want to be done prior to creating the height map can be done in that file.
Frederick
-
@fcwilt I'm thinking I am doing things correct, but in reality I'm doing it wrong.
Can I have a hint on what this would look like.
I will read the "Mesh bed compensation" i the docs to get an Idear on how this works -
@heide said in Bed leveling:
@fcwilt I'm thinking I am doing things correct, but in reality I'm doing it wrong.
Can I have a hint on what this would look like.
I will read the "Mesh bed compensation" i the docs to get an Idear on how this worksThe file mesh.g can be quite simple.
The conditions that you want to exist prior to creating the height map are:
- all axes homed
- baby stepping off
- mesh compensation off
- Z=0 datum set
In my setup since I want to be able to execute a G29 at any time my mesh.g file does all those things even if they may already have been done.
G28 ; home all M290 R0 S0 ; cancel baby stepping G29 S2 ; cancel mesh bed compensation G1 Z5 ; insure probe is high enough for probing to be succeed G1 Xaaa Ybbb ; move to center of bed (aaa and bbb would be specific to your printer) G30 ; probe bed and set Z=0 datum G29 S0 ; create height map G29 S2 ; cancel mesh bed compensation (I do this since I only want mesh compensation active during printing)
-
@fcwilt Thanks for the conditions and the code. I have enabled this now.
But I get these faults, but is that normal?
I want to know how this works, so I will read it carefully
-
@heide said in Bed leveling:
@fcwilt Thanks for the conditions and the code. I have enabled this now.
But I get these faults, but is that normal?
I want to know how this works, so I will read it carefully
Sorry I wasn't clear. I posted an example of what my code does. Your homing file loads the height map, mine does not. So if you created mesh.g using the code I posted the errors are likely coming from the commands in your homing file that deal with the height map.
As I mentioned I only load the height map at the start of a print so for now comment out all commands in your homing file that try to do anything with the height map.
Frederick
-
@fcwilt Okey, It is still on going, and will be finished in about 20 min. I will look into the way you do it tomorrow. I will end the homing all file with loading of the hight map. If I understand you right, that would be just before I start a print job.
I'm exited about if this works, I hope it does. -
@heide said in Bed leveling:
@fcwilt Okey, It is still on going, and will be finished in about 20 min. I will look into the way you do it tomorrow. I will end the homing all file with loading of the hight map. If I understand you right, that would be just before I start a print job.
I'm exited about if this works, I hope it does.I use Simplify3D as my slicer. It has a place where you can put code to be executed at the start of a print and another place where you can put code to be executed at the end of a print.
This is what I have in those two places:
M98 P"print_being.g" and M98 P"print_end.g"
I created these two files in the SYS directory using the DWC code editor.
It is in these files that I put the code I wish to run.
Among others things the code in print_begin.g does, one is to load the height map.
I can explain further is you wish.
Frederick
-
@fcwilt This is my new Hight Map.
I have not yet started to print. I need to make the code correct first. But that should be done within the hour.
I'm using Cura Slicer and I'm not famillier with it just yet. I do not have a good reason to buy the Simplfy3d program. But maybe you can change my mind.
Does Cura slicer have a place to place the files?RepRapFirmware height map file v2 generated at 2022-04-07 22:07, min error -0.882, max error 1.737, mean 0.094, deviation 0.622 axis0,axis1,min0,max0,min1,max1,radius,spacing0,spacing1,num0,num1 X,Y,0.00,270.00,0.00,240.00,-1.00,20.00,20.00,14,13 -0.832, -0.775, -0.785, -0.812, -0.805, -0.795, -0.810, -0.817, -0.815, -0.830, -0.835, -0.882, -0.850, -0.875 -0.745, -0.683, -0.678, -0.692, -0.673, -0.650, -0.660, -0.660, -0.650, -0.645, -0.650, -0.685, -0.652, -0.655 -0.635, -0.572, -0.565, -0.567, -0.535, -0.510, -0.507, -0.505, -0.485, -0.475, -0.460, -0.487, -0.433, -0.442 -0.527, -0.465, -0.445, -0.445, -0.405, -0.362, -0.355, -0.337, -0.315, -0.285, -0.268, -0.288, -0.237, -0.237 -0.435, -0.352, -0.330, -0.315, -0.270, -0.230, -0.205, -0.175, -0.145, -0.110, -0.075, -0.095, -0.033, -0.015 -0.355, -0.265, -0.235, -0.207, -0.153, -0.095, -0.065, -0.025, 0.015, 0.058, 0.092, 0.085, 0.165, 0.190 -0.268, -0.175, -0.133, -0.102, -0.040, 0.020, 0.065, 0.115, 0.163, 0.210, 0.263, 0.268, 0.360, 0.388 -0.173, -0.077, -0.015, 0.013, 0.090, 0.168, 0.235, 0.300, 0.365, 0.420, 0.480, 0.487, 0.585, 0.612 -0.080, 0.038, 0.117, 0.143, 0.230, 0.315, 0.383, 0.452, 0.530, 0.602, 0.680, 0.697, 0.795, 0.835 0.010, 0.133, 0.212, 0.255, 0.347, 0.440, 0.505, 0.575, 0.672, 0.755, 0.838, 0.865, 0.983, 1.050 0.110, 0.232, 0.308, 0.380, 0.475, 0.572, 0.645, 0.735, 0.835, 0.930, 1.033, 1.075, 1.195, 1.283 0.205, 0.325, 0.405, 0.482, 0.600, 0.707, 0.795, 0.885, 1.003, 1.105, 1.223, 1.277, 1.415, 1.507 0.285, 0.435, 0.525, 0.602, 0.725, 0.845, 0.945, 1.045, 1.165, 1.275, 1.388, 1.475, 1.632, 1.737
-
That height map looks good.
And, yes, Cura has a places for user code. I believe most slicers do.
You have to add your printer to Cura and configure the Cura settings for it.
Here is a screen shot of the Cura page where you can enter user code - you can see what I have entered.
Frederick