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

    Duet 3 6HC + 6HC as expansion: Extruder motors not working

    Scheduled Pinned Locked Moved Solved
    Duet Hardware and wiring
    3
    5
    116
    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.
    • Mauritsundefined
      Maurits
      last edited by

      Hi,

      I'm trying to run a 6HC v1.01 mainboard + 6HC v1.0 as expansion to accomodate 4 extruders on my Jubilee toolchanger, but I'm having trouble getting the extruder motors to work.

      Until yesterday I had a working system with the 6HC v1.01 + 3HC v1.02a, with three tools all running on the 3HC board.
      I changed the 3HC for a 6HC v1.0. All changes were made to enable the 6HC to run as an expansion board: congif.g for the expansion board with only the M954 command, both boards running RFF 3.5.4, and congif.g for the 6HC v1.01 mainboard was changed to accomodate for the changed adresses for the fans. M122 report look fine:

      6HC v1.01 mainboard:

      m122
      === Diagnostics ===
      RepRapFirmware for Duet 3 MB6HC version 3.5.4 (2024-11-24 10:47:10) running on Duet 3 MB6HC v1.01 (standalone mode)
      Board ID: 08DJM-9P63L-DJ3T0-6J1DL-3SN6N-KS3BA
      Used output buffers: 3 of 40 (18 max)
      === RTOS ===
      Static ram: 155464
      Dynamic ram: 122892 of which 596 recycled
      Never used RAM 67040, free system stack 202 words
      Tasks: NETWORK(1,ready,41.7%,182) ETHERNET(5,nWait 7,0.2%,278) HEAT(3,nWait 6,0.0%,327) Move(4,nWait 6,0.0%,335) CanReceiv(6,nWait 1,0.0%,796) CanSender(5,nWait 7,0.0%,334) CanClock(7,delaying,0.0%,348) TMC(4,nWait 6,9.2%,53) MAIN(1,running,48.0%,103) IDLE(0,ready,0.9%,29), total 100.0%
      Owned mutexes:
      === Platform ===
      Last reset 00:02:05 ago, cause: power up
      Last software reset at 2024-12-22 19:40, reason: User, Gcodes spinning, available RAM 66728, 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
      Aux0 errors 0,0,0
      MCU temperature: min 19.8, current 32.2, max 32.3
      Supply voltage: min 24.2, current 24.2, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes
      12V rail voltage: min 12.1, 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 n/a, mspos 8, reads 39203, writes 17 timeouts 0
      Driver 1: standstill, SG min n/a, mspos 8, reads 39203, writes 17 timeouts 0
      Driver 2: standstill, SG min n/a, mspos 32, reads 39203, writes 17 timeouts 0
      Driver 3: standstill, SG min n/a, mspos 8, reads 39203, writes 17 timeouts 0
      Driver 4: standstill, SG min n/a, mspos 8, reads 39204, writes 17 timeouts 0
      Driver 5: standstill, SG min n/a, mspos 8, reads 39204, writes 17 timeouts 0
      Date/time: 2024-12-22 19:52:19
      Slowest loop: 10.87ms; fastest: 0.07ms
      === Storage ===
      Free file entries: 19
      SD card 0 detected, interface speed: 25.0MBytes/sec
      SD card longest read time 2.4ms, write time 15.7ms, max retries 0
      === Move ===
      DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, height map offset 0.000, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 0.00
      no step interrupt scheduled
      Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0
      === DDARing 0 ===
      Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
      === DDARing 1 ===
      Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
      === Heat ===
      Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
      === GCodes ===
      Movement locks held by null, 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
      File2 is idle in state(s) 0
      Queue2 is idle in state(s) 0
      Q0 segments left 0, axes/extruders owned 0x0000000
      Code queue 0 is empty
      Q1 segments left 0, axes/extruders owned 0x0000000
      Code queue 1 is empty
      === CAN ===
      Messages queued 1166, received 2537, lost 0, errs 6, boc 0
      Longest wait 1ms for reply type 6018, peak Tx sync delay 935, free buffers 50 (min 49), ts 630/629/0
      Tx timeouts 0,0,0,0,0,0
      === Network ===
      Slowest loop: 40.10ms; fastest: 0.03ms
      Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
      HTTP sessions: 1 of 8
      = Ethernet =
      Interface state: active
      Error counts: 0 0 0 1 0 0
      Socket states: 5 5 2 2 2 0 0 0
      === Multicast handler ===
      Responder is inactive, messages received 0, responses 0
      

      6HC v1.0 expansion board:

      m122 b1
      Diagnostics for board 1:
      RepRapFirmware for Duet 3 MB6HC version 3.5.4 (2024-11-24 10:47:10) running on Duet 3 MB6HC v1.0 or earlier
      Last reset 00:06:09 ago, cause: power up
      Driver 0: 416.0 steps/mm,, SG min n/a, mspos 8, reads 6812, writes 18 timeouts 0
      Driver 1: 414.4 steps/mm,, SG min n/a, mspos 8, reads 6818, writes 18 timeouts 0
      Driver 2: 390.1 steps/mm,, SG min n/a, mspos 8, reads 6825, writes 18 timeouts 0
      Driver 3: 80.0 steps/mm,, SG min n/a, mspos 8, reads 6837, writes 11 timeouts 0
      Driver 4: 80.0 steps/mm,, SG min n/a, mspos 8, reads 6843, writes 11 timeouts 0
      Driver 5: 80.0 steps/mm,, SG min n/a, mspos 8, reads 6850, writes 11 timeouts 0
      VIN: 24.1V, V12: 12.0V, MCU temperature: min 11.2C, current 25.5C, max 25.6C
      Peak sync jitter -6/-3, peak Rx sync delay 183, resyncs 0/0, no step interrupt scheduled
      

      Issue:
      None of the extruder motors respond to any extrusion command when the appropriate tool is selected & hot.

      Checked fans, themistors & heaters: working properly.
      Checked extruder motors and drivers on the 6HC v1.0 board: working properly when configured as a axis instead of an extruder.
      Then I started to check in the config.g file to see if I missed anyhting in configuring the tools.

      ...And that's where I'm stuck.

      Can someone please take a look at my config.g to see if I'm doing anything wrong?
      I'd really appreciate the help!

      ; Configuration file for Jubilee CoreXY ToolChanging Printer
      ; for Duet 3 Mainboard 6HC & Expansion 6HC
      
      ; General setup
      ;------------------------------
      M111 S0                    ; Debug off 
      M929 P"eventlog.txt" S1    ; Start logging to file eventlog.txt
      M555 P2                    ; Set Marlin-style output
      G21                        ; Set dimensions to millimetres
      G90                        ; Send absolute coordinates...
      M83                        ; ...but relative extruder moves
      M575 P1 S1 B57600          ; Enable PanelDue Display
      
      ; Network
      ;------------------------------
      M550 P"Seybi"   	   ; Name used in ui and for mDNS  http://Seybi.local
      M552 S1                    ; Enable networking
      
      ; Drive definitions of the frame
      ;------------------------------
      ; Connected to the Mainboard 6HC as the table below
      ; _________________________________
      ; | X(Right) | Y(Left)  | U(lock) |
      ; | Z(Back)  | Z(Right) | Z(Left) |
      
      M584 X0 Y1                ; Set drive mapping X to driver0 and Y to driver1 for CoreXY
      M584 U2                   ; Set drive mapping U to driver2 for toolchanger lock
      M584 Z3:4:5               ; Set drive mapping Z to driver3, 4 and 5 for kinematic bed suspension
      
      M569 P0 S0 D3             ; Drive 0 | X stepper goes backward in Stealthchopper mode
      M569 P1 S0 D3             ; Drive 1 | Y Stepper goes backward in Stealthchopper mode
      M906 X1800                ; Set max current to 1800mA, 90% of maximum
                                ; Can be set to {0.9*sqrt(2)*2000} alternatively
      M906 Y1800                ; Set max curtrent to 1800mA, 90%^of maximum
                                ; Can be set to {0.9*sqrt(2)*2000} alternatively
      
      M569 P2 S0 D3             ; Drive 2 | U Tool Changer Lock goes backward in Stealthchopper mode
      M906 U700 I60             ; Set max current to 700mA, 70% of maximum, idle at 60% shared for all drives
                                ; Can be set to {0.7*sqrt(2)*1000} alternatively
      
      M569 P3 S0 D3             ; Drive 3 | Front Left Z goes backward in Stealthchopper mode
      M569 P4 S0 D3             ; Drive 4 | Front Right Z goes backward in Stealthchopper mode
      M569 P5 S0 D3             ; Drive 5 | Back Z goes backward in Stealthchopper mode
      M906 Z1800                ; Set max current to 1400mA, 70% of maximum
                                ; Can be set to {0.7*sqrt(2)*2000} alternatively
      
      ; Expansion board 6HC
      ;------------------------------
      ; Tool steppers on expansion board
      M584 E1.0:1.1:1.2         ; Extruders for three tools on expansion board 1
      M569 P1.0 S1 D3           ; Drive 6 | Extruder T0 goes forward in Stealthchopper mode
      M569 P1.1 S1 D3           ; Drive 7 | Extruder T1 goes forward in Stealthchopper mode
      M569 P1.2 S1 D3           ; Drive 8 | Extruder T2 goes forward in Stealthchopper mode
      M906 E900                 ; Set maximum current to 900mA, 90% of maximum
      			  ; can be set to {0.7*sqrt(2)*1400} alternatively.
      			  ; Expressions might not be supported for extruders
      
      ; Kinematics
      ;------------------------------
      M669 K1                   ; Set kinematics mode to CoreXY
      ; Kinematic bed ball locations
      ; Locations are extracted from CAD model assuming lower left build plate corner
      ; is (0, 0) on a 305x305mm plate.
      M671 X297.5:2.5:150 Y313.5:313.5:-16.5 S10 ; Front Left: (297.5, 313.5)
                                                 ; Front Right: (2.5, 313.5)
                                                 ; Back: (150, -16.5)
                                                 ; Up to 10mm correction
      
      ; Axis and motor configuration
      ;------------------------------
      M350 X1 Y1 Z1 U1 E1:1:1     ; Disable microstepping to simplify calculations
      M92 X{1/(0.9*16/180)}       ; step angle * tooth count / 180
      M92 Y{1/(0.9*16/180)}       ; The 2mm tooth spacing cancel out with diam to radius
      M92 Z{360/0.9/2}            ; 0.9 deg stepper / lead (2mm) of screw 
      M92 U{13.76/1.8}            ; gear ration / step angle for tool lock geared motor.
      M92 E26.000:25.900:24.379   ; Extruder 0 and 1 - BMG 1.8 deg/step, Extruder 2 - Hemera 1.8 deg/step
      
      ; Enable microstepping all step per unit will be multiplied by the new step def
      M350 X16 Y16 I1           ; 16x microstepping for CoreXY axes. Use interpolation.
      M350 U4 I1                ; 4x for toolchanger lock. Use interpolation.
      M350 Z16 I1               ; 16x microstepping for Z axes. Use interpolation.
      M350 E16:16:16 I1         ; 16x microstepping for Extruders T0,T1 and T2. Use interpolation.
      
      ; Speed and acceleration
      ;------------------------------
      M201 X1100 Y1100                        ; Maximum X and Y Accelerations (mm/s^2)
      M201 Z100                               ; Maximum Z Acceleration (mm/s^2)
      M201 U800                               ; Maximum U Acceleration (mm/s^2)
      M201 E1300                              ; Maximum Extruder Acceleration (mm/s^2)
      
      M203 X18000 Y18000 Z800 E8000 U9000     ; Maximum axis speeds (mm/min)
      M566 X500 Y500 Z500 E3000 U50           ; Maximum jerk speeds (mm/min)
      
      ; Endstops and probes
      ;------------------------------
      ; Connected to the Mainboard 6HC as the table below.
      ; |   | Z |
      ; | X | U |
      ; | Y |
      
      M574 U1 S1 P"^io4.in"                    ; homing position U1 = low-end, type S1 = switch
      M574 X1 S1 P"^io1.in"                    ; homing position X1 = low-end, type S1 = switch
      M574 Y1 S1 P"^io2.in"                    ; homing position Y1 = low-end, type S1 = switch
      
      M574 Z0                                  ; we will use the switch as a Z probe not endstop 
      M558 P8 C"io3.in" H10 F360 T6000         ; H = dive height (was 3) F probe speed T travel speed
      G31 K0 X0 Y0 Z-2                         ; Set the limit switch position as the  "Control Point."
                                               ; Note: the switch free (unclicked) position is 7.2mm,
                                               ; but the operating position (clicked) is 6.4 +/- 0.2mm. 
                                               ; A 1mm offset (i.e: 7.2-6.2 = 1mm) would be the 
                                               ; Z to worst-case free position, but we add an extra 1mm
                                               ; such that XY travel moves across the bed when z=0
                                               ; do *not* scrape or shear the limit switch.
      
      ; Set axis software limits and min/max switch-triggering positions.
      ; Adjusted such that (0,0) lies at the lower left corner of a 300x300mm square 
      ; in the 305mmx305mm build plate.
      M208 X-13.75:313.75 Y-44:341 Z0:295
      M208 U0:200                              ; Set Elastic Lock (U axis) max rotation angle
      
      
      
      ; Heaters and temperature sensors
      ;------------------------------
      ; Bed
      M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed"      ; Keenovo thermistor
      M950 H0 C"out0" T0                                       ; H = Heater 0
                                                               ; C is output for heater itself
                                                               ; T = Temperature sensor
      M143 H0 S130                                             ; Set maximum temperature for bed to 130C
      M307 H0 R1.008 K0.196:0.000 D1.88 E1.35 S1.00 B0         ; Set PWM/PID paramaters for bed heater
                                                               ; for 600w 230v heater w/built in thermistor
                                                               ; mandala rose bed
      M140 H0                                                  ; Assign H0 to the bed
      
      ; Tool0 Afterburner
      M308 S1 P"1.temp0" Y"thermistor" A"Heater0" B4725 C7.06e-8 ; Create tempsensor1 on expansion board temp0
      M950 H1 C"1.out1" T1                                       ; Create Heater1 for Extruder0 on exp.board out1 with tempsensor1
      M307 H1 R1.810 K0.302:0.347 D6.60 E1.35 S1.00 B0 V24.4     ; Set PWM/PID values for heater1
      M143 H1 S285                                               ; Set maximum temperature for heater1 to 285C
      
      ; Tool1 Afterburner
      M308 S2 P"1.temp1" Y"thermistor" A"Heater1" B4725 C7.06e-8 ; Create tempsensor2 on expansion board temp1
      M950 H2 C"1.out2" T2                                       ; Create Heater2 for Extruder1 on ep.board out2 with tempsensor2
      M307 H2 R1.692 K0.444:0.458 D6.18 E1.35 S1.00 B0 V24.4     ; Set PWM/PID values for heater2
      M143 H2 S285                                               ; Set maximum temperature for heater2 to 285C
      
      ; Tool2 Hemera
      M308 S3 P"1.temp2" Y"thermistor" A"Heater2" B4725 C7.06e-8 ; Create tempsensor3 on expansion board temp2
      M950 H3 C"1.out3" T3                                       ; Create Heater3 for Extruder2 on ep.board out3 with tempsensor3
      M307 H3 R1.778 K0.296:0.233 D5.38 E1.35 S1.00 B0 V24.4     ; Set PWM/PID values for heater3
      M143 H3 S285                                               ; Set maximum temperature fot heater3 to 285C
      
      ; Fans
      ;------------------------------
      M950 F1 C"!1.out4+out4.tach"          ; Create fan1 on exp.board out4
      M106 P1 S255 H1 T45 C"HeatBreakCool0" ; S = Speed of fan P1
                                            ; H1 = heater for thermo mode
                                            ; T = temps for thermo mode
                                            ; C = to name the fan
      M950 F2 C"1.out7"                     ; Create fan2 on exp.board out7
      M106 P2 C"PrintCool0"                 ; Set name of fan P2 as PrintCool0
      
      M950 F3 C"!1.out5+out5.tach"          ; Create fan3 on exp.board out5
      M106 P3 S255 H2 T45 C"HeatBreakCool1" ; S = Speed of fan P3
                                            ; H2 = heater for thermo mode
                                            ; T = temps for thermo mode
                                            ; C = to name the fan
      M950 F4 C"1.out8"                     ; Create fan4 on exp.board out8
      M106 P4 C"PrintCool1"                 ; Set name of fan P2 as PrintCool1
      
      M950 F5 C"!1.out6+out6.tach"          ; Create fan5 on exp.board out6
      M106 P5 S255 H3 T45 C"HeatBreakCool2" ; S = Speed of fan P5
                                            ; H2 = heater for thermo mode
                                            ; T = temps for thermo mode
                                            ; C = to name the fan
      M950 F6 C"1.out9"                     ; Create fan6 on exp.board out9
      M106 P6 C"PrintCool2"                 ; Set name of fan P6 as PrintCool2
      
      ; Tool definitions
      ;------------------------------
      M563 P0 S"Tool0" D0 H1 F2   ; P0 = Tool number
                                  ; D0 = Drive Number
                                  ; H1 = Heater Number
                                  ; F2 = Fan number print cooling fan
      G10 P0 S0 R0                ; Set tool 0 operating and standby temperatures
      M572 D0 S0.085              ; Set pressure advance
      
      M563 P1 S"Tool1" D1 H2 F4   ; P1 = Tool number
                                  ; D1 = Drive Number
                                  ; H2 = Heater Number
                                  ; F4 = Fan number print cooling fan
      G10 P1 S0 R0                ; Set tool 1 operating and standby temperatures
      M572 D1 S0.085              ; Set pressure advance
      
      M563 P2 S"Tool2" D2 H3 F6   ; P2 = Tool number
                                  ; D2 = Drive Number
                                  ; H3 = Heater Number
                                  ; F6 = Fan number print cooling fan
      G10 P2 S0 R0                ; Set tool 2 operating and standby temperatures
      M572 D2 S0.085              ; Set pressure advance
      
      ; All tools
      M98  P"/sys/Toffsets.g"     ; Set tool offsets from the bed for all tools
      
      ; LED strips
      ;------------------------------
      ;M950 E0 C"led" T2 U20 Q3000000  ; Create neopixel lights named "led" with 20 LED's
      
      ; Other sensors
      M308 S10 Y"mcu-temp" A"MCU"            ; defines sensor10 as mainboard cpu temperature sensor
      ;M308 S11 Y"drivers" A"Stepper drivers" ; defines sensor11 as stepper driver temperature sensor
      
      ;End section
      ;------------------------------
      ;M501                       ; Load saved parameters from non-volatile memory
      
      droftartsundefined dc42undefined 2 Replies Last reply Reply Quote 0
      • droftartsundefined
        droftarts administrators @Maurits
        last edited by

        @Maurits it’s a bug, has been reported and fixed in 3.6 betas, but has not been back ported to 3.5. See https://github.com/Duet3D/RepRapFirmware/issues/1058
        Use 3.6-beta.2 https://github.com/Duet3D/RepRapFirmware/releases/tag/3.6.0-beta.2

        Ian

        droftarts created this issue in Duet3D/RepRapFirmware

        closed [bug]: RRF 3.5.3 - Extruder drives on mainboard-as-expansion-board not moving #1058

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

        Mauritsundefined 1 Reply Last reply Reply Quote 0
        • dc42undefined
          dc42 administrators @Maurits
          last edited by

          @Maurits also add a G4 S2 command early in config.g to make sure the expansion 6HC is ready to accept CAN commands when the M584 E command is executed.

          Duet WiFi hardware designer and firmware engineer
          Please do not ask me for Duet support via PM or email, use the forum
          http://www.escher3d.com, https://miscsolutions.wordpress.com

          Mauritsundefined 1 Reply Last reply Reply Quote 0
          • Mauritsundefined
            Maurits @droftarts
            last edited by Maurits

            @droftarts Thank you for pointing in the right direction. Just updated firmware on both boards to 3.6.0beta2 and all extruders divers are working fine again.

            Again thank you for your help!

            1 Reply Last reply Reply Quote 0
            • Mauritsundefined
              Maurits @dc42
              last edited by

              @dc42 Thanks for the tip! I'll definitly include the S4 command.

              1 Reply Last reply Reply Quote 0
              • Mauritsundefined Maurits marked this topic as a question
              • Mauritsundefined Maurits has marked this topic as solved
              • Mauritsundefined Maurits referenced this topic
              • First post
                Last post
              Unless otherwise noted, all forum content is licensed under CC-BY-SA