Understanding bed, nozzle and probe boundaries?



  • Hi, I need some help.

    I did struggle a bit on my older printer as well but got it working at one time. Now I'm biting my own tale again. Probably because there is a simple fundamental misunderstanding.

    I'm struggling how to configure my Duet 2 and how to avoid probing outside the bed and/ probing as much area as possible.

    Does the probe have it's completely own plane relatively to a (the) tool/nozzle.

    I made an illustration to help my self as well. Editable draw.io diagram: https://drive.google.com/file/d/1HQhqSgb8IDBUko1jzIApC7QzK2Fqkr1x/view?usp=sharing
    Ender5Plus_Bed-Nozzle-Probe.png

    config.g

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Mar 19 2020 21:32:43 GMT+0100 (Central European Standard Time)
    
    ; General preferences
    G90                                            ; send absolute coordinates...
    M83                                            ; ...but relative extruder moves
    M550 P"Stians Ender 5 Plus Titan"                            ; set printer name
    M918 P1 E4 F2000000                            ; configure direct-connect display
    
    ; Network
    M552 P0.0.0.0 S1                               ; enable network and acquire dynamic address via DHCP
    M586 P0 S1                                     ; enable HTTP
    M586 P1 S1                                     ; disable FTP
    M586 P2 S1                                     ; disable Telnet
    
    ; Drives
    M569 P0 S0                                     ; physical drive 0 
    M569 P1 S0                                     ; physical drive 1
    M569 P2 S0                                     ; physical drive 2
    M569 P3 S1                                     ; physical drive 3 goes backwards
    M569 P4 S0                                     ; physical drive 3
    M584 X0 Y1 Z2:4 E3                             ; drive mapping, two Z motors connected to driver outputs Z and E1
    M350 X16 Y16 Z16 E16 I1                        ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z800.00 E396.38              ; set steps per mm
    M566 X1200.00 Y1200.00 Z24.00 E300.00          ; set maximum instantaneous speed changes (mm/min)
    M203 X9000.00 Y9000.00 Z240.00 E6000.00        ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z100.00 E5000.00          ; set accelerations (mm/s^2)
    M906 X400 Y400 Z400:400 E500 I30               ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                        ; Set idle timeout
    
    ; dual z
    M671 X-31:384 Y184:184 S2 ; leadscrews at left (connected to Z) and right (connected to E1) of X axis
    
    ; Axis Limits
    M208 X0 Y0 Z0 S1                               ; set axis minima
    M208 X361 Y367 Z400 S0                         ; set axis maxima
    
    ; Endstops
    M574 X2 S1 P"xstop"                            ; configure active-high endstop for low end on X via pin xstop
    M574 Y2 S1 P"ystop"                            ; configure active-high endstop for low end on Y via pin ystop
    M574 Z1 S2                                     ; configure Z-probe endstop for low end on Z
    
    ; Z-Probe
    M950 S0 C"exp.heater3"                         ; create servo pin 0 for BLTouch
    M558 P9 C"zprobe.in+zprobe.mod" H5 F120 T6000 A3 ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X43 Y8 Z2.5                          ; set Z probe trigger value, offset and trigger height
    M557 X50:361 Y25:367 S30                       ; define mesh grid
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4092 ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0                          ; create bed heater output on bedheat and map it to sensor 0
    M143 H0 S120                                   ; set temperature limit for heater 0 to 150C
    M307 H0 B0 S1.00                               ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                        ; map heated bed to heater 0
    M308 S1 P"e0temp" Y"thermistor" T100000 B4092  ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1                           ; create nozzle heater output on e0heat and map it to sensor 1
    M143 H1 S275                                   ; set temperature limit for heater 1 to 275C
    M307 H1 B0 S1.00                               ; disable bang-bang mode for heater  and set PWM limit
    
    ; System temp sensors 
    M308 S2 Y"drivers" A"DRIVERS"  ; configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
    M308 S3 Y"mcu-temp" A"MCU" ; configure sensor 3 as thermistor on pin e1temp for left stepper
    
    ; Fans
    M950 F0 C"fan0" Q5000                            ; 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" Q5000                            ; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H1 T45                               ; set fan 1 value. Thermostatic control is turned on
    M950 F2 C"fan2" Q5000                            ; create fan 2 on pin fan2 and set its frequency                        
    M106 P2 H2:3 L0.3 X1 B0.3 T30:60               ; set fan 2 value
    M950 F3 C"e1heat" Q9000
    M106 P3 L2 X100 B0.3 S12
    
    ; Tools
    M563 P0 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
    
    ; Custom settings are not defined
    
    ; Miscellaneous
    M501                                           ; load saved parameters from non-volatile memory
    T0                                             ; select first tool
    

    bed.g

    ; bed.g
    ; called to perform automatic bed compensation via G32
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Mar 19 2020 21:32:43 GMT+0100 (Central European Standard Time)
    ;M561 ; clear any bed transform
    ;G29  ; probe the bed and enable compensation
    
    ; from https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors
    G28 ; home
    ;M401 ; deploy Z probe (omit if using bltouch)
    G30 P0 X25 Y175 Z-99999 ; probe near a leadscrew, half way along Y axis
    G30 P1 X375 Y175 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors
    ;M402 ; retract probe (omit if using bltouch)
    


  • 🤦

    I inverted the XY probe offset!

    Instead of G31 P500 X43 Y8 I should use G31 P500 X-43 Y-8.

    Hmm, need to read the doc again.


  • Moderator

    The best way to maximize the mesh grid is to take your M208 as the bed surface, then add/subtract your probe offsets. That will give you the area for M577 that the probe can reach. Adjust it slightly so that you can get a whole number of points within it. Tip, if you send an M577 with a unreasonably high number of probing points it will suggest the actual maximum to you.


Log in to reply