[RRF 3.5.2] Extruder motor fails to do a long extrusion
-
Hi all,
I tested on MB6HC+TOOL1LC with RRF 3.5.2 a very long extrusion move (
G1 E20000 F100
) but the extruder is not able to do it successfully. It starts but it seems to be stuck or losing steps (see video attached).In another setup, I have also the extruder connected to the mainboard (Mini5+) and the same command runs properly.
Does anyone have an explanation for that? It seems related to the CAN communication.
Thank you all in advance.
-
@leone On the video you posted, it looks to me like the extruder is trying to run very much faster than 100mm/minute. My best guess is that either you miss typed the feedrate or you have the steps per wildly out. Posting your config.g as well some information about the extruder and motor would be helpful.
-
@deckingman I am working with @leone on this:
There was no typo, having (
G1 E20 F100
) works fine and the extruder moves with proper F100Here you can see the rotation speed in the first few seconds and the console line later.
In the first Video you can see the console input in the beginning. The only change is the E parameter value.MB6HC, TB1LC. I can post the extruder config later when i have access to it, but it has been running fine for the last couple of years. Although we have never extruded 20m at once and only discovered this by accident
Cheers
-
So here with a little better production value, and full config
I noticed I had 128 Microstepping configured for the extruder, which seemed a little excessive, so i reduced it down to 32, to see if the issue still occurs. This time the extruder emitted a loud screeching noise without motor movement .(beware of the volume when watching the video) I've attached a random coupling to the output shaft just for better visualization of the movement.
You can see the console as well as the extruder in the video with both
E20
andE20000
variants.
WhatsApp Video 2024-08-07 at 20.58.56_bf3ab18c.mp4Note that the issue occurs in both Standalone and SBC mode when the extruder is connected via CAN.
Full config.g
; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"duet3" ; set printer name ; Drives M569 P0 S1 D3 M569 P1 S1 D3 M569 P2 S1 D3 M569 P3 S1 D3 M569 P4 S1 D3 M569 P121.0 S0 M584 X0 Y4:3 Z1:2 E121.0 ;spindle XY 50mm/r ;spindle Z 5mm/r ;extruder 30.778125/r Bondtech QR M350 X128 Y128 Z32 E32 I1 ; configure microstepping with interpolation M92 X512.00 Y512.00 Z17920 E1408.4125 ; set steps per mm M566 X1000 Y1000 Z10.00 E600.00 ; set maximum instantaneous speed changes (mm/min) M203 X30000.00 Y30000.00 Z300.00 E1200.00 ; set maximum speeds (mm/min) M201 X2500.00 Y2500.00 Z50.00 E3000.00 ; set accelerations (mm/s^2) M906 X1400 Y1400 Z650 E1000 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; ringing cancellation 24Hz M593 P"zvd" F40.5 M572 D0 S0.02 ; Axis Limits M208 X-55 Y-20 Z0 S1 M208 X440 Y400 Z300 S0 ; Endstops M574 X1 S1 P"!io0.in" M574 Y1 S1 P"!io1.in+!io2.in" M574 Z1 S1 P"!io7.in+!io8.in" ; Z-Probe1 M558 K0 P1 C"!io4.in" H2 F1500 G31 K0 P500 X0 Y0 Z-0.1 M557 X-10:320 Y63:230 P5:3 ; define mesh grid G4 S2 ; wait for expansion boards to start ; Heaters M308 S0 P"temp2" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out2" T0 Q10 ; create bed heater output on out0 and map it to sensor 0 M143 H0 S110 ; set temperature limit for heater 0 to 120C M307 H0 R0.244 K0.145:0.000 D18.04 E1.35 S1.00 B0 M140 H0 ; map heated bed to heater 0 M308 S1 P"121.temp0" Y"pt1000" ; configure sensor 1 as thermistor on pin temp2 M950 H1 C"121.out0" T1 ; create nozzle heater output on out1 and map it to sensor 1 M143 H1 S280 ; set temperature limit for heater 1 to 280C M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit ; Heater model parameters M307 H1 R1.947 K0.240:0.254 D11.64 E1.35 S1.00 B0 V23.4 ; Fans M950 F0 C"121.out1" Q500 ; create fan 0 on pin out3 and set its frequency M106 P0 S0 C"T0 Hotend" ; set fan 0 value. Thermostatic control is turned off M950 F1 C"121.out2" ; create fan 1 on pin out4 and set its frequency M106 P1 C"T0 Coldend" H1:1 T40 ; Coldend on for extruder > 40 C M950 F9 C"out9" M106 P9 S200 C"UV Led" M950 F8 C"!out4" M106 P8 S80 I1 C"Cabinet" M591 D0 P3 C"121.io1.in" S1 R92:110 L25.6 ; filament monitor M591 D0 ; display filament sensor parameters for extruder drive 0 ; 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 M200 D2.85 M200 S0
-
@adambx the maximum duration of a move that RRF can handle is about 47 minutes on Duet 3 (which is 2^31 cycles of the 750kHz clock) and 38 minutes on Duet 2. Your move would take 200 minutes. Feel free to log an issue on Github about this. Meanwhile, I suggest you split your G1 command into several commands each taking no more than about 30 minutes.
This isn't specific to moves sent to CAN-connected drives, although when you exceed this limit the symptom may be different for locally-connected drives.
-
@dc42 understood, thanks for the detailed response. Moves this long are not really a use case when 3d printing i guess. Certainly not important for us right now as the behaviour was only noticed on accident.
Thanks again!
Cheers