2nd extruder problem



  • I'm converting a cartesian printer from RAMPS to Duet and am now having an issue with the 2nd extruder drive in that I cannot get it to work. The stepper works if moved to the Duet board connector for the first drive so I'm beginning to wonder if I have a board fault but it is more likely that I'm doing something wrong as this is my first dual extruder on Duet.

    Please can anyone see anything wrong in the config.g file below (I'm also happy to receive comments about other aspects of the config.g as I'm a relative beginner to the Duet and completely new to using it on a cartesian and with two extruders!).

    [[language]]
    ; Configuration file for Duet WiFi (firmware version 1.20 or newer)
    ; executed by the firmware on start-up
    
    ; General preferences    
    M111 S0                                                         ; Debugging off
    G21                                                             ; Work in millimetres
    G90                                                             ; Send absolute coordinates...
    M83                                                             ; ...but relative extruder moves
    M555 P2                                                         ; Set firmware compatibility to look like Repetier
    M911 S21 R22 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"              ; Configure automatic saving on power loss
    
    M208 X-19 Y-4 Z-0.2 S1                                          ; Set axis minima
    M208 X240 Y247 Z193 S0                                          ; Set axis maxima
    
    ; Endstops
    M574 X1 Y2 S1                                                   ; Set active high endstops
    M574 Z1 S2                                                      ; Set endstops controlled by probe
    M558 P1 H6 F300 T8000                                           ; Set Z probe type to unmodulated and the dive height + speeds
    G31 Y21 X9 P500 Z2.27                                           ; Set Z probe trigger value, offset and trigger height
    M557 X22:220 Y25:210 S20                                        ; Define mesh grid
    
    ; Drives
    M569 P0 S0                                                      ; Drive 0 goes backwards
    M569 P1 S1                                                      ; Drive 1 goes forwards
    M569 P2 S0                                                      ; Drive 2 goes backwards
    M569 P3 S0                                                      ; Drive 3 goes backwards
    M569 P4 S0                                                      ; Drive 4 goes backwards
    M350 X16 Y16 Z16 E16:16 I1                                      ; Configure microstepping with interpolation
    M92 X80 Y80 Z1600 E2594:E2630                                   ; Set steps per mm
    M566 X480 Y480 Z60 E399.6:399.6                                 ; Set maximum instantaneous speed changes (mm/min)
    M203 X10000 Y10000 Z800 E1200:1200                              ; Set maximum speeds (mm/min)
    M201 X2000 Y2000 Z250 E500:500                                  ; Set accelerations (mm/s^2)
    M906 X800 Y1000 Z800 E800:800 I30                               ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30                                                         ; Set idle timeout
    
    ; Heaters
    M301 H0 S1.00 P10 I0.1 D200 T0.4 W180 B30                       ; Use PID on bed heater (may require further tuning)
    M305 P0 T100000 B4138 C0 R4700                                  ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120                                                    ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4138 C0 R4700                                  ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280                                                    ; Set temperature limit for heater 1 to 280C
    M305 P2 T100000 B4138 C0 R4700                                  ; Set thermistor + ADC parameters for heater 2
    M143 H2 S280                                                    ; Set temperature limit for heater 2 to 280C
    
    ; Tools
    M563 P0 D0 H1                                                   ; Define tool 0
    G10 P0 X-9 Y0 Z0                                                ; Set tool 0 axis offsets
    G10 P0 R200 S210                                                ; Set initial tool 0 active (S) and standby (R) temperatures
    M563 P1 D1 H2                                                   ; Define tool 1
    G10 P1 X9 Y0 Z0                                                 ; Set tool 1 axis offsets
    G10 P1 R200 S210                                                ; Set initial tool 1 active and standby temperatures
    
    ; Network
    M550 PDuet_I3                                                   ; Set machine name
    M552 S1                                                         ; Enable network
    M586 P0 S1                                                      ; Enable HTTP
    M586 P1 S1                                                      ; Enable FTP
    M586 P2 S0                                                      ; Disable Telnet
    
    ; Fans
    M106 P0 S0.0 I0 F500 H-1                                        ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1:2 T45                                     ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S1 I0 F500 H1:2 T45                                     ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on
    
    ; Custom settings
    M307 H7 A-1 C-1 D-1                                             ; Set Heater 7 for PWM for LED driver. Use pin 16 on expansion header
    M42 P7 S35                                                      ; Using heater 7 for PWM, set output at 25 / 255 (PWM value of 0 = LEDs off, 255 full on)
    M376 H10                                                        ; set bed compensation taper (H10 means taper over 10mm)
    M207 S1.0 F3600 T3600 Z0.5                                      ; Set FW retraction length and speed" 1.0 retract, 60mm/s, unretract 60mm/s, 0.5mm lift.
    M200 D1.75                                                      ; set all extruder filament diameters to 1.75mm
    G29 S1                                                          ; Load previously set bed map
    
    ; Miscellaneous
    T0                                                              ; Select first tool
    
    ```;
    
    Any help and comments gratefully received.
    
    Thanks.
    
    Richard

  • administrators

    Are you sending T1 before trying to use the second extruder? Are you either heating tool 1 up to temperature, or using M302 P1 to allow cold extrusion?

    Check the GCode Console page of the web interface for error messages. Also send M906 without parameters and check it reports the correct motor current for each extruder. Send M584 and check it reports that the extruder drives are allocated to drivers 3:4 before any other drivers.

    You can also run M122 after attemptimg extrusion to check the status of the stepper drivers.

    HTH David



  • Thanks, David. I've set the standby temps of both extruders to 208° and the active to 210° so I can test without cold extrusion problems so I don't think it is that.

    I'm using T0 and T1 to switch between the extruders, yes. I've also tried selecting the active tool on DWC.

    I hadn't yet found those extra commands - I'll go and try them.

    Richard



  • That all looks OK to me but hopefully you can see something wrong?

    M584
    Driver assignments: X0 Y1 Z2 E3:4:5:6:7:8:9:10:11, 3 axes visible
    M906
    Motor current (mA) - X:800, Y:1000, Z:800, E:800:800:0:0:0:0:0:0:0, idle factor 30%
    
    

    And this is M122 after extruding on T0:

    M122
    === Diagnostics ===
    Used output buffers: 3 of 32 (14 max)
    === Platform ===
    RepRapFirmware for Duet WiFi version 1.20 running on Duet WiFi 1.0
    Board ID: 08DGM-95BLL-N6PSS-6JKD2-3SN6K-1JUBJ
    Static ram used: 15448
    Dynamic ram used: 99256
    Recycled dynamic ram: 4080
    Stack ram used: 1392 current, 4504 maximum
    Never used ram: 7784
    Last reset 00:06:45 ago, cause: software
    Last software reset at 2018-01-28 19:37, reason: User, spinning module GCodes, available RAM 7784 bytes (slot 3)
    Software reset code 0x0003 HFSR 0x00000000, CFSR 0x00000000, ICSR 0x0041f000, BFAR 0xe000ed38, SP 0xffffffff
    Error status: 0
    Free file entries: 10
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest block write time: 0.0ms
    MCU temperature: min 39.5, current 39.9, max 40.0
    Supply voltage: min 23.9, current 24.0, max 24.5, under voltage events: 0, over voltage events: 0
    Driver 0: standstill, SG min/max not available
    Driver 1: standstill, SG min/max not available
    Driver 2: standstill, SG min/max not available
    Driver 3: standstill, SG min/max 0/152
    Driver 4: standstill, SG min/max not available
    Date/time: 1970-01-01 00:00:00
    Cache data hit count 1578477123
    Slowest main loop (seconds): 0.158082; fastest: 0.000110
    === Move ===
    MaxReps: 1, StepErrors: 0, FreeDm: 240, MinFreeDm 239, MaxWait: 40020ms, Underruns: 0, 0
    Scheduled moves: 20, completed moves: 20
    Bed compensation in use: mesh
    Bed probe heights: 0.000 0.000 0.000 0.000 0.000
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1
    Heater 1 is on, I-accum = 0.5
    === GCodes ===
    Segments left: 0
    Stack records: 1 allocated, 0 in use
    Movement lock held by null
    http is idle in state(s) 0
    telnet is idle in state(s) 0
    file is idle in state(s) 0
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    Network state is running
    WiFi module is connected to access point 
    Failed messages: pending 0, notready 0, noresp 0
    WiFi firmware version 1.20
    WiFi MAC address 2c:3a:e8:0b:13:f9
    WiFi Vcc 3.32, reset reason Turned on by main processor
    WiFi flash size 4194304, free heap 17096
    WiFi IP address 192.168.0.243
    WiFi signal strength -48dBm, reconnections 0, sleep mode modem
    HTTP sessions: 1 of 8
    Socket states: 2 0 0 0 0 0 0 0
    Responder states: HTTP(1) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
    
    

    And the same after extruding on T1

    19:46:36M122
    === Diagnostics ===
    Used output buffers: 3 of 32 (14 max)
    === Platform ===
    RepRapFirmware for Duet WiFi version 1.20 running on Duet WiFi 1.0
    Board ID: 08DGM-95BLL-N6PSS-6JKD2-3SN6K-1JUBJ
    Static ram used: 15448
    Dynamic ram used: 99256
    Recycled dynamic ram: 4080
    Stack ram used: 1392 current, 4504 maximum
    Never used ram: 7784
    Last reset 00:08:49 ago, cause: software
    Last software reset at 2018-01-28 19:37, reason: User, spinning module GCodes, available RAM 7784 bytes (slot 3)
    Software reset code 0x0003 HFSR 0x00000000, CFSR 0x00000000, ICSR 0x0041f000, BFAR 0xe000ed38, SP 0xffffffff
    Error status: 0
    Free file entries: 10
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest block write time: 0.0ms
    MCU temperature: min 39.5, current 39.8, max 40.1
    Supply voltage: min 23.9, current 24.2, max 24.5, under voltage events: 0, over voltage events: 0
    Driver 0: standstill, SG min/max not available
    Driver 1: standstill, SG min/max not available
    Driver 2: standstill, SG min/max not available
    Driver 3: standstill, SG min/max not available
    Driver 4: standstill, SG min/max not available
    Date/time: 1970-01-01 00:00:00
    Cache data hit count 2063884012
    Slowest main loop (seconds): 0.157103; fastest: 0.000110
    === Move ===
    MaxReps: 1, StepErrors: 0, FreeDm: 240, MinFreeDm 239, MaxWait: 99278ms, Underruns: 0, 0
    Scheduled moves: 21, completed moves: 21
    Bed compensation in use: mesh
    Bed probe heights: 0.000 0.000 0.000 0.000 0.000
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1
    Heater 2 is on, I-accum = 0.4
    === GCodes ===
    Segments left: 0
    Stack records: 1 allocated, 0 in use
    Movement lock held by null
    http is idle in state(s) 0
    telnet is idle in state(s) 0
    file is idle in state(s) 0
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    Network state is running
    WiFi module is connected to access point 
    Failed messages: pending 0, notready 0, noresp 0
    WiFi firmware version 1.20
    WiFi MAC address 2c:3a:e8:0b:13:f9
    WiFi Vcc 3.32, reset reason Turned on by main processor
    WiFi flash size 4194304, free heap 17096
    WiFi IP address 192.168.0.243
    WiFi signal strength -48dBm, reconnections 0, sleep mode modem
    HTTP sessions: 1 of 8
    Socket states: 2 0 0 0 0 0 0 0
    Responder states: HTTP(1) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
    
    

    With cabling to the two steppers normal (T0 = stepper 3 and T1 = stepper 4):

    • When I select T1 and try to extrude I can hear a tone change from the allocated stepper (4) but no movement (with no load).

    • When I select T0 and try to extrude the allocated stepper (3) moves and extrudes

    If I swap the cables to stepper 3 & 4, (T0 = stepper 4, T1 = stepper 3):

    • T0 and extrude = no movement on stepper 3

    • T1 and extrude = movement on stepper 4

    Do you have any further suggestions, please?

    Thanks.

    Richard


  • administrators

    Are you saying that one extruder motor + cable works regardless of whether you connect it to the E0 or E1 motor output on the Duet, and the other one never works? If so then you probably have a bad connection in the cable of the one that doesn't work.



  • No, the reverse - both cable and motor assemblies work when connected to one channel (Drive 3 / E0) and both fail to move when connected to Drive 4 / E1.

    That would seem to indicate to me that there is either a hardware fault on the board or a configuration gcode error of some type.

    Am I missing something in the config, or does it look like hardware?

    Thanks.

    Richard


  • administrators

    The config.g file looks OK to me, so I suspect a faulty driver chip. One last thing to check: add the following command after the M569 commands in config.g:

    M584 X0 Y1 Z2 E3:4 E4:3

    This swaps over the extruder drivers in firmware, so extruding on tool 0 (D0) should turn the extruder connected to driver 4 (labelled E1) instead of driver 3 (labelled E0), and extruding on tool 1 (D1) should turn the extruder connected to E0. Please try it and see whether the problem is still with the extruder connected to driver 4 (E1).



  • Thanks, David. Did you mean M584 X0 Y1 Z2 E4:3, rather than M584 X0 Y1 Z2 E3:4?

    The left hand motor is attached to Drive 3 / E0 and the the right hand motor attached to Drive 4 / E1 and I used cold extrude this time.

    Using M584 X0 Y1 Z2 E3:4:

    • T0 & extrude - left hand motor turns

    • T1 & extrude - right hand motor 'kicks' and buzzes but does not turn

    With M584 X0 Y1 Z2 E4:3:

    • T0 & extrude - right hand motor turns

    • T1 & extrude - left hand motor 'kicks' and buzzes but does not turn

    Cables were not moved during this test.

    That would seem to show that the driver chip is OK, wouldn't it? I wasn't expecting that and it now would appear to point back to config / gcode errors.

    Richard


  • administrators

    Yes, that suggests the driver chip is OK.

    I just spotted a problem:

    M92 X80 Y80 Z1600 E2594:E2630

    should be:

    M92 X80 Y80 Z1600 E2594:2630

    So you were getting a default or strange steps/mm value for your D1 extruder.



  • Fantastic, David, thank you! That worked. Not sure how I managed that and I can't believe how many hours of confusion that cost me - and you.

    Thanks again.

    (edited to add) The support you provide is awesome. Thank you!)

    Richard


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.