Duet 3 6HC + 6HC as expansion: Extruder motors not working
-
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
-
@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.2Ian
-
@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.
-
@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!
-
@dc42 Thanks for the tip! I'll definitly include the S4 command.