Z Probe - Mesh levelling and nozzle location?
-
Sorry if this is a daft question. I'm very much new to any form of coding so I'm still learning and often come up with basic hurdles that confuse me!
I've started a fresh with my Duet 2 Wifi powered printer after it running around 18 months or so with less than optimal settings. I'm just finalising the bed levelling code and have some queries...
Due to the hot end (E3D Hemera) the location of my BL Touch is as follows (it sits around the rear of the Hemera's motor):
X57.552 Y-10.580 Z1.611
Because of the large X offset I naturally cannot level the whole bed before the extruder hits the frame of my printer. My Z probe code is:
; Z-Probe M307 H3 A-1 C-1 D-1 ; disable heater on PWM channel for BLTouch M558 P9 H7 F1000 T10000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X57.552 Y-10.589 Z1.611 ; set Z probe trigger value, offset and trigger height M557 X45:325 Y10:330 S70 ; define mesh grid
This maximises the area in which the BL Touch probes the bed in the X axis, but naturally the nozzle is off the bed when probing to the 0 end and quite inboard of the right edge of the bed when probing closer to the maximum of the X axis.
- I assume the probe is the important component of the levelling process and the Z probe offset translates probe position to nozzle position? Or do I level the bed with relation to the nozzle and the probe offset calculates where the BL Touch is?
I realise this is a really badly worded question but I hope you understand what I'm getting at. Basically do I prioritise the BL Touch or nozzle position when defining the mesh?
- Is there any way to define the mesh grid steps in both the X and Y axis differently? I have S70 to achieve a 25-point probe, but I'm missing perhaps 10-20mm at the top of the Y axis due to the unequal sized bed. I'd like to have this so it's perhaps S70 in the X direction and maybe S72 in the Y, is this possible?
If it makes it easier, here is my config.g
; Configuration file for Duet WiFi (firmware version 2.03) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v2.1.3 on Mon Nov 25 2019 14:46:21 GMT+0000 (Greenwich Mean Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Cube" ; set printer name M667 S1 ; select CoreXY mode ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S1 ; physical drive 0 goes forwards M569 P1 S1 ; physical drive 1 goes forwards M569 P2 S1 ; physical drive 2 goes forwards M569 P3 S1 ; physical drive 3 goes backwards M584 X0 Y1 Z2:4 E3 ; set drive mapping, two z motors connected to driver outputs Z and E1 M671 X-49:381 Y0:0 S12 ; Leadscrews at left (connected to Z) and right (connected to E1) of X axis M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X199.8 Y199.8 Z1624.96 E394.26 ; set steps per mm M566 X1200.00 Y1200.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X18000.00 Y18000.00 Z1500.0 E1200.00 ; set maximum speeds (mm/min) M201 X3000.00 Y3000.00 Z100.00 E250.00 ; set accelerations (mm/s^2) M906 X1300 Y1300 Z1000 E1300 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X-22 Y-8 Z0 S1 ; set axis minima M208 X330 Y326 Z350 S0 ; set axis maxima ; Endstops M574 X1 Y2 S1 ; set active high endstops M574 Z1 S2 ; set endstops controlled by probe ; Z-Probe M307 H3 A-1 C-1 D-1 ; disable heater on PWM channel for BLTouch M558 P9 H7 F1000 T10000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X57.552 Y-10.589 Z1.611 ; set Z probe trigger value, offset and trigger height M557 X45:325 Y10:330 S70 ; 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 S285 ; set temperature limit for heater 1 to 285C ; 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 ; Tools M563 P0 S"Hemera" D0 H1 F0 ; 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 M572 D0 S0.02 ; set extruder 0 pressure advance to 0.1 seconds ; Custom settings are not defined ; Miscellaneous M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss M501
Bed.g
; bed.g ; called to perform automatic bed compensation via G32 ; ; generated by RepRapFirmware Configuration Tool v2.1.3 on Tue Nov 26 2019 13:38:09 GMT+0000 (Greenwich Mean Time) M561 ; clear any bed transform G28 ; Home G30 P0 X40 Y165 Z-99999 ; Probe near Leadscreen, half way along Y axis G30 P1 X325 Y165 Z-99999 S2 ; Probe near leadscrew and calibrate 2 motors G29 ;Mesh Bed Leveling
Homeall.g
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v2.1.3 on Tue Nov 26 2019 13:38:09 GMT+0000 (Greenwich Mean Time) G91 ; relative positioning G1 H2 Z5 F7200 ; lift Z relative to current position G1 H1 X-335 Y335 F6400 ; move quickly to X or Y endstop and stop there (first pass) G1 H1 X-335 ; home X axis G1 H1 Y335 ; home Y axis G1 X5 Y-5 F7200 ; go back a few mm G1 H1 X-335 F360 ; move slowly to X axis endstop once more (second pass) G1 H1 Y335 ; then move slowly to Y axis endstop G90 ; absolute positioning G1 H0 X165 Y165 F7200 ; 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 S2 Z5 F120 ; lift Z relative to current position ;G90 ; absolute positioning
Many thanks
-
Your config file says you are running firmware 2.03.
Is that correct?
If so that firmware is very out of date and you should consider updating to 3.3 but that involves a couple of steps and changes to your configuration which you may not be prepared to do at this time.
In any case you have to define the mesh grid with M557 to take into account where your probe can reach. It's common to have hardware limitations that prevent getting close to the edges of the bed in one direction or another.
You just have to determine the X and Y settings for M557 that reach as much of the bed as possible.
To make it simpler instead of specifying the grid spacing with M557 S70 you can use something like P10 which will create a 10x10 grid in the space allocated by the X and Y parameters of M557.
Frederick
-
You are correct. I set up the printer in 2019 and it was so reliable at hitting print then walking away that I never checked for an updated firmware! I'll go see the process of updating, I assume now it's a 3.xx that there is significant revisions. Given I am starting a fresh with the coding I'll just back up my current settings to refer to if things go wrong.
M557 P10 sounds an excellent idea, saves me doing the maths and will maximise the probing area.
So basically maximise the space the probe can reach, use Px and I should have the most accurate bed levelling possible?
Thanks again for the fast and helpful reply!
-
There are a few things that change when configuring v3 firmware compared to v2.
For example, in v2 the pin names for things are specific like estop1.
In v3 the hardware has generic pin names like io3.in.
You use the command M950 to specify what pin you want to use by it's generic name and what you want to use it for.
For example M950 H1 C"out1" Q100 T1 creates heater 1 (the H1 parameter) using pin out1 (the C parameter). The Q parameter specifies the PWM frequency and the T1 parameter specifies which temperature sensor to monitor.
The link below should help:
A "how to" guide for configuring with v3
Aside from the actual changes you need to make to your configuration you need to upgrade to v3.3 (the most recent in two or three steps.
For example, I was starting from v2.05.1.
But for technical reasons you have to go from 2.05.1 to 3.0 and then from 3.0 to 3.3
The link below should help:
A "how to" guide for updating firmware
Frederick
-
@fcwilt said in Z Probe - Mesh levelling and nozzle location?:
There are a few things that change when configuring v3 firmware compared to v2.
For example, in v2 the pin names for things are specific like estop1.
In v3 the hardware has generic pin names like io3.in.
You use the command M950 to specify what pin you want to use by it's generic name and what you want to use it for.
For example M950 H1 C"out1" Q100 T1 creates heater 1 (the H1 parameter) using pin out1 (the C parameter). The Q parameter specifies the PWM frequency and the T1 parameter specifies which temperature sensor to monitor.
The link below should help:
A "how to" guide for configuring with v3
Aside from the actual changes you need to make to your configuration you need to upgrade to v3.3 (the most recent in two or three steps.
For example, I was starting from v2.05.1.
But for technical reasons you have to go from 2.05.1 to 3.0 and then from **3.**0 to 3.3
The link below should help:
A "how to" guide for updating firmware
Frederick
Thanks Frederick. I've just been reading those articles, prepping for the update whilst a print finished. I think what I might do is update the firmware then re-install the settings using the reprap configurator as it's easier for slightly clueless folk like me. From there I can jump into config.g and the others I've edited manually to adjust things as I have done for the current settings.