@dc42 Updated to b4 this morning
Error still reproduces and I've attached the M122 B1 response below.
Will make note that the machine is now behaving erratically after the update:
- When first starting the print the motion is extremely jittery and acts like its dropping an extreme amount of steps and then it smooths out and runs fine as soon as the 2nd 6HC drops the connection. Bed Mesh is disabled.
- Additionally, I noticed that bed heater commands generated from slicer(s) are setting the temperature (M140 and M190) and the bed is heating appropriately, however, DWC has the bed set to 0 still for active/standby -> heater temp stabilizes as expected though.
- DWC has also dropped one of the tools from the list (T3 Mirror Mode), this could be self inflicted though as I've been updating things while troubleshooting. But Config.g still has the tool defined properly.
- The reconnect error repeats itself about every 50 seconds if I let the printer keep running.
Here is the file being sliced:
Sliced like 'normal' IE: slicer sets tools, heaters, and there's a skirt.
vtest.gcode
M122 B1
Diagnostics for board 1:
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.6.0-beta.4 (2025-02-11 09:51:22) running on Duet 3 MB6HC v1.01 (expansion mode)
Board ID: 08DJM-9P63L-DJMSS-6J1F6-3SN6T-KUHHB
Used output buffers: 0 of 40 (1 max)
=== RTOS ===
Static ram: 137396
Dynamic ram: 124952 of which 0 recycled
Never used RAM 75300, free system stack 202 words
Tasks: NETWORK(1,ready,10.1%,545) HEAT(3,nWait 6,0.0%,355) Move(4,nWait 6,0.0%,333) TMC(4,nWait 6,2.9%,377) CanReceiv(6,running,0.1%,626) CanSender(5,nWait 7,0.0%,334) CanClock(7,invalid,0.0%,351) MAIN(1,ready,86.4%,500) IDLE(0,ready,0.5%,29) USBD(3,blocked,0.0%,149), total 100.0%
Owned mutexes:
=== Platform ===
Last reset 00:00:20 ago, cause: software
Last software reset at 2025-02-11 10:27, reason: HeatTaskStuck, Gcodes spinning, available RAM 84348, slot 2
Software reset code 0x0143 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0040080f BFAR 0x00000000 SP 0x2041d6f8 Task Move Freestk 1044 ok
Stack: 00000000 2041d054 10000000 e000e000 2041d808 0049ad85 0049b57c 610f0000 20421460 0000002c 2041d7e8 20432b98 a5a5a5a5 20432b90 00453c39 00456cef a5a5a5a5 20432c18 a5a5a5a5 a5a5a5a5 a5a5a5a5 41c11f78 41c1e1bb 41c292da 414029c9 41418099 4142876c
=== Storage ===
Free file entries: 20
SD card 0 detected, interface speed: 25.0MBytes/sec
SD card longest read time 1.7ms, write time 0.0ms, max retries 0
=== Move ===
Segments created 386, maxWait 0ms, bed comp in use: none, height map offset 0.000, hiccups added 0/0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00
Pos req/act/dcf: 17848.73/0/0.00 0.00/0/0.00 0.00/0/0.00 0.00/0/0.00 0.00/0/0.00 0.00/0/0.00
Peak sync jitter -1/1, peak Rx sync delay 176, resyncs 0/0
Next step interrupt due in 131 ticks, disabled
Driver 0: standstill, SG min n/a, mspos 888, reads 41285, writes 14 timeouts 0
Driver 1: standstill, SG min n/a, mspos 8, reads 41288, writes 11 timeouts 0
Driver 2: standstill, SG min n/a, mspos 904, reads 41288, writes 11 timeouts 0
Driver 3: standstill, SG min n/a, mspos 904, reads 41288, writes 11 timeouts 0
Driver 4: standstill, SG min n/a, mspos 904, reads 41296, writes 11 timeouts 0
Driver 5: standstill, SG min n/a, mspos 8, reads 41296, writes 11 timeouts 0
Phase step loop runtime (us): min=0, max=14, frequency (Hz): min=0, max=3086
=== Heat ===
Bed heaters -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1 -1 -1 -1 -1, ordering errs 0
=== CAN ===
Messages queued 220, received 526, lost 0, ignored 17, errs 0, boc 0
Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 50), ts 1/0/0
Tx timeouts 0,0,0,0,0,0
After this replication I then stripped ALL startup commands from the sliced file and only left everything after the first movement command.
- Homed machine via DWC
- Set bed temperature via DWC
- Selected T0 via DWC
- Set T0 temperatures via DWC
I then ran the stripped file and it returns identical results -> super jittery motion until the 2nd board gets the Reconnect error -> afterwards it runs smoothly except no E and Z motion as the board they are on has dropped.
For due diligence I re-sliced the file without a skirt and stripped all startup commands once again -> Manually set everything via DWC and then ran the job -> The Reconnect error doesn't appear in DWC, however, the motion is super jittery (line by line with pauses between) and does not smooth out as the 2nd board doesn't disconnect.
This is similar motion behavior that was experienced when a USB was plugged into the 2nd 6HC for diagnostics.
Here's that file: vtest stripped skirtless.gcode
Current config.g
; Configuration file for RepRapFirmware on Duet 3 Main Board 6HC
; generated by RepRapFirmware Configuration Tool v3.5.10 on Wed Jan 22 2025 20:16:14 GMT-0500 (Eastern Standard Time)
; Execute pre parameter macros
M98 P{directories.system^"/Printer Parameters/tool_params.g"}
; General
G90 ; absolute coordinates
M83 ; relative extruder moves
M550 P"Servobelt" ; set hostname
; Network
;M551 P"___" ; set UI password
M552 P0.0.0.0 S1 ; configure Ethernet adapter
M586 P0 S1 ; configure HTTP
; Wait a moment for the CAN expansion boards to become available
G4 S2
; Accelerometers
;M955 P0 C"spi.cs0+io8.in" I20 ; configure accelerometer on board #0
; Smart Drivers
M569 P0.0 S1 D2 ; driver 0.0 goes forwards (X axis)
M569 P0.1 S1 D2 ; driver 0.1 goes forwards (U axis)
M569 P0.2 S0 D2 ; driver 0.2 goes forwards (Y axis)
M569 P0.3 S0 D2 ; driver 0.3 goes forwards (Y axis)
M569 P0.4 S1 D2 ; driver 0.4 goes backwards (Y axis)
M569 P0.5 S1 D2 ; driver 0.5 goes backwards (Y axis)
M569 P1.0 S0 D2 ; driver 1.0 goes forwards (extruder 0)
M569 P1.1 S0 D2 ; driver 1.1 goes forwards (extruder 1)
M569 P1.2 S0 D2 ; driver 1.2 goes forwards (Z axis)
M569 P1.3 S0 D2 ; driver 1.3 goes forwards (Z axis)
M569 P1.4 S0 D2 ; driver 1.4 goes forwards (Z axis)
; Motor Idle Current Reduction
M906 I30 ; set motor current idle factor
M84 S600 ; set motor current idle timeout
;M84 E0:1 ; Disable specific motors
; Axes
M584 X0.0 Y0.2:0.3:0.4:0.5 Z1.2:1.3:1.4 U0.1 ; set axis mapping
M350 X16 Y16 Z8 U16 I0 ; configure microstepping without interpolation
M906 X1100 Y2500 Z1400 U1100 ; set axis driver currents
M92 X80 Y80 Z800 U80 ; configure steps per mm
M208 X-175:250 Y-185:190 Z0:370 U-250:175 ; set minimum and maximum axis limits
M671 X-167.5:0:167.50 Y-200:242:-200 S5; Z pivot points are at (-167.5,-199.5), (0,241.645) and (167.5,-199.5) max correction is 5mm
M566 X900 Y900 Z12 U900 ; set maximum instantaneous speed changes (mm/min)
M203 X30000 Y30000 Z600 U30000 ; set maximum speeds (mm/min)
M201 X10000 Y15000 Z1000 U10000 ; set accelerations (mm/s^2)
; Extruders
M584 E1.0:1.1 ; set extruder mapping
M350 E16:16 I0 ; configure microstepping without interpolation
M906 E700:700 ; set extruder driver currents
M92 E{global.t0_e_steps, global.t1_e_steps} ; configure steps per mm
M566 E120:120 ; set maximum instantaneous speed changes (mm/min)
M203 E3600:3600 ; set maximum speeds (mm/min)
M201 E250:250 ; set accelerations (mm/s^2)
; Kinematics
M669 K0 ; configure Cartesian kinematics
; Mesh Bed Compensation and Z tilt
M557 X-120:120 Y-120:120 S10:10 ; define grid for mesh bed compensation
; Probes
M558 K0 P11 C"120.i2c.ldc1612" H10 F300:300:6000 T12000 ; configure scanning probe via slot #0. add B1 to disable heaters during probing
M558.1 K0 S1 A-3.277e-4 B-1.915e-9 C2.250e-15
M558.2 S14 R143209
M308 A"SZP coil" S10 Y"thermistor" P"120.temp0" ; thermistor on coil
G31 P290 X0 Y59 Z5.0 ; set Z probe trigger value, offset and trigger height
;M955 P120.0 I25 ; Add accelerometer on SZP with CAN address 120 and specify orientation
; Endstops
M574 X2 P"io1.in" S1 ; configure X axis endstop
M574 Y2 P"io2.in" S1 ; configure Y axis endstop
M574 Z1 S2 K0 ; configure Z axis endstop
M574 U1 P"io4.in" S1 ; configure U axis endstop
; Sensors
M308 S0 P"temp3" Y"thermistor" A"Heated Bed" T100000 B4388 C7.06e-8 ; configure sensor #0
M308 S1 P"temp1" Y"pt1000" A"Nozzle T0" ; configure sensor #1
M308 S2 P"temp2" Y"pt1000" A"Nozzle T1" ; configure sensor #2
;M308 S3 P"1.temp0" Y"thermistor" A"Chamber" T100000 B4725 C7.06e-8 ; configure sensor #3
; Heaters
M950 H0 C"out3" T0 ; create heater #0 this is the bed
M143 H0 P0 T0 C0 S140 A0 ; configure heater monitor #0 for heater #0
M307 H0 R0.659 K0.479:0.000 D2.15 E1.35 S1.00 B0 ; configure model of heater #0
M950 H1 C"out1" T1 ; create heater #1 this is T0/Right tool
M143 H1 P0 T1 C0 S350 A0 ; configure heater monitor #0 for heater #1
;M307 H1 R2.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #1
M307 H1 R3.246 K0.520:0.520 D2.49 E1.35 S1.00 B0 V24.1
M950 H2 C"out2" T2 ; create heater #2 this is T1/Left Tool
M143 H2 P0 T1 C0 S350 A0 ; configure heater monitor #0 for heater #2
M307 H2 R2.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #2
;M950 H3 C"1.out1" T3 ; create heater #3 this is the chamber heater
;M143 H3 P0 T1 C0 S150 A0 ; configure heater monitor #0 for heater #3
;M307 H3 R2.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #3
; Heated beds
M140 P0 H0 ; configure heated bed #0
; Heated chambers
;M141 P0 H3 ; configure heated chamber #0
; Fans
M950 F0 C"out4" ; create fan #0
M106 P0 C"Left Tool CPAP" S0 L0.15 X1 B0.1 ; configure fan #0
M950 F1 C"out9" ; create fan #1
M106 P1 C"Right Tool CPAP" S0 L0.15 X1 B0.1 ; configure fan #1
; Tools
;T0
M563 P0 S"T0 Right" D0 H1 X0 F1 ; create tool #0
M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C
;T1
M563 P1 S"T1 Left" D1 H2 X3 F0 ; create tool #1
M568 P1 R0 S0 ; set initial tool #1 active and standby temperatures to 0C
;Duplication Mode
M563 P2 S"Duplication Mode" D0:1 H1:2 X0:3 F0:1 ; tool for duplication mode, filament drives 0 and 1, heaters 1 and 2, fans 0 and 2
G10 P2 X-88.75 Y0 U88.75 S0 R0 ; tool offsets for duplication mode
M567 P2 E1:1 ; set mix ratio 100% on both extruders for duplication mode
;Mirror Mode
M563 P3 S"Mirror Mode" D0:1 H1:2 X0:3 F0:1 ; tool for mirror mode
G10 P3 X-88.75 Y0 U88.75 S0 R0 ; tool offset for mirror mode (flipped U offset)
M567 P3 E1:1 ; set mix ratio 100% on both extruders for mirror mode
; Input Shaper
;M593 P"zvd" F40.0 S0.10
; Execute post parameter macros
M98 P{directories.system^"/Printer Parameters/machine_params.g"}
And then daemon.g
var daemon_sleep = 2
if !exists(global.bed_timeout_start)
global bed_timeout_start = 0
global tool_timeout_start = 0
global bed_timer_active = false
global tool_timer_active = false
while true
if (state.status == "idle" || state.status == "simulating")
var beds_active = false
var tools_active = false
while iterations < #heat.bedHeaters
if heat.bedHeaters[iterations] != -1
if heat.heaters[iterations].state == "active" || heat.heaters[iterations].state == "standby"
set var.beds_active = true
if global.bed_timer_active && state.upTime - global.bed_timeout_start >= global.bed_heater_timeout
M140 S-273.1
while iterations < #tools
var current_tool = iterations
while true
if iterations >= #tools[var.current_tool].heaters
break
if heat.heaters[tools[var.current_tool].heaters[iterations]].state == "active" || heat.heaters[tools[var.current_tool].heaters[iterations]].state == "standby"
set var.tools_active = true
if global.tool_timer_active && state.upTime - global.tool_timeout_start >= global.tool_heater_timeout
M568 P{var.current_tool} A0
if var.beds_active
if !global.bed_timer_active
set global.bed_timeout_start = state.upTime
set global.bed_timer_active = true
else
set global.bed_timer_active = false
if var.tools_active
if !global.tool_timer_active
set global.tool_timeout_start = state.upTime
set global.tool_timer_active = true
else
set global.tool_timer_active = false
else
set global.tool_timer_active = false
set global.bed_timer_active = false
G4 S{var.daemon_sleep}
Toolchange routines, daemon, macros, etc were pulled from a known working IDEX configuration and tweaked for this machine. These updated files were added over this past weekend during downtime. Errors returned on prior barebones configuration as well as this newer style of configuration.
EDIT: changed the label for firmware update from b3+4 to b4