Strange behavior



  • Hello, today I saw something that is not usual and I do not find which can be the source, after doing G28, manually I want to take Z to zero and use the movements in PanelDue, when I am in z=0 and use -0.05 the position of Z varies from Z from zero to -0.05 and vice versa every time I use it.

    this behavior only happens with a movement of z=-0.05 with others nothing happens.

    attached video link.

    https://www.youtube.com/watch?v=jZXcS6Zo08s&feature=youtu.be

    Board: Duet WiFi 1.02 or later
    Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 2.03 (2019-06-13b2)
    Duet WiFi Server Version: 1.23

    config.g

    ; Configuration file for Duet WiFi (firmware version 1.21)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2 on Fri Mar 15 2019 23:53:22 GMT-0500 (hora estándar de Colombia)
    
    ; General preferences
    G90                                    		; Send absolute coordinates...
    M83                                     	; ...but relative extruder moves
    G21						; G21 establece las unidades en mm / G20 establece las unidades en pulgadas 
    ; kinematics type
    M669 K1                                		; Select CoreXY mode
    
    ; Network 
    
    M550 P"Scorexy"                        		; Set machine name
    M551 P"567544"                        	; Set password
    M552 S1                               	 	; Enable network
    M586 P0 S1                               	; Enable HTTP
    M586 P1 S0                              	; Disable FTP
    M586 P2 S0                               	; Disable  Telnet
    
    ; Drives
    M569 P5 S1                           	 	; Drive 5 goes forwards axis  X
    M569 P6 S1                               	; Drive 6 goes forwards axis Y
    M569 P7 S1                               	; Drive 7 goes forwards Extrusor
    M569 P8 S1                               	; Drive 8 goes forwards Axis z
    M569 P9 S1				 	; Drive 9 goes forwards Axis Z
    M569 P10 S1				 	; Drive 10 goes forwards axis z
    M569 P11 S1 				 	; Drive 11 goes forwards axis z
    M584 X5 Y6 Z8:9:10:11  E7    			; Apply custom drive mapping and four Z motors connected to driver outputs 8, 9, 10 and 11 Z
    M350 X16 Y16 Z16:16:16:16 E16 I1                ; Configure microstepping with interpolation
    ;M350 U16 V16 W16  I1
    M92 X80 Y80 Z400:400:400:400 E415        	; Set steps per mm
    ;M92 U400 V400 W400 
    M566 X900 Y900 Z30:30:30:30 E20     	 	; Set maximum instantaneous speed changes (mm/min)
    ;M566 U30 V30 W30 
    M203 X18000 Y18000 Z100:100:100:100 E1500  	; Set maximum speeds (mm/min)
    ;M230 U100 V100 W100 
    M201 X4000 Y4000 Z100:100:100:100 E1000     	; Set accelerations (mm/s^2)
    ;M201 U100 V100 W100 
    M84 S30                                  	; Set idle timeout
    
    ; define posiciones de los tornillos
    M671 X-321:-321:317:317 Y-144:184:184:-144 S4 F1.1	;agregar parametro F2
    
    ; Axis Limits
    M208 X-267 Y-245 Z0 S1                         	; Set axis minima
    M208 X267 Y230 Z406 S0                   	; Set axis maxima
    
    ; Endstops
    M574 X1 Y1 S0                            	; S_ endstop-type: 0 = active low, 1 = active high, 2 = slice-direction-probe, 3 = motor load detection
    
    
    
    ; Z-Probe
    M574 Z1 S2                               	; Set endstops controlled by probe
    M307 H3 A-1 C-1 D-1                             ; Disable heater on PWM channel for BLTouch
    M558 P9 H5 F120 T18000 A10 R0.75 S0.03 B1       ; Set Z probe type to bltouch and the dive height + speeds
    G31 P25 X0 Y-33 Z0.84   			; Set Z probe trigger value, offset and trigger height
    M557 X-245:245 Y-200:182 P2:2;S10:10                 	; Define mesh grid
    
    ; Heaters
    M305 P0 T100000 B4138 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 S250                             	; Set temperature limit for heater 1 to 250C
    M912 P0 S-6.5					; ajuste el calentador 1 ajuste electronico del monitor de temperatura en grados centigrados 
    
    ; Fans
    ;M106 P0 I0; invertir PWM del ventilador 1
    M106 P0 S0 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
    M106 P2 S127 I1 F500 H-1                   	; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned 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
    
    ; Avance de presión unidad extrusora 
    ;M572 D0 S0.06
    
    ; Automatic saving after power loss is not enabled
    M911 S21 R23 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss
    
    ; Custom settings are not configured
    
    
    
    
    ; activar bltouch
    M280 P3 S160 I1 ; Alarm Release and Push-Pin UP
    
    
    
    M929 P"eventlog.txt" S1; iniciar el registro en el archivo eventlog.txt
    
    ;LEDs
    M307 H4 A-1 C-1 D-1  
    M307 H5 A-1 C-1 D-1  
    M307 H6 A-1 C-1 D-1
    M307 H7 A-1 C-1 D-1    
    
    ; GUI config
    ;M404 N1.75	; display for users nominal-filament-diameter/width of setup, in this case 1.75mm
    
    
    ; seleccionar herramienta
    T0
    
    
    
    ; Load any saved values from last use, that were saved with M500 command
    M501	; Ensure that M501 is at the end of config.g in order for the values in config-override.g to be loaded at startup
    ; config done
    ;M291 P"Config done" S2 T3	; send message
    ;M300 S300 P1000	; beep
    ;M292 ; Hide the message
    M80
    

    and the response of M564 and M290

    24/6/2019, 12:02:56 a. m.	M564
    Movement outside the bed is not permitted, movement before homing is not permitted
    
    24/6/2019, 12:03:31 a. m.	M290
    Baby stepping offsets (mm): X:0.000 Y:0.000 Z:0.000
    

  • administrators

    Yes that does look odd. I've tracked it down and it's to do with allowing for axis rounding error. When distances are converted to motor steps and back again, in general they do not round-trip exactly. So when you convert Z=0 to a motor microstep position and back again, you may get a slightly negative Z. To allow for this, the firmware allows a rounding error of up to 0.05mm. That's why it allows you to step down 0.05mm but not 0.1mm. I think the simplest fix is for me to reduce the allowed rounding error, perhaps to 0.02mm. I can't make it depend on the steps/mm because that gets complicated when using some kinematics types such as CoreXZ and Helios SCARA.



  • @dc42 said in Strange behavior:

    I think the simplest fix is for me to reduce the allowed rounding error, perhaps to 0.02mm.

    should that not be based on the steps per mm for the axis?
    i.e with a 2mm lead screw a full step is 0.01mm


  • administrators

    @veti said in Strange behavior:

    @dc42 said in Strange behavior:

    I think the simplest fix is for me to reduce the allowed rounding error, perhaps to 0.02mm.

    should that not be based on the steps per mm for the axis?
    i.e with a 2mm lead screw a full step is 0.01mm

    Like I said in my previous response, this gets complicated when there is more than one motor affecting the movement of an axis. It's even more complicated when using nonlinear kinematics such as delta and Scara.


Log in to reply