Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Trouble setting up a second extruder

    Scheduled Pinned Locked Moved
    General Discussion
    2
    7
    310
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • dselaundefined
      dsela
      last edited by dsela

      Hi,

      I have a machine set up with an extruder driven from an external driver, using the 1XD board.
      I would like to add a second extruder motor to create a mixing extruder. The second extruder motor is currently driven from the Duet 3 board (Driver 0.4).

      I can't seem to get the second extruder to move (when I define it as an extruder, but when I defined as a regular drive it did move).

      I tried creating two tools - T1 is the mixing extruder, T2 is just the new extruder motor for testing.
      When I select T1 and send a G1 E command - the external driven extruder turns, but the new extruder doesnt.
      I tried selecting T2, but this doens't make the new extruder move either.

      I'm guessing it has something to do with the configuration of an external drive together with an internal drive?

      Config.g :

      ; Configuration file for Duet 3 MB 6HC 
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.3.12 on Fri Aug 05 2022 12:05:46 GMT+0300 (Israel Daylight Time)
      
      ; General preferences
      G90                                          ; send absolute coordinates...
      M83                                          ; ...but relative extruder moves
      M550 P"K6"                                   ; set printer name
      G4 S2 ; wait for expansion boards to start
      
      ; Network
      M552 P192.168.2.3 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.2 S1                                 ; physical drive 0.2 goes forwards
      M569 P0.0 S0                                 ; physical drive 0.0 goes forwards
      M569 P0.1 S1
      M569 P0.3 S0                                 ; physical drive 0.3 goes forwards
      M569 P40.0 S0 R0                            ; physical drive 0.4 goes forwards
      M569 P40.0 T20:20:20:20
      M569 P0.4 S0
      M584 X0.2 Y0.0:0.1 Z0.3 E40.0:0.4 					; Sand extruder
      M350 X8 Y16 Z8 E1:1 I1                                 
      M92 X320.00 Y132.84 Z320.00 E74:200             ; Sand set steps per mm Round 5mm nozzle
      M566 X30 Y100 Z30 E5:5            ; Sand set maximum instantaneous speed changes (mm/min)
      M203 X800 Y6000 Z300 E1000:50     ; Sand set maximum speeds (mm/min)
      M201 X80.00 Y120.00 Z20.00 U1 E80        ; Roller set accelerations (mm/s^2)
      M201 X80.00 Y120.00 Z20.00 E80:5        ; Sand set accelerations (mm/s^2)
      
      M906 X2800 Y4000 Z2500 I30              ; Sand set motor currents (mA) and motor idle factor in per cent
      
      M84 S30                                      ; Set idle timeout
      M569.7 P0.3 C"out1" S500
      
      
      ; Axis Limits
      M208 X0 Y0 Z0 S1                             ; Sand set axis minima
      M208 X380 Y1000 Z350 S0                        ; Sand set axis maxima
      
      
      ; Endstops
      M574 X2 S1 P"io3.in"                         ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io0.in
      M574 Y1 S1 P"io0.in"                         ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io2.in
      M574 Z2 S1 P"io4.in"                         ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin io3.in
      
      ;M574 U1 S1 P"io5.in"
      
      ; Z-Probe
      M950 S0 C"io7.out" ;
      M558 P9 C"io7.in" H8 F180 T3000 ;
      G31 X65 Y0 Z6 P25
      M557 X105:280 Y270:550 S75
      
      ; Heaters
      M308 S0 P"temp0" Y"thermistor" T100000 B4725 C7.06e-8 A"Block" ;
      M950 H0 C"out7" T0                           
      M307 H0 B0 S1.00                             
      M143 H0 S240                                 
      M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8 A"PE-Upper";
      M950 H1 C"out8" T1                           
      M307 H1 B0 S0.75                             
      M143 H1 S240          
      
      ; Flat Nozzle
      ;M308 S2 P"temp2" Y"thermistor" T100000 B4725 C7.06e-8 A"PE-Lower";
      ;M950 H2 C"out9" T2                           
      ;M307 H2 B0 S1.00                             
      ;M143 H2 S240
      ;M308 S3 P"temp3" Y"thermistor" T100000 B4725 C7.06e-8 A"Nozzle";
      ;M950 H3 C"out6" T3                           
      ;M307 H3 B0 S1.00 
      ;M143 H3 S240
      
      ;5 MM Round Nozzle
      M308 S3 P"temp3" Y"thermistor" T100000 B4956 C1.587780e-7 A"Nozzle";
      M950 H3 C"out9" T3                           
      M307 H3 B1 S0.5                             
      M143 H3 S240
      
      
      M570 H0 P3600 T15 
      M570 H1 P3600 T15 
      M570 H2 P3600 T15 
      M570 H3 P3600 T15
      
      
      ; Fans
      M950 F0 C"out4"                          ; create fan 0 on pin out4 and set its frequency
      M106 P0 S0.3 H-1                               ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"out5"                         ; create fan 1 on pin out5 and set its frequency
      M106 P1 S0.3 H-1                            ; set fan 1 value. Thermostatic control is turned on
      
      ; Tools
      ;M563 P0 D0 H0:1:2:3                          ; 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
      
      M563 P1 D0:1 H0:1:3                          ; define tool 0
      M567 P1 E1:0.5
      G10 P1 X0 Y0 Z0                              ; set tool 0 axis offsets
      G10 P1 R0 S200                                 ; set initial tool 0 active and standby temperatures to 0C
      
      M563 P2 D1 H0:1:3                          ; define tool 0
      G10 P2 X0 Y0 Z0                              ; set tool 0 axis offsets
      G10 P2 R0 S200                                 ; set initial tool 0 active and standby temperatures to 0C
      
      ;T0
      T1
      ;M17
      ; Custom settings are not defined
      
      Thanks a lot!
      
      1 Reply Last reply Reply Quote 0
      • dselaundefined
        dsela
        last edited by

        Any ideas? I'm guessing something in the configuration is wrong with the first extruder being driven by an external driver and the second extruder being driven by the on-board driver - but I can't seem to figure it out..

        droftartsundefined 1 Reply Last reply Reply Quote 0
        • droftartsundefined
          droftarts administrators @dsela
          last edited by

          @dsela Can you check the firmware versions? Send M122 to show the mainboard info, and M122 B40 to show the 1XD info. Also check your config.g with M98 P"config.g". RRF does support having tools with extruders on more than one board.

          Ian

          Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

          dselaundefined 1 Reply Last reply Reply Quote 0
          • dselaundefined
            dsela @droftarts
            last edited by

            @droftarts I'm running 3.4.4
            When I send a G1 Ex command the main extruder turns, the 2nd does not. DWC shows that both extruders have turned

            Please find below the outputs:

            M122
            === Diagnostics ===
            RepRapFirmware for Duet 3 MB6HC version 3.4.4 (2022-10-20 16:19:01) running on Duet 3 MB6HC v1.01 (standalone mode)
            Board ID: 08DJM-956BA-NA3TJ-6J9D8-3S86R-1U9QT
            Used output buffers: 3 of 40 (14 max)
            === RTOS ===
            Static ram: 152824
            Dynamic ram: 98156 of which 0 recycled
            Never used RAM 99620, free system stack 192 words
            Tasks: NETWORK(ready,28.1%,210) ETHERNET(notifyWait,0.1%,443) HEAT(notifyWait,0.0%,322) Move(notifyWait,0.0%,256) CanReceiv(notifyWait,0.0%,798) CanSender(notifyWait,0.0%,335) CanClock(delaying,0.0%,352) TMC(notifyWait,8.2%,57) MAIN(running,63.3%,1199) IDLE(ready,0.3%,30), total 100.0%
            Owned mutexes:
            === Platform ===
            Last reset 00:00:41 ago, cause: software
            Last software reset at 2023-02-15 15:33, reason: User, GCodes spinning, available RAM 99440, slot 1
            Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a
            Error status: 0x00
            Step timer max interval 125
            MCU temperature: min 27.1, current 27.6, max 27.7
            Supply voltage: min 26.0, current 26.1, max 26.2, under voltage events: 0, over voltage events: 0, power good: yes
            12V rail voltage: min 12.0, current 12.1, max 12.2, under voltage events: 0
            Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
            Events: 0 queued, 0 completed
            Driver 0: standstill, SG min 0, mspos 296, reads 32680, writes 14 timeouts 0
            Driver 1: standstill, SG min 0, mspos 744, reads 32680, writes 14 timeouts 0
            Driver 2: standstill, SG min 0, mspos 16, reads 32680, writes 14 timeouts 0
            Driver 3: standstill, SG min 0, mspos 16, reads 32680, writes 14 timeouts 0
            Driver 4: standstill, SG min 0, mspos 128, reads 32680, writes 15 timeouts 0
            Driver 5: standstill, SG min 0, mspos 8, reads 32684, writes 11 timeouts 0
            Date/time: 2023-02-15 15:33:59
            Slowest loop: 8.64ms; fastest: 0.05ms
            === Storage ===
            Free file entries: 10
            SD card 0 detected, interface speed: 25.0MBytes/sec
            SD card longest read time 2.2ms, write time 0.0ms, max retries 0
            === Move ===
            DMs created 125, segments created 3, maxWait 18332ms, bed compensation in use: none, comp offset 0.000
            === MainDDARing ===
            Scheduled moves 4, completed 4, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 4], CDDA state -1
            === AuxDDARing ===
            Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
            === Heat ===
            Bed heaters -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
            Heater 0 is on, I-accum = 0.0
            Heater 1 is on, I-accum = 0.3
            Heater 2 is on, I-accum = 0.0
            Heater 3 is on, I-accum = 0.0
            === GCodes ===
            Segments left: 0
            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
            USB is idle in state(s) 0
            Aux is idle in state(s) 0
            Trigger is idle in state(s) 0
            Queue is idle in state(s) 0
            LCD is idle in state(s) 0
            SBC is idle in state(s) 0
            Daemon is idle in state(s) 0
            Aux2 is idle in state(s) 0
            Autopause is idle in state(s) 0
            Code queue is empty
            === CAN ===
            Messages queued 375, received 335, lost 0, boc 0
            Longest wait 1ms for reply type 6018, peak Tx sync delay 200, free buffers 50 (min 48), ts 207/206/0
            Tx timeouts 0,0,0,0,0,0
            === Network ===
            Slowest loop: 14.92ms; fastest: 0.03ms
            Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
            HTTP sessions: 1 of 8
            = Ethernet =
            State: active
            Error counts: 0 0 0 1 0 0
            Socket states: 5 2 2 2 2 0 0 0
            === Multicast handler ===
            Responder is inactive, messages received 0, responses 0
            
            M122 B40
            Diagnostics for board 40:
            Duet EXP1XD firmware version 3.4.4 (2022-10-14 11:45:39)
            Bootloader ID: SAMC21 bootloader version 2.4 (2021-12-10)
            All averaging filters OK
            Never used RAM 5556, free system stack 53 words
            Tasks: Move(notifyWait,0.0%,127) HEAT(notifyWait,0.1%,115) CanAsync(notifyWait,0.0%,64) CanRecv(notifyWait,0.0%,75) CanClock(notifyWait,0.0%,64) MAIN(running,96.5%,448) IDLE(ready,0.0%,40) AIN(delaying,3.4%,142), total 100.0%
            Last reset 00:03:03 ago, cause: software
            Last software reset time unknown, reason: HardFault, available RAM 14244, slot 1
            Software reset code 0x0060 ICSR 0x00000003 SP 0x20002b48 Task MAIN Freestk 821 ok
            Stack: 20003664 000000a5 20003984 2000363c 20003664 00016fc9 00016fe2 01000000 20000eb0 00000054 a5a5a5a5 a5a5a5a5 a5a5a5a5 20003608 00000000 a5a5a5a5 a5a5a5a5 00007b85 00000002 20003664 20003608 a5a5a5a5 a5a5a5a5 a5a5a5a5 a5a5a5a5 0001096b a5a5a5a5
            Driver 0: pos 296, 74.0 steps/mm, steps req 296 done 296
            Moves scheduled 4, completed 4, in progress 0, hiccups 0, step errors 0, maxPrep 401, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0
            Peak sync jitter 0/4, peak Rx sync delay 204, resyncs 0/0, no step interrupt scheduled
            VIN voltage: min 26.4, current 26.5, max 26.5
            MCU temperature: min 11.4C, current 11.7C, max 11.8C
            Last sensors broadcast 0x00000000 found 0 176 ticks ago, 0 ordering errs, loop time 0
            CAN messages queued 1504, send timeouts 0, received 1671, lost 0, free buffers 37, min 37, error reg 0
            dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 309, adv 37059/37157
            
            M98 P"config.g"
            HTTP is enabled on port 80
            FTP is disabled
            TELNET is disabled
            
            droftartsundefined 1 Reply Last reply Reply Quote 0
            • droftartsundefined
              droftarts administrators @dsela
              last edited by

              @dsela Ah, right, the second extruder is connected to the mainboard! Misread your first post. I think this is because you haven't configured all the parameters for the second extruder. These are all the settings that relate to Driver 0.4:

              ; Drives
              M569 P0.4 S0
              M584 X0.2 Y0.0:0.1 Z0.3 E40.0:0.4 					; Sand extruder
              M350 X8 Y16 Z8 E1:1 I1                                 
              M92 X320.00 Y132.84 Z320.00 E74:200             ; Sand set steps per mm Round 5mm nozzle
              M566 X30 Y100 Z30 E5:5            ; Sand set maximum instantaneous speed changes (mm/min)
              M203 X800 Y6000 Z300 E1000:50     ; Sand set maximum speeds (mm/min)
              M201 X80.00 Y120.00 Z20.00 U1 E80        ; Roller set accelerations (mm/s^2)
              M201 X80.00 Y120.00 Z20.00 E80:5        ; Sand set accelerations (mm/s^2)
              M906 X2800 Y4000 Z2500 I30              ; Sand set motor currents (mA) and motor idle factor in per cent
              

              You have two M201 lines. You are also setting acceleration for a U axis which doesn't seem to exist? I think just delete the first M201 line.
              Your M906 line doesn't specify the motor current for the extruder axes. You don't need to for the external drivers (so you can set this as anything), but you do need to set it for the internal driver, or it will use the default (though I can't remember what this actually is - send M906 on it's own to check). This may mean you motor is not receiving enough current to move. Add E[ext_driver_current]:E[internal_driver_current] to the M906 line.

              Ian

              Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

              dselaundefined 1 Reply Last reply Reply Quote 0
              • dselaundefined
                dsela @droftarts
                last edited by dsela

                @droftarts Thanks! It was the M906 motor current (question, if I have two extruders and I only want to set one, what is the correct syntax?)

                I now have problems with ethernet connection, it started when I was working on this issue with constant restarting of the board..please see my latest post 🙁
                https://forum.duet3d.com/topic/31533/duet-3-can-t-connect-over-ethernet-anymore

                droftartsundefined 1 Reply Last reply Reply Quote 0
                • droftartsundefined
                  droftarts administrators @dsela
                  last edited by

                  @dsela said in Trouble setting up a second extruder:

                  question, if I have two extruders and I only want to set one, what is the correct syntax?

                  There's this note on the M584 Gcode dictionary entry:

                  Every driver that is assigned must have its current set using M906. Not setting a current will default a low current (approx 1/32 of the driver max current), however M906 will report 0 until a current is assigned. Disable the driver explicitly if you do not want any current sent to a driver that is assigned.

                  Though this applies mainly to internal drivers (and explains why your second extruder wasn't working), it means that external drivers have the current set to 0 in the firmware. Realistically, this doesn't matter, as that setting is not sent to the external driver anyway.

                  So you can set the external driver current to any value you want; it doesn't matter, as the setting isn't applied to external drivers. But you do need to set the current of the second driver, and to index that, you need to set the current of the first driver (despite it being external) to something, so it knows that the second value relates to the second driver. You can use M906 E0:1000, or set one M906 value to apply to all extruders, eg M906 E1000. While the firmware will report the current setting for each extruder drive, the current for the external driver is irrelevant.

                  Ian

                  Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post
                  Unless otherwise noted, all forum content is licensed under CC-BY-SA