Bed Leveling for Delta - Step by Step HowTo Needed



  • Hi all,

    Just finished totally destroying a £50-worth new BuildTak surface while attempting to perform auto-bed leveling for the umpteenth time... :-@

    I've been at it for 3 days now, and stopped counting hotend crashes after about 15.

    As you can imagine, it's been an extremely frustrating experience, so my sincere apologies in advance if anything I say in this thread might sound snappish.

    I've read the wiki's and a ton of forum threads. I've worked slowly and methodically, and yet I've seen the hotend crash time and again despite my best efforts and the machine refusing to calibrate properly. So I re-read the wiki's and a ton of other thread until my eyes bled. And still I can't get it to work.

    Guess it's time to ask for some help.

    One last point before going into the technical details. Please don't refer me to wiki's/other threads. Usually, I'm absolutely fine with that, but atm I'm completely fed up with trying make sense of things through other people's problems, and obviously the wiki is aimed at people who are way above my pay-grade.

    Ok, enough ranting and into the issue at hand:

    I've got a large delta (300mm print-bed) with a Duet Wifi (firmware 1.21).

    I'm using a detachable z-probe that fits on top of the nozzle and triggers when the probe presses against the bed.

    Here is my config.g:

    ; Configuration file for Duet WiFi (firmware version 1.20 or newer)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon Apr 30 2018 11:16:50 GMT+0100 (BST)
    
    ; General preferences
    G90                                                                     ; Send absolute coordinates...
    M83                                                                    ; ...but relative extruder moves
    M665 R145 L350 B140 H310                           ; Set delta radius, diagonal rod length, printable radius and homed height
    
    M666 X0 Y0 Z0                                      ; Put your endstop adjustments here, or let auto calibration find them
    
    ; Network
    M550 PPRINTER                                ; Set machine name
    M552 S1                                            ; Enable network
    ;*** Access point is configured manually via M587
    M586 P0 S1                                         ; Enable HTTP
    M586 P1 S0                                         ; Disable FTP
    M586 P2 S0                                         ; Disable Telnet
    
    ; Drives
    M569 P0 S1                                         ; Drive 0 goes forwards
    M569 P1 S1                                         ; Drive 1 goes forwards
    M569 P2 S1                                         ; Drive 2 goes forwards
    M569 P3 S1                                         ; Drive 3 goes forwards
    M350 X16 Y16 Z16 E16 I1                            ; Configure microstepping with interpolation
    M92 X256 Y256 Z256 E768                            ; Set steps per mm
    M566 X1200 Y1200 Z1200 E1200                       ; Set maximum instantaneous speed changes (mm/min)
    M203 X18000 Y18000 Z18000 E1200                    ; Set maximum speeds (mm/min)
    M201 X1000 Y1000 Z1000 E1000                       ; Set accelerations (mm/s^2)
    M906 X2000 Y2000 Z2000 E800 I20                    ; Set motor currents (mA) and motor idle factor in per cent
    M84 S10                                            ; Set idle timeout
    
    ; Axis Limits
    M208 Z0 S1                                         ; Set minimum Z
    
    ; Endstops
    M574 X2 Y2 Z2 S0                                   ; Set active low endstops
    
    ; Filament Sensor
    M591 D0 P2 C3				; Filament Sensor (Extruder0)
    
    ; Z-Probe
    M557 R140		          		        ; Define mesh grid
    M558 P5 I1 X0.0 Y0.0 Z0 H10 F300 T5000 R0		; Set Z probe type to modulated and the dive height + speeds
    
    G31 P500 X0 Y0 Z20   				; Set Z probe trigger value, offset and trigger height
    
    ; Heaters
    M140 H-1                                           ; Disable heated bed
    M305 P1 T100000 B3950 C0 R4700                     ; Set thermistor + ADC parameters for heater 1
    M143 H1 S245                                       ; Set temperature limit for heater 1 to 245C
    ;M307 H1 A1149.2 C154.6 D5.9 S1.00 V24.1 B0         ; Heater 1, A = Gain, C = Time Constant (Sec), D = Dead Time (Sec), S = %PWM (0.0-1.0)
    						   ; V = Voltage@Measurement, B0 = PID mode
    
    ; Fans
    M106 P0 S64 I0 B4 F25000 H-1 			   ; P0 = PWM Fan0, I0 = PWM Non-Inverted, B4 = Full Speed Startup Duration: 4 Sec
    						   ; F25000 = PWM Freq: 25KHz, H-1 = Thermostatic Control: Off
    M106 P1 S64 I0 B4 F25000 H-1 			   ; P1 = PWM Fan1, I0 = PWM Non-Inverted, B4 = Full Speed Startup Duration: 4 Sec
    						   ; F25000 = PWM Freq: 25KHz, H-1 = Thermostatic Control: Off
    M106 P2 S64 I0 B4 F25000 H-1 			   ; P2 = PWM Fan2, I0 = PWM Non-Inverted, B4 = Full Speed Startup Duration: 4 Sec
    						   ; F25000 = PWM Freq: 25KHz, H-1 = Thermostatic Control: Off
    ; Tools
    M563 P0 D0 H1                                      ; 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
    
    ; Automatic power saving
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss
    
    ; Bed Compensation
    G29 S1					   ; Read bed compensation table
    

    And here's my bed.g:

    ; bed.g file for RepRapFirmware, generated by Escher3D calculator
    ; http://www.escher3d.com/pages/wizards/wizardbed.php
    ; 16 points, 6 factors, probing radius: 140, probe offset (0, 0)
    M561 ; clear any bed transform
    G28  ; home all axis
    G30 P0 X0.00 Y140.00 Z-99999 H0
    G30 P1 X70.00 Y121.24 Z-99999 H0
    G30 P2 X121.24 Y70.00 Z-99999 H0
    G30 P3 X140.00 Y0.00 Z-99999 H0
    G30 P4 X121.24 Y-70.00 Z-99999 H0
    G30 P5 X70.00 Y-121.24 Z-99999 H0
    G30 P6 X0.00 Y-140.00 Z-99999 H0
    G30 P7 X-70.00 Y-121.24 Z-99999 H0
    G30 P8 X-121.24 Y-70.00 Z-99999 H0
    G30 P9 X-140.00 Y-0.00 Z-99999 H0
    G30 P10 X-121.24 Y70.00 Z-99999 H0
    G30 P11 X-70.00 Y121.24 Z-99999 H0
    G30 P12 X0.00 Y70.00 Z-99999 H0
    G30 P13 X60.62 Y-35.00 Z-99999 H0
    G30 P14 X-60.62 Y-35.00 Z-99999 H0
    G30 P15 X0 Y0 Z-99999 S6
    G29 S1 ; Load the height map from file and activate bed compensation
    

    I've run auto calibration and it seems to have worked fine (all points were triggered and I got the following messages for M665 and M666:

    1:05:59 PMG32
    Calibrated 6 factors using 16 points, deviation before 9.854 after 0.099
    
    1:06:07 PMM665
    Diagonal 350.000, delta radius 166.907, homed height 325.688, bed radius 140.0, X -0.183°, Y -0.217°, Z 0.000°
    
    1:06:23 PMM666
    Endstop adjustments X-0.79 Y2.25 Z-1.45, tilt X0.00% Y0.00%
    

    I've entered these values into M665 & M666 in config.g, reset, and watched the hotend crash once more into the bed... (I get the feeling I'm not setting the z-height properly, but don't have a clue how to do that).

    Here's what I'd like to be able to do:

    (1) Attach the z-probe to the nozzle before each print.

    (2) click the button and preform auto calibration

    (3) Have the results 'stick' in the system without having to manually alter the config.g file or anything else.

    (4) Remove the z-probe from the nozzle.

    (5) Run a print (preferably without seeing the hotend crash into the bed).

    Could a merciful soul please guide me through the process of getting this setup configured?

    Many thanks in advance,
    SnowCrash


  • administrators

    Do you have a M501 command in config.g to invoke config-override.g? If so, you probably have M665 and M666 commands in config-override.g that are overriding the ones you edit into config.g.

    It's a good idea to reduce the motor currents until you know that auto calibration is working properly, that reduces damage if you get a head crash.



  • @dc42 said in Bed Leveling for Delta - Step by Step HowTo Needed:

    Do you have a M501 command in config.g to invoke config-override.g? If so, you probably have M665 and M666 commands in config-override.g that are overriding the ones you edit into config.g.

    It's a good idea to reduce the motor currents until you know that auto calibration is working properly, that reduces damage if you get a head crash.

    Nope, don't have M501 in config.g (the complete file is included in the first post).

    And, nope, don't have a config-override.g in my SD folder.

    Thanks for the tip about lowering the motors' current.



  • Hi again,

    I've gone over my config.g file and discovered some suspicious commas in some of the commands which may have contributed to the dismal state of my print-bed.

    Cleaned everything up as best I could and below in the current config.g I'm using.

    ; Configuration file for Duet WiFi (firmware version 1.20 or newer)
    
    ; General preferences
    G90                                                	; Send absolute coordinates...
    M83                                               	; ...but relative extruder moves
    
    M665 R145 L350 B140 H310                           	; Set delta radius, diagonal rod length, printable radius and homed height
    M666 X0 Y0 Z0                                      	; Put your endstop adjustments here, or let auto calibration find them
    
    ; Network
    M550 PNINJA                                        	; Set machine name
    M552 S1                                            	; Enable network
    ;*** Access point is configured manually via M587
    M586 P0 S1                                         	; Enable HTTP
    M586 P1 S0                                         	; Disable FTP
    M586 P2 S0                                         	; Disable Telnet
    
    ; Drives
    M569 P0 S1                                         	; Drive 0 goes forwards
    M569 P1 S1                                         	; Drive 1 goes forwards
    M569 P2 S1                                         	; Drive 2 goes forwards
    M569 P3 S1                                         	; Drive 3 goes forwards
    M350 X16 Y16 Z16 E16 I1                            	; Configure microstepping with interpolation
    M92 X256 Y256 Z256 E768                            	; Set steps per mm
    M566 X1200 Y1200 Z1200 E1200                       	; Set maximum instantaneous speed changes (mm/min)
    M203 X18000 Y18000 Z18000 E1200                    	; Set maximum speeds (mm/min)
    M201 X1000 Y1000 Z1000 E1000                      	; Set accelerations (mm/s^2)
    M906 X1200 Y1200 Z1200 E800 I20                   	; Set motor currents (mA) and motor idle factor in per cent
    M84 S10                                            	; Set idle timeout
    
    ; Axis Limits
    M208 Z0 S1                                         	; Set minimum Z
    
    ; Endstops
    M574 X2 Y2 Z2 S0                               		; Set active-low endstops
    
    ; Filament Sensor
    M591 D0 P2 C3						; Filament Sensor (Extruder0)
    
    ; Z-Probe
    M557 R140		          		        ; Define mesh grid
    M558 P5 I1 X0.0 Y0.0 Z0 H3 F200 T5000 R0		; Set Z probe type to modulated and the dive height + speeds
    ;M558 P0 I1 X0.0 Y0.0 Z0 H3 F200 T5000 R0		; Set Z probe type to manual
    G31 P500 X0 Y0 Z20   					; Set Z probe trigger value, offset and trigger height
    
    ; Heaters
    M140 H-1                                           	; Disable heated bed
    M305 P1 T100000 B3950 C0 R4700                    	; Set thermistor + ADC parameters for heater 1
    M143 H1 S245                                       	; Set temperature limit for heater 1 to 245C
    ;M307 H1 A1149.2 C154.6 D5.9 S1.00 V24.1 B0   	      	; Heater 1, A = Gain, C = Time Constant (Sec), D = Dead Time (Sec), 
    						   	; S = %PWM (0.0-1.0), V = Voltage@Measurement, B0 = PID mode
    ; Fans
    M106 P0 S64 I0 B4 F25000 H-1 			   	; P0 = PWM Fan0, I0 = PWM Non-Inverted, B4 = Full Speed Startup Duration: 4 Sec
    						   	; F25000 = PWM Freq: 25KHz, H-1 = Thermostatic Control: Off
    M106 P1 S64 I0 B4 F25000 H-1 			   	; P1 = PWM Fan1, I0 = PWM Non-Inverted, B4 = Full Speed Startup Duration: 4 Sec
    						   	; F25000 = PWM Freq: 25KHz, H-1 = Thermostatic Control: Off
    M106 P2 S64 I0 B4 F25000 H-1 			   	; P2 = PWM Fan2, I0 = PWM Non-Inverted, B4 = Full Speed Startup Duration: 4 Sec
    						   	; F25000 = PWM Freq: 25KHz, H-1 = Thermostatic Control: Off
    ; Tools
    M563 P0 D0 H1                                      	; 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
    
    ; Automatic power saving
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" 	; Set voltage thresholds and actions to run on power loss
    

  • administrators

    @snowcrash said in Bed Leveling for Delta - Step by Step HowTo Needed:

    I've entered these values into M665 & M666 in config.g, reset, and watched the hotend crash once more into the bed...

    But I don't see those M665 and M666 values in either of the config.g files that you posted.



  • @dc42 said in Bed Leveling for Delta - Step by Step HowTo Needed:

    @snowcrash said in Bed Leveling for Delta - Step by Step HowTo Needed:

    I've entered these values into M665 & M666 in config.g, reset, and watched the hotend crash once more into the bed...

    But I don't see those M665 and M666 values in either of the config.g files that you posted.

    But they're right there at the top of config.g (lines 5-6 in the latest config):

    M665 R145 L350 B140 H310                           	; Set delta radius, diagonal rod length, printable radius and homed height
    M666 X0 Y0 Z0                                      	; Put your endstop adjustments here, or let auto calibration find them
    

  • administrators

    Yes, but the values in them are not the ones you obtained from auto calibration. You said:

    I've run auto calibration and it seems to have worked fine (all points were triggered and I got the following messages for M665 and M666:
    1:05:59 PMG32
    Calibrated 6 factors using 16 points, deviation before 9.854 after 0.099
    1:06:07 PMM665
    Diagonal 350.000, delta radius 166.907, homed height 325.688, bed radius 140.0, X -0.183°, Y -0.217°, Z 0.000°
    1:06:23 PMM666
    Endstop adjustments X-0.79 Y2.25 Z-1.45, tilt X0.00% Y0.00%
    I've entered these values into M665 & M666 in config.g, reset, and watched the hotend crash once more into the bed... (I get the feeling I'm not setting the z-height properly, but don't have a clue how to do that).


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.