Mesh Compensation
-
I'm really not convinced my bed mesh compensation is working...the first layer really suggests it isn't. I've used this machine hard for 3 years now and it knocks out prints as good as anything I've seen, but I really want to dial it right in now.
My build plate is 1/4" cast ally tool plate with printbite surface, leveled very carefully with a feeler gauge, but it does have a couple of dips in it. The supplier has told me since that only the thicker plate (3/8" and up) have tighter tolerances for flatness.
I run a mesh in the start of every print.
Here's my bed.g file:
; bed.g
; called to perform automatic bed compensation via G32
;
; generated by RepRapFirmware Configuration Tool v2.1.2 on Thu Nov 21 2019 10:53:55 GMT+1100 (Australian Eastern Daylight Time)
M561 ; clear any bed transform
G29 ; probe the bed and enable compensationM557:
M557
Grid: X20.0:180.0, Y20.0:180.0, radius -1.0, X spacing 40.0, Y spacing 40.0, 25 pointsStart script in my slicer (S3D):
G29 S2
G28
G29
G90
G1 X97.5 Y97.5 F4800
G30
G1 Z5 F500It's a cartesian printer with a build plate of 195x195, but I went for a 180x180 mesh to keep it all in the envelope.
Have I got this set up right, and how can I tell if it's working?
I feel I'd better get this right before I mess about with pressure advance and other tuning.
Cheers again for all the help I get on here
** I've used David's wizard by the way, but it asks for a bed "radius"...is it only for deltas?
Just in case, here's what I got using a 180mm radius setting (a lot more than the existing bed.g file):
; bed.g file for RepRapFirmware, generated by Escher3D calculator
; 16 points, 6 factors, probing radius: 180, probe offset (4, 28)
G30 P0 X0.00 Y155.74 Z-99999 H0
G30 P1 X101.81 Y121.33 Z-99999 H0
G30 P2 X167.31 Y29.50 Z-99999 H0
G30 P3 X155.88 Y-90.00 Z-99999 H0
G30 P4 X61.56 Y-169.14 Z-99999 H0
G30 P5 X-61.56 Y-169.14 Z-99999 H0
G30 P6 X-155.88 Y-90.00 Z-99999 H0
G30 P7 X-174.25 Y30.72 Z-99999 H0
G30 P8 X-104.14 Y124.11 Z-99999 H0
G30 P9 X0.00 Y68.60 Z-99999 H0
G30 P10 X63.92 Y36.90 Z-99999 H0
G30 P11 X77.94 Y-45.00 Z-99999 H0
G30 P12 X0.00 Y-90.00 Z-99999 H0
G30 P13 X-77.94 Y-45.00 Z-99999 H0
G30 P14 X-67.51 Y38.98 Z-99999 H0
G30 P15 X0 Y0 Z-99999 S6 -
@Corexy said in Mesh Compensation:
G29 S2
G28
G29
G90
G1 X97.5 Y97.5 F4800
G30
G1 Z5 F500why are you doing this?
G28
G29
should be enoughcheck with M122 if mesh is enabled while printing.
very imporant check that your probe offset is correct
post a your config.g and a picture of the mesh -
That start script in the slicer was setup with some advice here back in the day. If it's no good I'll change it.
My probe offset is set and checked pretty carefully. It's always been consistent and reliable, but I've just fitted a new hot end that required me to adjust the mount to get the bottom of the IR sensor board close to 1.5mm above the tip of the nozzle.
Here we go:
([url=https://imgur.com/lhDZMzc][img]http://i.imgur.com/lhDZMzc.png[/img][/url]
)
; Configuration file for Duet WiFi
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool on Sat Oct 22 2016 18:28:19 GMT+1100 (AUS Eastern Daylight Time); General preferences
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder moves; Network
M550 P"Zortrax M200" ; Set machine name
M552 S1 ; Enable network and acquire dynamic address via DHCP; Drives
M584 X0 Y1 Z2 E3 ; Set drive mapping
M569 P0 S1 ; Drive 0 goes forwards
M569 P1 S1 ; Drive 1 goes forwards
M569 P2 S0 ; Drive 2 goes backwards
M569 P3 S1 ; Drive 3 goes forwards
M350 X16 Y16 Z16 E16 I1 ; Configure microstepping without interpolation
M92 X80 Y80 Z800 E118 ; Set steps per mm
M566 X1600 Y1600 Z12 E800 ; Set maximum instantaneous speed changes (mm/min)
M203 X18000 Y18000 Z1200 E8000 ; Set maximum speeds (mm/min)
M201 X1200 Y1200 Z20 E1200 ; Set accelerations (mm/s^2)
M906 X1100 Y1100 Z800 E500 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Endstops
M574 Z0 S0 ; Define active low and unused microswitches
M574 X1 Y1 S1 ; Define active high microswitches
M208 X0 Y0 Z0 S1 ; Set axis minima
M208 X195 Y195 Z175 S0 ; Set axis maxima; Z-Probe
M558 P1 X0 Y0 Z1 H5 F600 T6000 ; Set Z probe type to unmodulated, the axes for which it is used and the probe + travel speeds
G31 P500 X0 Y0 Z2.465 ; Set Z probe trigger value, offset and trigger height
M557 X20:180 Y20:180 S40; Heaters
M143 S280 ; Set maximum extruder temperature to 280C
M143 H0 S140 ; Set maximum bed temperature to 140C
M305 P0 T100000 B4000 C0 R4700 L0 H0 ; Set thermistor + ADC parameters for heater 0
M305 P1 X200 ; Set thermistor + ADC parameters for heater 1 and remap it to channel 200
M307 H0 A144.9 C625.3 D1.0 B0
M307 H1 A892.1 C396.5 D6.4 V24.3 B0; Tools
M563 P0 D0 H1 ; Define tool 0
G10 P0 X0 Y0 ; Set tool 0 axis offsets
G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
T0; Fans
M106 P0 S0 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on; Custom settings are not configured
-
@Corexy said in Mesh Compensation:
M558 P1 X0 Y0 Z1 H5 F600 T6000 ; Set Z probe type to unmodulated, the axes for which it is used and the probe + travel speeds
M557 X20:180 Y20:180 S40depending on your bed S40 is to large to be effective.
if you dont have a probe? how do you do mesh calibration? manually?
-
I have the mini IR probe.
My bed is 195x195 square build area (the actual plate is 240x240 but it can't all be reached).
Mate I don't even know what S40 means, so if you don't mind telling me what you'd put in your bed.g, config.g and start script, I'll take your word for it and appreciate your help.
Cheers again,
Neil.
-
@Corexy said in Mesh Compensation:
G31 P500 X0 Y0
ok you need to configure the probe position.
X and Y is the offset of the probe from the nozzle. X postive is to the your Y positive is behing. Without this your mesh will be inaccurate.
M557 X20:180 Y20:180 S40
change S40 to S15 or S10
M574 Z0 S0 ; Define active low and unused microswitches
change to
M574 Z1 S2 ; set endstops controlled by probepost your homing scripts. they will prob be wrong.
-
I should point out that x and y have homing switches...the probe only does the bed level.
Does that change anything?
Thanks for helping with this. What's crazy is that despite me using this thing for years with little tuning/adjustment, I knock out some pretty good prints.
-
@Corexy said in Mesh Compensation:
I should point out that x and y have homing switches...the probe only does the bed level.
Does that change anything?no
-
OK,
So my nozzle/probe offsets are:
X 4mm
Y 28mmSo my M557 becomes:
M557 X4:195 Y28:195 S10 (?)
Just a bit worried that the fans might bang into some hardware with these offsets. It's a tight fit in there.
My slicer start script:
G28 (home all?)
G29 (mesh probe?)Nothing else at all? I should really tack the purge/wipe I was asking about in my other thread on here while I'm at it?
Any changes to bed.g?
Homing files...
homeall.g:
; homeall.g
; called to home all axes
;
; generated by RepRapFirmware Configuration Tool v2.1.2 on Thu Nov 21 2019 10:53:58 GMT+1100 (Australian Eastern Daylight Time)
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G1 H1 X-200 Y-200 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
G1 H2 X5 Y5 F6000 ; go back a few mm
G1 H1 X-200 Y-200 F360 ; move slowly to X and Y axis endstops once more (second pass)
G90 ; absolute positioning
G1 H2 X97.5 Y97.5 F6000 ; go to first bed probe point and home Z
G30 ; home Z by probing the bed; Uncomment the following lines to lift Z after probing
G91 ; relative positioning
G1 S2 Z5 F100 ; lift Z relative to current position
G90 ; absolute positioninghomex.g:
; homex.g
; called to home the X axis
;
; generated by RepRapFirmware Configuration Tool v2.1.2 on Thu Nov 21 2019 10:53:59 GMT+1100 (Australian Eastern Daylight Time)
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G1 H1 X-200 F1800 ; move quickly to X axis endstop and stop there (first pass)
G1 H2 X5 F6000 ; go back a few mm
G1 H1 X-200 F360 ; move slowly to X axis endstop once more (second pass)
G1 H2 Z-5 F6000 ; lower Z again
G90 ; absolute positioninghomey.g:
; homey.g
; called to home the Y axis
;
; generated by RepRapFirmware Configuration Tool v2.1.2 on Thu Nov 21 2019 10:53:59 GMT+1100 (Australian Eastern Daylight Time)
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G1 H1 Y-200 F1800 ; move quickly to Y axis endstop and stop there (first pass)
G1 H2 Y5 F6000 ; go back a few mm
G1 H1 Y-200 F360 ; move slowly to Y axis endstop once more (second pass)
G1 H2 Z-5 F6000 ; lower Z again
G90 ; absolute positioninghomez.g:
; homez.g
; called to home the Z axis
;
; generated by RepRapFirmware Configuration Tool v2.1.2 on Thu Nov 21 2019 10:53:59 GMT+1100 (Australian Eastern Daylight Time)
G91 ; relative positioning
G1 H2 Z5 F6000 ; lift Z relative to current position
G90 ; absolute positioning
G1 H2 X15 Y15 F6000 ; go to first probe point
G30 ; home Z by probing the bed; Uncomment the following lines to lift Z after probing
;G91 ; relative positioning
;G1 H2 Z5 F100 ; lift Z relative to current position
;G90 ; absolute positioningI do suspect my files are messy. I come on here asking things and get a line to add here and there. Would really love to have an expert here with me in front of the thing for a day...
-
@Corexy said in Mesh Compensation:
M557 X4:195 Y28:195 S10 (?)
no you change the probe offset in the G31 command like i posted.
Nothing else at all? I should really tack the purge/wipe I was asking about in my other thread on here while I'm at it?
lets get your mesh working first.
Any changes to bed.g?
bed.g is for G32 command which you are not using.
your homing files look fine
-
Ok, sorry my mistake
X and Y is the offset of the probe from the nozzle. X postive is to the your Y positive is behind. Without this your mesh will be inaccurate.
Not quite sure what you mean here...you mean that I enter a positive value offset if the probe is further "along" the axis than the nozzle tip, and negative if it is "behind"?
Thank you for your patience by the way.
-
that was posted regarding your
G31 P500 X0 Y0
command.that command means the probe is at the same place as the nozzle is, which it is not as you are using a ir probe.
so you need to tell the duet where the ir senssor actualy is while assuming that the nozzle is at 0,0.
post a picture of your carriage.
-
@Veti said in Mesh Compensation:
that was posted regarding your
G31 P500 X0 Y0
command.that command means the probe is at the same place as the nozzle is, which it is not as you are using a ir probe.
so you need to tell the duet where the ir senssor actualy is while assuming that the nozzle is at 0,0.
post a picture of your carriage.
OK, so I just went out there and moved the nozzle around the absolute outside of the build area via the touchscreen, and the nozzle travels the absolute limits of the build area and obstacles as it is. If I add these offsets is there any chance I'll bump into things, or should I do something to avoid that.
-
try it with the hand on the power switch.
but if i remember correctly the offset does not change the mesh coordinates, as they are absolute nozzle parameter.
-
also
M208 X0 Y0 Z0 S1 ; Set axis minima
M208 X195 Y195 Z175 S0 ; Set axis maximathis is a hard limit for your axis. if at X195 Y195 there is no problem. then you can not cause a problem with the mesh leveling.
-
Yes, I'll keep the switch handy ha ha. But It still must home the axis' against the limit switches, so yes no offset was probably only messing up my mesh.
G31 P500 X2 Y28 Z2.465
I measured it a bit more accurately. So I run G29 and see what happens??
-
@Corexy
yes -
M557 X20:180 Y20:180 S10
Ok, it's ticking over happily with the mesh (cold build plate), but it's going to take a lot longer with these 10mm intervals. Which is fine if it will give me a better first layer.
To probe the entire (195x195) bed, should I take it out to the edges?
M557 X5:190 Y5:190 S10
And I'm also thinking should I:
- Warm build plate
- Home all
- Mesh probe (each time, as different bed temps will make different mesh)
- Purge/wipe
- Start print
It would be really good to do the mesh probe with a cold nozzle as the ooze is a pain and I'm using an IR probe anyway. I don't mind at all the mesh taking a long time if I'm not picking ooze off the nozzle with tweezers the whole time.
-
@Corexy said in Mesh Compensation:
Ok, it's ticking over happily with the mesh (cold build plate), but it's going to take a lot longer with these 10mm intervals. Which is fine if it will give me a better first layer.
To probe the entire (195x195) bed, should I take it out to the edges?
M557 X5:190 Y5:190 S10post the picture of the mesh grid.
going to a higher spacing depends on the quality of your build plate. the wider the spacing the less details it has to correct with.
so if there are no irregulaties, you can get away with a wider spacing.with the bigger mesh: if your Y offset is 28 to probe at 5 it would need to move to Y-23, which is not allowed. for X it would work
-
Yes, I can't "reclaim" the Y offset...mechanical obstacles. Makes a case for ally extrusion chassis in my next printer, built well oversize to the build plate.
Running this now regardless, and it seems to be just doing what it can reach.
M557 X5:190 Y5:190 S10
Mate I really appreciate this help so much, but it's late now and the other half wants me to give it a rest for tonight.
I'll have another look in the morning, but this has been a win so far.
Cheers and thanks!