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.23config.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
-
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 -
@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.01mmLike 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.