Extruder doesn't spin/ onlyVibrates
-
I'm setting up a new printer, all the drives work, except for the Extruder. All it does is vibrate, not turning. I've swapped:
- Motors (to make sure the extruder wasn't broken)
- Cables (Also none broken)
- Drivers (Issue moves with different assigned driver)
around, to amke sure nothing is borked in the hardware. Everything works, if I attach it to a different axis.
... So I came to the conclusion that I did something wrong in the Firmware. To get it out of the way, I'm a g-code noob, I configured this with the online tool, and only made some changes to the Z-axis, since I'm re-using a CR10 as the motion System. I've gone over it multiple times the past hour, and cannot figure out what I'm doing wrong, so I'm asking people that do know what they are doing.
The extruder is a Hemera Direct drive kit, (409 steps/mm, according to the spec sheet)
Here's my config, I hope that helps:
; Configuration file for Duet 3 (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Wed Dec 29 2021 10:35:39 GMT+0100 (Mitteleuropäische Normalzeit) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"CR10" ; set printer name ; Network M551 P"duetcr10" ; set password M540 PBE-73-31-35-53-3F ; MAC Adress M552 P192.168.27.7 ; set static IP M554 P192.168.27.1 ; gateway M553 P255.255.255.0 ; netmask M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet M552 S1 ; Enable Network ; Drives M569 P0.0 S1 ; physical drive 0.0 goes forwards M569 P0.1 S1 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.3 S1 ; physical drive 0.3 goes forwards M569 P0.4 S0 ; physical drive 0.4 goes forwards M584 X0 Y1 Z2:4 E3 ; set drive mapping old-> M584 X0.0 Y0.1 Z0.2 E0.3:0.4 M671 X-20:320 Y0:0 S1.0 ; leadscrews at left (connected to Z) and right (connected to E1) of X axis M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E409.00:409.00 ; set steps per mm M566 X900.00 Y900.00 Z100.00 E120.00:60.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z500.00 E1200.00:180.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z30.00 E250.00:20.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E1200:1200 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X300 Y300 Z400 S0 ; set axis maxima ; Endstops M574 X1 S1 P"io0.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io0.in M574 Y2 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin io1.in M574 Z2 S2 ; configure Z-probe endstop for high end on Z ; Z-Probe M558 P5 C"^io3.in" H5 F120 T6000 ;Removed the ! G31 P500 X50 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height M557 X50:285 Y15:285 S20 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 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"temp1" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F0 C"out4" Q500 ; create fan 0 on pin out4 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out5" Q500 ; create fan 1 on pin out5 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
I hope someone can spot what's wrong here (I sure can't, unfortunately), so thank you in advance, and happy printing.
-
You've got two Z motors configured:
M584 X0 Y1 Z2:4 E3
But you use the xxx:yyy pattern for your extruder motor.
That seems incorrect.
M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E409.00:409.00 ; set steps per mm M566 X900.00 Y900.00 Z100.00 E120.00:60.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z500.00 E1200.00:180.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z30.00 E250.00:20.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E1200:1200 I30 ; set motor currents (mA) and motor idle factor in per cent
-
@fredih are you 100% sure you've wired the phases correctly? Might be worth double checking, especially if your extruder motor is a different model to your others
-
@engikeneer Yes, I checked the wiring. I used the cable for the extruder with the X axis - works the same as before. I also tried using a different stepper motor that is identical to the other motors for the extruder - also doesn't work. I tried using a different, known-good cable, also doesn't work.
These issues only happen on the extruder axis, what drive I set it to, or what hardware I use doesn't seem to matter.
-
@alankilian I take it you're referring to the 1200:180 type of format?
The Reprap config tool made the numbers xxx:yyy, I didn't do that myself. Should I change it to be a single value, instead of two? -
Can you post your config.json so I can load it into the RRF configurator?
It seems like you've got two extruders configured in there somehow.
-
Easiest way to make absolutely sure is to measure the motor phases via the connector that plugs into the board. Make sure that you have a slight resistance between B- and B+ and between A- and A+. There's no connection between the others combinations. You can also use diode mode (beep) to check continuity between the same.
All of this of course with the connector Not plugged into the board and make sure that the board is Not powered up when disconnecting the stepper motor connector.
-
@fredih said in Extruder doesn't spin/ onlyVibrates:
Should I change it to be a single value, instead of two?
Yes if you only have a single extruder and single z axis. If you have a dual z axis that's fine as it is, just remove the doubles for the extruder.
It's only extruder axis that require the xx:yy format. For the linear motion axis the values apply to the entire axis at once.
-
@fredih As others have stated, there are inconsistencies in your configuration file.
This line....
M584 X0 Y1 Z2:4 E3
... means that you have assigned driver 0 to the X axis, driver 1 to the Y axis, drivers 2 and 4 to the Z axis, and driver 3 as a single extruder.
This comment ......
old-> M584 X0.0 Y0.1 Z0.2 E0.3:0.4
... implies that the drive mapping was originally different with a single Z motor but two extruders.
These lines ....
M350 X16 Y16 Z16 E16:16 I1 M92 X80.00 Y80.00 Z400.00 E409.00:409.00 M566 X900.00 Y900.00 Z100.00 E120.00:60.00 M203 X6000.00 Y6000.00 Z500.00 E1200.00:180.00 M201 X500.00 Y500.00 Z30.00 E250.00:20.00 M906 X800 Y800 Z800 E1200:1200 I30
.. all have settings for two extruders, even though you have only mapped one drive to a single extruder. It looks like they are left over from a previous configuration because they would be correct if you had mapped the drivers in accordance with your comment about the old M584. If you only have a single extruder (looking at you tool definition that would be the case), then you need to remove the second, colon separated values after "E".
-
@deckingman okay, thanks. That's very insightful. Yes, I did some google-fu, on how to add a second stepper for the Z-axis, and the answer was to simply add a second extruder to the configurator, then re-map it in the config file, which is probably how I ended up with double values for two extruders.
-
@gixxerfast I checked the cables by bridging the wires together and trying to turn the motor; That's how I checked if the wiring was right, because that was my first thought too. They're all wired up correctly.
-
@fredih said in Extruder doesn't spin/ onlyVibrates:
the answer was to simply add a second extruder to the configurator, then re-map it in the config file
That's not a very good answer. It adds all those duplicate values for the extruder and you'd need to remove the newly mapped drive from the extruder as well.
It's as easy as just adding the second driver to the M584 Z and everything else stays plain.
-
@alankilian config.json
Here's my config file; Only inconsistency I see is that the probe offset is set to 8mm, which isn't what it's configured to be. Other than that, it should be mostly right. -
Yeah, see on the "I/O Mapping" tab where you have two extruders configured?
I deleted the second one and here's a new config.g
; Configuration file for Duet 3 (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Mon Jan 17 2022 17:01:13 GMT-0500 (Eastern Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"CR10" ; set printer name ; Network M551 P"duetcr10" ; set password 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 ; Drives M569 P0.0 S1 ; physical drive 0.0 goes forwards M569 P0.1 S1 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.3 S1 ; physical drive 0.3 goes forwards M584 X0.0 Y0.1 Z0.2 E0.3 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E420.00 ; set steps per mm M566 X900.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X300 Y300 Z400 S0 ; set axis maxima ; Endstops M574 X2 S1 P"io0.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin io0.in M574 Y1 S1 P"io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.in M574 Z2 S2 ; configure Z-probe endstop for high end on Z ; Z-Probe M558 P5 C"^io3.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds G31 P500 X0 Y0 Z8 ; set Z probe trigger value, offset and trigger height M557 X15:215 Y15:195 S20 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 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"temp1" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F0 C"out4" Q500 ; create fan 0 on pin out4 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out5" Q500 ; create fan 1 on pin out5 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
-
To take it further, to add the second Z you'd only need to alter the M584 line
M584 X0.0 Y0.1 Z0.2 E0.3
to
M584 X0.0 Y0.1 Z0.2:0.4 E0.3
-
@fredih said in Extruder doesn't spin/ onlyVibrates:
@deckingman okay, thanks. That's very insightful. Yes, I did some google-fu, on how to add a second stepper for the Z-axis, and the answer was to simply add a second extruder to the configurator, then re-map it in the config file, which is probably how I ended up with double values for two extruders.
As others have pointed out, that's not the way to add a second drive to an axis. Here is some info which might help your understanding.
Any axis can have a number of drives assigned to it but things like acceleration, steps per mm, instantaneous speed change, motor currents etc are all applied on a per axis basis. That is to say, any drives associated with an axis will all be assigned the same values. If you think about, that's the way it has to be because you can't have two motors driving the same axis using different acceleration values for example - they have to synchronised. For that reason, we don't use colon separators for individual drives on the same axis - every drive will have the same values by default.
Extruders are treated similarly to axes but each extruder can only have one drive assigned to it. Tools can have one or more extruders assigned to them but that's another matter. For machines which have multiple extruders, we have to stipulate the acceleration, jerk, steps per mm etc for each extruder, just as we would for separate axes (X,Y and Z might use the same values but they might equally use different values depending on pulley size or lead screw lead). We do that by using multiple values separated by a colon. It's just a shorthand way of saying the first value applies to extruder 0, the second the extruder 1, the third to extruder 2 etc.