Verifying mesh levelling
-
@fcwilt said in Verifying mesh levelling:
I use cast tool plate for the beds of my printers which from my supplier is spec'd to be flat within 0.4 mm but is usually much better.
I have found that bed adhesion is affected by many factors but these are what work for me:
- use the best cast tool plate you can find
- get the bed level within 0.005mm
- use 400 point mesh compensation
- use a first layer printing speed 10%-20% of the normal print speed
- turn off the part cooling fan for the first layer
Frederick
Here is the height map from my modified FT5 printer:
Always 400 point mesh.
The first layer speed is typically ~50% of the other layer speed.
We have 0% fans for the first 10 layers to improve bed adhesion and reduce warping.
Our bed is made from three rectangular Aluminum plate. And on that are three PEI sheets. The overall bed if 1010 x 1010, and suffers for bubbles in the attachment of the PEI sheet to the bed.
-
I am very intrigued by this post where several made scripts for Curs, S3D, and Slicr to probe only the area under the actual print. Not being a coder I need to modify moth the Cura and Simplified #d ones to keep the number of probe points under 400 and not probe less than about 10mm spacing.
I think this may solve our issues. Not sure how this would be applied when you have a multi part print where ideally it probes under each individually.
https://forum.duet3d.com/topic/15302/cura-script-to-automatically-probe-only-printed-area
-
@phaedrux said in Verifying mesh levelling:
With a bed like that I'd probably leave taper off entirely unless you're more concerned about wear and tear on the z axis. Otherwise try 50mm
Take a look at this to see if it might fit into your work flow.
https://forum.duet3d.com/topic/15302/cura-script-to-automatically-probe-only-printed-area
This way you could maximize the 440 points into the exact area you're printing on, with the downside of needing to probe before each print. Though if the area is smaller you could probably get away with fewer than the full 441.
Can you also post your config.g again? I can't seem to find it scrolling up. There are potentially improvements we can make to the probing settings.
Thanks on that, I found it also. Very intriguing. See my comment above.
-
@phaedrux said in Verifying mesh levelling:
With a bed like that I'd probably leave taper off entirely unless you're more concerned about wear and tear on the z axis. Otherwise try 50mm
Take a look at this to see if it might fit into your work flow.
https://forum.duet3d.com/topic/15302/cura-script-to-automatically-probe-only-printed-area
This way you could maximize the 440 points into the exact area you're printing on, with the downside of needing to probe before each print. Though if the area is smaller you could probably get away with fewer than the full 441.
Can you also post your config.g again? I can't seem to find it scrolling up. There are potentially improvements we can make to the probing settings.
; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.2.3 on Thu Jun 24 2021 09:31:20 GMT-0600 (Central Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"modix_big_meter" ; set printer name ; Network M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S0 ; physical drive 0 X1 reverse M569 P1 S1 ; physical drive 1 X2 forward M569 P2 R-1 ; Physical drive 2 not used M569 P3 S1 ; physical drive 3 E0 forward M569 P4 S0 ; physical drive 4 E1 reverse ; additional drives on duex5 expansion board M569 P5 S0 ; Physical drive 5 Y reverse M569 P6 S0 ; Physical drive 6 Z1 (0,1000) reverse M569 P7 S0 ; Physical drive 7 Z2 (0,0) reverse M569 P8 S0 ; Physical drive 8 Z3 (1000,0) reverse M569 P9 S0 ; Physical drive 9 Z4 (1000,1000) reverse M584 X0:1 Y5 Z6:7:8:9 E3:4 P3 ; map motors to axis M671 X-181:-181:1049:1049 Y1066:-58:-58:1066 S10 ; CCW positions of Z motors M350 X16 Y16 Z16 E16 U16 I1 ; Configure microstepping with interpolation M92 X100.00 Y100.00 Z2000.00 E412.32 U100.00 ; Set steps per mm ;M566 X240 Y360 Z30.00 E120.00 U240 P1 ; Set maximum instantaneous speed changes (mm/min) M566 X120 Y360 Z30.00 E120.00 U240 P1 ; Set maximum instantaneous speed changes (mm/min) M203 X9000.00 Y9000.00 Z200.00 E1200.00 U9000.00 ; Set maximum speeds (mm/min) ;M201 X1000 Y1000 Z120.00 E250.00 U1000 ; Set accelerations (mm/s^2) M201 X500 Y1000 Z120.00 E250.00 U1000 ; Set accelerations (mm/s^2) M204 P500 T1000 ; Set print and travel accelerations (mm/s^2) M906 X1800 Y1800.00 E1000.00 U1800 I30 ; Set motor currents (mA) and motor idle factor in per cent M906 Z1800.00 I50 ; Set motor currents (mA) and motor idle factor in per cent M84 S60 X Y U E0 E1 ; Set idle timeout - one minute ; Axis Limits M208 X0 Y0 Z0 U0 S1 ; set axis minima M208 X1000 Y1000 Z1000 U1000 S0 ; set axis maxima ; Endstops ; X1 = X end stop low end ; Y2 = Y end stop high end ; U1 = U end stop low end (U is second X) ; S1 = all active high ; no Z end stop M574 X1 S1 P"xstop+e0stop" ; combined X axis endstops M574 Y2 S1 P"ystop" ; Z-Probe M950 S0 C"duex.e6heat" ; create servo pin 0 for BLTouch M558 P9 C"^zprobe.in" H5 F120 T9000 R0.7 ; set Z probe type to bltouch and the dive height + speeds ; heater 7 output used for PWM of BL touch (e6 heat) G31 P500 X-14 Y21 Z1.000 ; Set Z probe trigger value, offset and trigger height(Z-offset) M557 X-14:974 Y21:1009 S52 ; Define mesh grid. 400 Points ;M376 H10 ; Height (mm) over which to taper off the bed compensation M376 H0 ; compensation taper disabled TEST ; Heaters M140 H-1 ; disable heated bed (overrides default heater mapping) ; tool 0 heater M308 S0 P"spi.cs1" Y"rtd-max31865" R395 F60 M950 H1 C"e0heat" T0 ; heater 0 uses the e0_heat pin and sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S285 ; set temperature limit for heater 0 to 285C ; tool 1 heater M308 S1 P"e1temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin e1temp M950 H2 C"e1heat" T1 ; create nozzle heater output on e1heat and map it to sensor 1 M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H2 S285 ; set temperature limit for heater 1 to 285C ; Fans M950 F0 C"fan0" Q500 ; T0 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; T1 ; create fan 1 on pin fan1 and set its frequency M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned off M950 F2 C"fan2" Q500 ; create fan 2 on pin fan2 and set its frequency M106 P2 S0 H-1 ; set fan 2 value. Thermostatic control is turned off M950 F3 C"duex.fan3" Q500 ; create fan 3 on pin duex.fan3 and set its frequency M106 P3 I-1 ; set fan 3 value. Thermostatic control is turned off M950 F4 C"duex.fan4" Q500 ; create fan 4 on pin duex.fan4 and set its frequency M106 P4 I-1 ; set fan 4 value. Thermostatic control is turned off M950 F5 C"duex.fan5" Q500 ; create fan 5 on pin duex.fan5 and set its frequency M106 P5 S1 H0 T46 ; extruder 0 ; set fan 5 value. Thermostatic control is turned on M950 F6 C"duex.fan6" Q500 ; create fan 6 on pin duex.fan6 and set its frequency M106 P6 S1 H1 T46 ; extruder 1 ; set fan 6 value. Thermostatic control is turned on ; apparently these disabled defines still seize the IO; don't define so we can use for LED later ;M950 F7 C"duex.fan7" Q500 ; create fan 7 on pin duex.fan7 and set its frequency ;M106 P7 I-1 ; set fan 7 value. Thermostatic control is turned off M950 F8 C"duex.fan8" Q500 ; create fan 8 on pin duex.fan8 and set its frequency M106 P8 I-1 ; set fan 8 value. Thermostatic control is turned off ; Tools M563 P0 S"E0 Primary" D0 H1 F0 ; define tool 0, E0 drive, heater 1, fan 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 M563 P1 S"E1 SEcondary" D1 H2 F1 ; define tool 1 G10 P1 X-0.2 Y52.5 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; Miscellaneous M575 P1 S1 B57600 ; enable support for PanelDue M501 ; load saved parameters from non-volatile memory ; Automatic power saving____________________________________________ M911 S22.5 R29.0 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss. Power Failure Pause ;M591 D0:1 P1 C4 S1 ; Regular filament sensor for E0 and E1 ; disabled, fixme ; _______________GPIOs____________________ ; LED strip on GPIO 'P1', duex fan7 output M950 P1 C"duex.fan7" Q500
-
@bstump Try adding these bits to your M558
A10 S0.005
That force it to probe each point at least twice and will tighten the tolerance between consecutive probings and if they aren't within 0.005mm of each other it will probe again until two probe results are up to 10 times.
You can also reduce your dice height from 5mm to 3mm and save some probing time.
Also try changing G31 P500 to G31 P25
-
@phaedrux said in Verifying mesh levelling:
@bstump Try adding these bits to your M558
A10 S0.005
That force it to probe each point at least twice and will tighten the tolerance between consecutive probings and if they aren't within 0.005mm of each other it will probe again until two probe results are up to 10 times.
You can also reduce your dice height from 5mm to 3mm and save some probing time.
Also try changing G31 P500 to G31 P25
Dice height?
-
@bstump said in Verifying mesh levelling:
Dice height?
Yes - how high off the table the dice are when you release them - it improves your chances of winning.
Dice -> Dive
-
@fcwilt said in Verifying mesh levelling:
@bstump said in Verifying mesh levelling:
Dice height?
Yes - how high off the table the dice are when you release them - it improves your chances of winning.
Dice -> Dive
I kind of figured that but need to figure out where it is set. ATM I am digging in how to modify the locig in that python sript to set the x and y spaying and keep the number of points below 441
-
Sorry, dive height. M558 H
-
@phaedrux
Yes, anything to improve the time is probing would be good. take near 45 mins now to do 400 points -
@bstump Your max Z speed is set to 200. You could probably probe at that speed reliably especially if you're double probing each point. You already have a dwell time between probe moves to allow it to settle.
The dive height just needs to be high enough for the pin to reliably drop and the z axis reach steady motion before it triggers.
Your trigger height is 1.0mm which seems too perfect. Have you actually measured it?
-
@phaedrux said in Verifying mesh levelling:
@bstump Your max Z speed is set to 200. You could probably probe at that speed reliably especially if you're double probing each point. You already have a dwell time between probe moves to allow it to settle.
The dive height just needs to be high enough for the pin to reliably drop and the z axis reach steady motion before it triggers.
Your trigger height is 1.0mm which seems too perfect. Have you actually measured it?
I do not know if the guys have verified the trigger height or not.
-
@bstump said in Verifying mesh levelling:
@phaedrux
Yes, anything to improve the time is probing would be good. take near 45 mins now to do 400 pointsThere is little to do to drastically improve the time.
The biggest "timesaver" would find a way to create and install a bed so flat that mesh compensation isn't needed.
If you solve that problem let me know - I could use a totally flat bed.
Frederick
-
@fcwilt said in Verifying mesh levelling:
I could use a totally flat bed.
I'm still waiting for someone to try the self leveling concrete bed. At 1 sq meter it might be practical... just saying.
-
@phaedrux said in Verifying mesh levelling:
@fcwilt said in Verifying mesh levelling:
I could use a totally flat bed.
I'm still waiting for someone to try the self leveling concrete bed. At 1 sq meter it might be practical... just saying.
That would be a bitch to heat up and nasty with regards to spalling.
-
@fcwilt said in Verifying mesh levelling:
@bstump said in Verifying mesh levelling:
@phaedrux
Yes, anything to improve the time is probing would be good. take near 45 mins now to do 400 pointsThere is little to do to drastically improve the time.
The biggest "timesaver" would find a way to create and install a bed so flat that mesh compensation isn't needed.
If you solve that problem let me know - I could use a totally flat bed.
Frederick
You would also need a gantry with negligible sag, which is also not easy when spanning 1m.
-
@dc42 said in Verifying mesh levelling:
You would also need a gantry with negligible sag, which is also not easy when spanning 1m.
Indeed - I would never tackle trying to build such a large printer - I have trouble getting a satisfactorily flat bed on a 300x300 printer.
Wish I had a nice large mill but mine is too small to handle 300x300.
Sigh.
Frederick
-
According to the config file it's a Modix Big Meter.
https://www.modix3d.com/tech-spec/
Should be fairly sturdy.
-
@fcwilt said in Verifying mesh levelling:
@dc42 said in Verifying mesh levelling:
You would also need a gantry with negligible sag, which is also not easy when spanning 1m.
Indeed - I would never tackle trying to build such a large printer - I have trouble getting a satisfactorily flat bed on a 300x300 printer.
Wish I had a nice large mill but mine is too small to handle 300x300.
Sigh.
Frederick
The bed of the Modix is made from this
https://www.howardprecision.com/aluminum/aluminum-cast-tool-jig-plate-stock-list/mic-6-aluminum/
Sadly Modix only provides grub leveling screws on the underside middle supports and not the perimeter ones. We may have to add them to the perimeter.
-
Adjusting that many grub screws is not going to be any fun at all.
I have just four and even that is tedious.
Frederick