Probing speed tied to X position



  • The probing speed on my printer sometimes depends on the X position of the print head. When the head is at x0, probing is significantly slower than the requested value. When the head is at X max, probing is significantly faster.
    The thing is, the issue doesn't occur all the time. Sometimes it goes away after a firmware update, sometimes it doesn't.
    RRF 3.01 RC12
    Config.g:

    ; Configuration file for Duet Maestro (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon Jan 20 2020 18:17:29 GMT+0100 (Central European Standard Time)
    
    ; General preferences
    G90                                                    				 ; send absolute coordinates...
    M83                                                   				 ; ...but relative extruder moves
    M550 P"Print-a-Reeno"                                 				 ; 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
    
    ; Motors
    M569 P0 S1 D3 F3 B2 Y1:3 V1000000              						 ; physical drive 0 goes forwards
    M569 P1 S1 D3 F3 B2 Y1:3 V1000000              						 ; physical drive 1 goes forwards
    M569 P2 S1 D3 F3 B2 Y5:1 V0                   						 ; physical drive 2 goes forwards
    M569 P3 S0 D3 F3 B2 Y0:3 V1000000           								 ; physical drive 3 goes backwards
    M569 P4 S1 D3 F3 B2 Y5:1 V0                    						 ; physical drive 4 goes forwards
    M584 X0 Y1 Z2:4 E3                                    				 ; set drive mapping
    M671 X-37.5:291 Y105:105											 ; define z leadscrew positions for gantry levelling
    
    ; Motion
    M350 X16 Y16 Z16 E16 I1  	                             			 ; configure microstepping with interpolation
    M92 X100.00 Y100.00 Z400.00 E950.3                					 ; set steps per mm
    M566 X1000.00 Y1000.00 Z24.00 E3000.00               					 ; set maximum instantaneous speed changes (mm/min)
    M203 X24000.00 Y24000.00 Z1000.00 E10000.00            				 ; set maximum speeds (mm/min)
    M201 X3000.00 Y3000.00 Z200.00 E3000.00               				 ; set accelerations (mm/s^2)
    M906 X700 Y700 Z400 E800 I30                          				 ; set motor currents (mA) and motor idle factor in per cent
    M84 S70                                               				 ; set idle timeout
    M572 D0 S0.06                                     	    			 ; set extruder 1 pressure advance
    M207 S0.8 F3000 T1500 Z0.6                    		          		 ; set G10 retraction parameters
    
    ; Axis Limits
    M208 X0 Y-4 Z-2 S1                           	     	        	 ; set axis minima
    M208 X250 Y210 Z213 S0                                  	         ; set axis maxima
    
    ; Endstops
    M574 X1 S1 P"xstop"                         	            		 ; configure active-high endstop for low end on X via pin xstop
    M574 Y1 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
    M591 D0 P2 C"e0_stop" S1                 	                		 ; configure filament runout sensor
    
    ; Z-Probe	
    M558 P1 C"zprobe.in" H2 F900 T6000 A5          		        		 ; set Z probe type to unmodulated and the dive height + speeds
    G31 P500 X0 Y0 Z0.2                             	        		 ; set Z probe trigger value, offset and trigger height
    M557 X12.3:215 Y1.5:197.6 P5:5                         	      		 ; define bed probe grid
    M376 H10                                              				 ; define where bed mesh compensation tapers off
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B3950  					 ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0 Q60000                           	     		 ; create bed heater output on bedheat and map it to sensor 0
    M143 H0 S125                                         		         ; set temperature limit for heater 0 to 125C
    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
    M570 H0 P10 T15 S5                                          	     ; set heater 0 fault conditions
    M308 S1 P"e0temp" Y"thermistor" T68410.97 B4264.71 C0.7000824743e-7	 ; 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 S285                                       	        		 ; set temperature limit for heater 1 to 275C
    M307 H1 B0 S1.00                    	               		         ; disable bang-bang mode for heater  and set PWM limit
    M570 H1 P10 T5 S5                           	                	 ; set heater 1 fault conditions
    M302 S175 R80                                        	         	 ; set minimum extrusion and retraction temperature
    
    ; Fans
    M950 F0 C"fan0" Q60000                              	        	 ; 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"fan2" Q60000                             		 ; create fan 1 on pin fan2 and set its frequency
    M106 P1 S1 H1 T45                                  	       		 	 ; set fan 1 value. Thermostatic control is turned on
    
    ; Tools
    M563 P0 S"Skelestruder" 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
    M912 P0 S-6.8                                          	        	 ; calibrate MCU temperature
    M308 S2 Y"mcu_temp" A"MCU"											 ; show MCU temperature in graph
    
    M200 D1.75                                          	        	 ; set default filament diameter
    M918 P1 E-4 F2000000                                   				 ; configure direct-connect display
    
    ; 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 Mon Jan 20 2020 18:17:29 GMT+0100 (Central European Standard Time)
    M561 ; clear any bed transform
    G30 P0 X0 Y105 Z-99999
    G30 P1 X101 Y105 Z-99999
    G30 P2 X206 Y105 Z-99999 S2
    G29
    G1 X0 Y0 F6000 ; return to 0:0
    
    

  • Moderator

    Do you have a M558 command in your homing files or other files that modifies the probing feed rate?



  • I don't think so. Also the issue does happen during both gantry levelling and mesh bed measurement



  • I used to have a m558 in bed.g but deleted it about a month ago


  • Moderator

    What type of probe is it?



  • @Phaedrux 8mm inductive. The exact model is Prusa PINDA 1.


  • Moderator

    I think you should be using probe type 5 (simple switch), not probe type 1 (analogue).

    https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe#Section_NPN_output_normally_open_inductive_or_capacitive_sensor



  • OK, I changed the probe type to 5. The speed deviations are still there, however.


  • Moderator

    @Matej101 said in Probing speed tied to X position:

    M558 P1 C"zprobe.in" H2 F900 T6000 A5

    H2 seems a little low for a dive height. Try H5. Maybe it's too close.



  • @Phaedrux Sorry for necroposting, I just didn't have time to do printing stuff for a while.

    I tried increasing the dive height to 5mm, and the problem is still there. The bigger the x coordinate, the slower the probe speed. The longer probe moves are making it even more noticeable now.


  • Moderator

    Are you running firmware 3.1.1?
    Can you post a video of what is happening?



  • @Matej101 the G31 X and Y values are 0 , which would mean the probe to be at the nozzle position. You should correct it and then set M557 accordingly, so probing is inside the bed region. A video would be nice.

    There is a M501 in the config. Please post the config-override, if one exists.



  • @JoergS5 I fixed the probe offsets and point locations.

    new config.g:

    ; Configuration file for Duet Maestro (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon Jan 20 2020 18:17:29 GMT+0100 (Central European Standard Time)
    
    ; General preferences
    G90                                                    				 ; send absolute coordinates...
    M83                                                   				 ; ...but relative extruder moves
    M550 P"Print-a-Reeno"                                 				 ; 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
    
    ; Motors
    M569 P0 S1 D3 F3 B2 Y1:3 V1000000              						 ; physical drive 0 goes forwards
    M569 P1 S1 D3 F3 B2 Y1:3 V1000000              						 ; physical drive 1 goes forwards
    M569 P2 S1 D3 F3 B2 Y5:1 V0                   						 ; physical drive 2 goes forwards
    M569 P3 S0 D3 F3 B2 Y0:3 V1000000           						 ; physical drive 3 goes backwards
    M569 P4 S1 D3 F3 B2 Y5:1 V0                    						 ; physical drive 4 goes forwards
    M584 X0 Y1 Z2:4 E3                                    				 ; set drive mapping
    M671 X-37.5:291 Y105:105 S2.5										 ; define z leadscrew positions for gantry levelling and set maximum correction per screw
    
    ; Motion
    M350 X16 Y16 Z16 E16 I1  	                             			 ; configure microstepping with interpolation
    M92 X100.00 Y100.00 Z400.00 E950.3                					 ; set steps per mm
    M566 X1000.00 Y1000.00 Z24.00 E3000.00               				 ; set maximum instantaneous speed changes (mm/min)
    M203 X24000.00 Y24000.00 Z1000.00 E10000.00            				 ; set maximum speeds (mm/min)
    M201 X3000.00 Y3000.00 Z200.00 E3000.00               				 ; set accelerations (mm/s^2)
    M906 X700 Y700 Z400 E800 I30                          				 ; set motor currents (mA) and motor idle factor in per cent
    M84 S70                                               				 ; set idle timeout
    M572 D0 S0.06                                     	    			 ; set extruder 1 pressure advance
    M207 S0.8 F3000 T1500 Z0.6                    		          		 ; set G10 retraction parameters
    
    ; Axis Limits
    M208 X0 Y-4 Z-2 S1                           	     	        	 ; set axis minima
    M208 X250 Y210 Z215 S0                                  	         ; set axis maxima
    
    ; Endstops
    M574 X1 S1 P"xstop"                         	            		 ; configure active-high endstop for low end on X via pin xstop
    M574 Y1 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
    M591 D0 P2 C"e0_stop" S1                 	                		 ; configure filament runout sensor
    
    ; Z-Probe	
    M558 P5 C"zprobe.in" H5 F900 T6000 A5          		        		 ; set Z probe type to unmodulated and the dive height + speeds
    G31 P500 X23 Y9.5 Z0.8                             	        		 ; set Z probe trigger value, offset and trigger height
    M557 X23:245 Y5.5:210 P5:5                         	      		 ; define bed probe grid
    M376 H10                                              				 ; define where bed mesh compensation tapers off
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B3950  					 ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0 Q60000                           	     		 ; create bed heater output on bedheat and map it to sensor 0
    M143 H0 S125                                         		         ; set temperature limit for heater 0 to 125C
    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
    M570 H0 P10 T15 S5                                          	     ; set heater 0 fault conditions
    M308 S1 P"e0temp" Y"thermistor" T68410.97 B4264.71 C0.7000824743e-7	 ; 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 S285                                       	        		 ; set temperature limit for heater 1 to 275C
    M307 H1 B0 S1.00                    	               		         ; disable bang-bang mode for heater  and set PWM limit
    M570 H1 P10 T5 S5                           	                	 ; set heater 1 fault conditions
    M302 S175 R80                                        	         	 ; set minimum extrusion and retraction temperature
    
    ; Fans
    M950 F0 C"fan0" Q60000                              	        	 ; 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"fan2" Q60000                             					 ; create fan 1 on pin fan2 and set its frequency
    M106 P1 S1 H1 T45                                  	       		 	 ; set fan 1 value. Thermostatic control is turned on
    
    ; Tools
    M563 P0 S"Skelestruder" 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
    M912 P0 S-6.8                                          	        	 ; calibrate MCU temperature
    M308 S2 Y"mcu_temp" A"MCU"											 ; show MCU temperature in graph
    
    M200 D1.75                                          	        	 ; set default filament diameter
    M918 P1 E-4 F2000000                                   				 ; configure direct-connect display
    
    ; Miscellaneous
    M501                                                  	        	 ; load saved parameters from non-volatile memory
    T0                                                    				 ; select first tool
    
    

    config-override.g:

    ; config-override.g file generated in response to M500
    ; This is a system-generated file - do not edit
    ; Heater model parameters
    M307 H0 A122.2 C645.4 D7.6 S1.00 V24.0 B0
    M307 H1 A590.1 C236.2 D6.4 S1.00 V24.2 B0
    ; Workplace coordinates
    G10 L2 P1 X0.00 Y0.00 Z0.00
    G10 L2 P2 X0.00 Y0.00 Z0.00
    G10 L2 P3 X0.00 Y0.00 Z0.00
    G10 L2 P4 X0.00 Y0.00 Z0.00
    G10 L2 P5 X0.00 Y0.00 Z0.00
    G10 L2 P6 X0.00 Y0.00 Z0.00
    G10 L2 P7 X0.00 Y0.00 Z0.00
    G10 L2 P8 X0.00 Y0.00 Z0.00
    G10 L2 P9 X0.00 Y0.00 Z0.00
    

    bed.g:

    ; bed.g
    ; called to perform automatic bed compensation via G32
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon Jan 20 2020 18:17:29 GMT+0100 (Central European Standard Time)
    M561 ; clear any bed transform
    G30 P0 X23 Y95.5 Z-99999					;probe left side of thebed
    G30 P1 X124 Y95.5 Z-99999					;probe the middle
    G30 P2 X225 Y95.5 Z-99999 S2				;probe the right side
    G29
    G1 X0 Y0 F6000 ; return to 0:0
    
    
    


  • @Matej101 what is also important is the homeall file, please post it.

    While your printer probes, please make a M122 and post this also. This is a reporting tool and if there are serious errors, M122 will show it.

    The general recommendation is to use RRF 3.1.1, because it fixes some problems since 3.01 RC12.

    You have a lot of specific M569 settings for the steppers. To exclude them from a possible reason, you can try removing the specific settings for a test whether the strange behaviour still happen. Is there a reason for using this specific parameters?

    I don't understand the S2 parameter in bed:
    G30 P2 X225 Y95.5 Z-99999 S2
    I cannot find documentation for it, I would remove it. And the X coordinate may be outside or very near the edge of the bed for the probe, because 225 + G31 X offset of 23 is near the M208 X upper limit. If this point is where the probe is fast, I suspect it is fast because the probing doesn't work at this point. But please test removing S2 and setting X a bit lower to test this theory.

    I found a thread about Prinda: https://forum.duet3d.com/topic/13219/rrf-support-for-pinda-probe/3 it mentions temparature correction in G31, but I don't understand this comment, but maybe you know what to configure. (last comment from dc42)



  • video of the issue: https://photos.app.goo.gl/X2tRCxf1cV6RoKR86

    the individual probe moves in bed.g are for gantry levelling (my z axis has two steppers with leadscrews connected to independent drivers). I thought the S2 parameter was for applying the levelling, I found it on the dozuki.

    my probe is the v1 PINDA, later revisions have a built in thermistor for temperature conpensation.



  • both firmware and dwc should be on 3.1.1



  • @Matej101 On you video I see only one move down at the right position, is this correct? (video ends after moving one time down).

    Can you please tell me the link where you found S2, I cannot find it.



  • @JoergS5 no, on my side the video show the entire bed probing process (probe left side, center, right side of the bed, than apply bed tilt correction, than probe the bed on a 5x5 grid)

    I found the S2 here: https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors



  • Well...
    I just started a print and the issue just isn't there. What? Why? I don't understand...



  • @Matej101 funny!

    Thanks for the link, I was not aware of the S2 parameter, it is not mentioned in the common G-Code page. I can see the whole video now also, I made the mistake of viewing the preview only...

    So it's working now? Don't change anything now... (serious: make a backup and if it reappears after changes, compare the configuration). Maybe it was the update to 3.1.1



  • The thing is, I didn't change anything. I just turned the printer off, went outside for a few hours, returned, turned on the printer and pressed print. Issue gone.



  • I was already at 3.1.1



  • @Matej101 I expect it will appear again, if you didn't find any reason. Maybe a loose connection or a thermal effect. Please tell if it reappears. And if it reappears, you should make a M122 directly after appearing, maybe you can analyze something then.


Log in to reply