Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Z Probe - Mesh levelling and nozzle location?

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    2
    5
    281
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • FL630undefined
      FL630
      last edited by

      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.

      1. 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?

      1. 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

      fcwiltundefined 1 Reply Last reply Reply Quote 0
      • fcwiltundefined
        fcwilt @FL630
        last edited by

        @fl630

        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

        Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

        FL630undefined 1 Reply Last reply Reply Quote 1
        • FL630undefined
          FL630 @fcwilt
          last edited by

          @fcwilt

          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!

          1 Reply Last reply Reply Quote 1
          • fcwiltundefined
            fcwilt
            last edited by fcwilt

            @fl630

            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

            Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

            FL630undefined 1 Reply Last reply Reply Quote 0
            • FL630undefined
              FL630 @fcwilt
              last edited by

              @fcwilt said in Z Probe - Mesh levelling and nozzle location?:

              @fl630

              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.

              👍 👍

              1 Reply Last reply Reply Quote 1
              • First post
                Last post
              Unless otherwise noted, all forum content is licensed under CC-BY-SA