Issues with Homing Delta on RRF3
-
@JoergS5 The videos show that the first axis to reach the endstop begins the jitter. I tested each axis one at a time and confirmed what is seen on the video. Attempting to home one axis begins the jitter on that axis.
Is there any changes from board V1.01 to V1.04 that could cause this? This was another change that was made. My v1.01 board developed an intermintate failure that resulted in both thermocouples to fault. I then purchased the .04 board and upgraded to RRF3. This is my first attempt to use the new .04 board.
-
@aerouta I have also a 1.04 board.
The release history is here: https://duet3d.dozuki.com/Wiki/Hardware_Overview#Section_PCB_revision_history
I cannot see something related to your problem, but check also.My last idea is that you have an endstop type which now needs the ! in the syntax, according to https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_RepRapFirmware_Num_3
M574 X2 S1 P"!xstop"
etc.
Do you have your old config, did it use M574 S0? This would be S1 with ! now.You can also recheck the RRF3 upgrade checklist in https://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview
-
-
@aerouta said in Issues with Homing Delta on RRF3:
Error: in file macro line 88 column 10: M92: array too long, max length = 1
Does this error still show up when you send M98 Pconfig.g?
Can you verify your firmware version by sending M115. It should be 3.1.1
And please share your newly changed config.g
Can you test your endstops by hand and watch the DWC machine page for the endstops. When looking at the front of the printer, the X tower is on the left, the Y tower is on the right and the Z tower is at the back. +X movement is to the right and +Y movement is towards the rear. Verify that when you press the X tower endstop the X endstop triggers, etc.
I wonder if maybe an endstop plug is swapped or not working.
-
@Phaedrux I conducted the test you suggested. Endstop index 0, 1, 2 triggered on towers X, Y, Z respectively.
I no longer get the M92 error during the M98 command and my firmware version is confirmed to be 3.1.1
; Configuration file for Rostock Max early V1 ; Communication and general M111 S0 ; Debug off M550 RostockMax ; Machine name and Netbios name (can be anything you like) M551 Preprap ; Machine password (used for FTP) ;*** If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED ; MAC Address ;*** Wifi Networking M552 S1 ; Enable WiFi M555 P2 ; Set output to look like Marlin ; Axis and motor configuration 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 M569 P4 S1 ; Drive 4 goes forwards M574 X2 S1 P"xstop" M574 Y2 S1 P"ystop" M574 Z2 S1 P"zstop" ; set endstop configuration (all endstops at high end, active high) ;*** The homed height is deliberately set too high in the following - you will adjust it during calibration ;M665 R144.96 L291 B150 H375.532 ; set delta radius, diagonal rod length, printable radius and homed height M665 R144.96 L300.15 B140 H367.532 ; set delta radius, diagonal rod length, printable radius and homed height ;M666 X-0.48 Y1.11 Z-0.63 ; put your endstop adjustments here, or let auto calibration find them M350 X16 Y16 E16 I1 ; Set 16x microstepping with interpolation M92 X106.667 Y106.667 Z106.667 ; Set axis steps/mm M906 X1000 Y1000 Z1000 E800 I60 ; Set motor currents (mA) and increase idle current to 60% M201 X1500 Y1500 Z1500 E1500 ; Accelerations (mm/s^2) M203 X20000 Y20000 Z20000 E3600 ; Maximum speeds (mm/min) M566 X1200 Y1200 Z1200 E1200 ; Maximum instant speed changes mm/minute G21 ; Work in millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves ; Thermistors and Heaters ;RRF 2 ;M305 P0 T100000 B3950 R4700 H30 L0 ; Put your own H and/or L values here to set the bed thermistor ADC correction ;M305 P1 T100000 B4267 R4700 H25 L0 ; Put your own H and/or L values here to set the first nozzle thermistor ADC correction ;M305 P2 T100000 B3974 R4700 H30 L0 ; Put your own H and/or L values here to set the second nozzle thermistor ADC correction ;RFF 3 M308 S0 Y"thermistor" P"bedtemp" T100000 B3950 M308 S1 Y"thermistor" P"e0temp" T100000 B4725 C7.06e-8 A"T_e0" M950 H0 C"bedheat" T0 M950 H1 C"e0heat" T1 M308 S10 y"mcutemp" a"Mcu" M308 S11 y"drivers" a"Drivers" M570 S180 ; Hot end may be a little slow to heat up so allow it 180 seconds ;Heater 0 model: gain 140.9, time constant 634.3, dead time 13.9, max PWM 1.00, mode: PID M307 H0 A199.9 C634.4 D13.9 B0 ; Values obtained from autotunning M307 H1 A529.9 C170.4 D6.3 B0 ; Values obtained from autotunning M570 H1 P7 T30 ; Fans ;M106 P1 H-1 ; disable thermostatic mode for fan 1 M950 F0 C"fan0" M950 F1 C"fan1" M950 F2 C"fan2" M106 P1 T45 H1 S1 ; hot end fan ; Enable logging after setting the heater models to avoid logging the usual warnings of overpowered heaters M929 S1 P"eventlog.txt" ; Tool definitions M563 P0 D0 H1 ; Define tool 0 G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures ;*** If you have a single-nozzle build, comment the next 2 lines ;M563 P1 D1 H2 ; Define tool 1 ;G10 P1 S0 R0 ; Set tool 1 operating and standby temperatures M140 H0 ;Bed Heater ;M92 E92.4:92.4 ; EZextruder Set extruder steps per mm M92 E470 ; Bondtech Extruder ; Z probe and compensation definition ;*** If you have a switch instead of an IR probe, change P1 to P4 in the following M558 command ;M558 P4 X0 Y0 Z0 H4 F1000 ; Z probe is an IR probe and is not used for homing any axes M558 P5 C"e0stop" H4 F1000 T3000 ; Z probe connected to E0 endstop input "T" Travel speed between probe G31 X0 Y0 Z-0.588 P500 ; Set the zprobe height and threshold (put your own values here) ;*** If you are using axis compensation, put the figures in the following command ;M556 S78 X0 Y0 Z0 ; Axis compensation here M208 S1 Z-1.5 ; set minimum Z ; T0 ; select first hot end M143 H1 S350 ; Raise max temp M143 H0 S170 ; Raise max temp
-
Can you alter your M350 and M92 lines to include the Z and E axis respectively? And lets include an explicit M584 to map the drivers to their respective axis.
You have:
M350 X16 Y16 E16 I1 ; Set 16x microstepping with interpolation M92 X106.667 Y106.667 Z106.667 ; Set axis steps/mm
Change it to:
M584 X0 Y1 Z2 E3 ; Driver 0 controls the X motor, 1 controls Y, 2 controls Z motor, 3 control E motor M350 X16 Y16 Z16 E16 I1 ; Set 16x microstepping with interpolation M92 X106.667 Y106.667 Z106.667 E470 ; Set axis steps/mm
Then you can remove the M92 E470 that occurs lower down in the config.
Also, I'm not sure it matters, but when comparing to a fresh delta config from the web tool, the M665 delta commands are placed higher in the config.g file near the top before all the drive commands.
Here it is for comparison:
; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.1.3 on Tue Jun 23 2020 20:26:57 GMT-0600 (Central Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"My Printer" ; set printer name M665 R105.6 L215 B85 H250 ; 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 M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S1 ; physical drive 0 goes forwards M569 P1 S1 ; physical drive 1 goes forwards M569 P2 S1 ; physical drive 2 goes forwards M569 P3 S1 ; physical drive 3 goes forwards M584 X0 Y1 Z2 E3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z80.00 E663.00 ; set steps per mm M566 X1200.00 Y1200.00 Z1200.00 E1200.00 ; set maximum instantaneous speed changes (mm/min) M203 X18000.00 Y18000.00 Z18000.00 E1200.00 ; set maximum speeds (mm/min) M201 X1000.00 Y1000.00 Z1000.00 E1000.00 ; set accelerations (mm/s^2) M906 X1000 Y1000 Z1000 E800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 Z0 S1 ; set minimum Z ; Endstops M574 X2 S1 P"xstop" ; configure active-high endstop for high end on X via pin xstop M574 Y2 S1 P"ystop" ; configure active-high endstop for high end on Y via pin ystop M574 Z2 S1 P"zstop" ; configure active-high endstop for high end on Z via pin zstop ; Z-Probe M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed M557 R85 S20 ; define mesh grid ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; 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 M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; 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 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ; Fans M950 F0 C"fan0" Q500 ; 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" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; 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
-
Here is my new config file with suggested changes. Same machine response...
; Configuration file for Rostock Max early V1 ; Communication and general M550 RostockMax ; Machine name and Netbios name (can be anything you like) M551 Preprap ; Machine password (used for FTP) ; General preferences G90 ; Send absolute coordinates... G21 ; Work in millimetres M83 ; ...but relative extruder moves ;*** The homed height is deliberately set too high in the following - you will adjust it during calibration M665 R144.96 L300.15 B140 H367.532 ; set delta radius, diagonal rod length, printable radius and homed height ;M666 X-0.48 Y1.11 Z-0.63 ; put your endstop adjustments here, or let auto calibration find them ;*** If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits ;*** Wifi Networking M552 S1 ; Enable WiFi M555 P2 ; Set output to look like Marlin M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED ; MAC Address ; Axis and motor configuration 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 M569 P4 S1 ; Drive 4 goes forwards M584 X0 Y1 Z2 E3 ; Driver 0 controls the X motor, 1 controls Y, 2 controls Z motor, 3 control E motor M350 X16 Y16 Z16 E16 I1 ; Set 16x microstepping with interpolation M92 X106.667 Y106.667 Z106.667 E470 ; Set axis steps/mm M566 X1200 Y1200 Z1200 E1200 ; Maximum instant speed changes mm/minute M203 X20000 Y20000 Z20000 E3600 ; Maximum speeds (mm/min) M201 X1500 Y1500 Z1500 E1500 ; Accelerations (mm/s^2) M906 X1000 Y1000 Z1000 E800 I60 ; Set motor currents (mA) and increase idle current to 60% ; Endstops M574 X2 S1 P"xstop" M574 Y2 S1 P"ystop" M574 Z2 S1 P"zstop" ; set endstop configuration (all endstops at high end, active high) ; Thermistors and Heaters ;RRF 2 ;M305 P0 T100000 B3950 R4700 H30 L0 ; Put your own H and/or L values here to set the bed thermistor ADC correction ;M305 P1 T100000 B4267 R4700 H25 L0 ; Put your own H and/or L values here to set the first nozzle thermistor ADC correction ;M305 P2 T100000 B3974 R4700 H30 L0 ; Put your own H and/or L values here to set the second nozzle thermistor ADC correction ;RFF 3 M308 S0 Y"thermistor" P"bedtemp" T100000 B3950 M308 S1 Y"thermistor" P"e0temp" T100000 B4725 C7.06e-8 A"T_e0" M950 H0 C"bedheat" T0 M950 H1 C"e0heat" T1 M308 S10 y"mcutemp" a"Mcu" M308 S11 y"drivers" a"Drivers" M570 S180 ; Hot end may be a little slow to heat up so allow it 180 seconds ;Heater 0 model: gain 140.9, time constant 634.3, dead time 13.9, max PWM 1.00, mode: PID M307 H0 A199.9 C634.4 D13.9 B0 ; Values obtained from autotunning M307 H1 A529.9 C170.4 D6.3 B0 ; Values obtained from autotunning M570 H1 P7 T30 ; Fans ;M106 P1 H-1 ; disable thermostatic mode for fan 1 M950 F0 C"fan0" M950 F1 C"fan1" M950 F2 C"fan2" M106 P1 T45 H1 S1 ; hot end fan ; Enable logging after setting the heater models to avoid logging the usual warnings of overpowered heaters M929 S1 P"eventlog.txt" ; Tool definitions M563 P0 D0 H1 ; Define tool 0 G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures ;*** If you have a single-nozzle build, comment the next 2 lines ;M563 P1 D1 H2 ; Define tool 1 ;G10 P1 S0 R0 ; Set tool 1 operating and standby temperatures M140 H0 ;Bed Heater ;M92 E92.4:92.4 ; EZextruder Set extruder steps per mm M92 E470 ; Bondtech Extruder ; Z probe and compensation definition ;*** If you have a switch instead of an IR probe, change P1 to P4 in the following M558 command ;M558 P4 X0 Y0 Z0 H4 F1000 ; Z probe is an IR probe and is not used for homing any axes M558 P5 C"e0stop" H4 F1000 T3000 ; Z probe connected to E0 endstop input "T" Travel speed between probe G31 X0 Y0 Z-0.588 P500 ; Set the zprobe height and threshold (put your own values here) ;*** If you are using axis compensation, put the figures in the following command ;M556 S78 X0 Y0 Z0 ; Axis compensation here M208 S1 Z-1.5 ; set minimum Z ; T0 ; select first hot end M143 H1 S350 ; Raise max temp M143 H0 S170 ; Raise max temp
-
@aerouta config.g looks okay, except there's an extra M92 at line 82, but as it's the same as the earlier one, it shouldn't cause a problem.
Did you disconnect any motors or endstops, or rewire the machine? Because it really sound like two of the endstops (or motors) have been swapped, so are not related to the correct axis. That's why 2 of the 3 axes reach the endstop; one correctly hits the endstop and stops, one hits the endstop and stops the third, but continues to move, as the third hasn't hit the switch that would stop the second, until you press it with your finger.
Move each motor individually so you know which tower is which, by sending
G1 H2 X10 F100
(which will move just the X axis). Then press the switch on that tower, and check it activates the X endstop (send M119 to check status or check in DWC > Machine-Specific > Endstops). Repeat for the Y and Z towers.Ian
-
@droftarts Yes, I did switch from a 1.01 to a 1.04 board. I will recheck all my motor and endstop connections.
-
@droftarts the motor connects were switched! good catch!