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

    3.6.b3 mainboards as expansion boards disconnect during printing

    Scheduled Pinned Locked Moved
    Beta Firmware
    7
    25
    816
    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.
    • aetherialdesignundefined
      aetherialdesign @aetherialdesign
      last edited by

      Same results on beta3+3; along with increased oddities.
      Machine kept pausing during initialization of the print file

      aetherialdesignundefined 1 Reply Last reply Reply Quote 0
      • aetherialdesignundefined
        aetherialdesign @aetherialdesign
        last edited by

        Reiterating in case I failed to mention in this particular post -> this setup is an SBC setup as the boards being used are pre 1.02 and can't utilize the wifi module add-on.

        Installation location of the machine has no access to ethernet either.
        I can try to do power socket ethernet at a later date if SBC is the root cause here.

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

          @aetherialdesign Unfortunately I've not had much time to progress investigating this issue. Would it be possible for you to set up your Duet in standalone mode and test?

          You will need to set up an SD card for the Duet mainboard. You could make the "SD card" directories in the FAT/boot partition of the SBC SD card (or update the files if the directories are already there). Basically what is in /opt/dsf/sd needs to be copied into the boot partition. Also assign an IP address in that config.g or set to DHCP as appropriate. With an SD card in the Duet is should boot into Standalone mode.

          For networking and to actually connect to the Duet, if you have a PC with ethernet nearby, you can set it up to connect directly. For a guide, see https://docs.duet3d.com/en/User_manual/Machine_configuration/Networking#wired-direct-connection

          I'll have more time at the beginning of next week to investigate, if this is too much messing around for you!

          A few questions: which DuetPi image did you use to build the SBC, and what Raspberry Pi are you using? Was it working correctly on a previous version (eg 3.4), or is this a new build? If you were using a 'Buster' build of DuetPi (ie RRF/DSF 3.4), how did you update the SBC to 3.5? (We recommend flashing a new DuetPi image if moving from Buster to Bookworm, see https://docs.duet3d.com/en/How_to_guides/SBC_Buster_to_Bookworm )

          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

          aetherialdesignundefined 1 Reply Last reply Reply Quote 0
          • aetherialdesignundefined
            aetherialdesign @droftarts
            last edited by

            @droftarts
            I’m expecting a Wi-Fi repeater/extension this weekend, which will allow me to create a pseudo Ethernet connection to the machine.

            This is a fresh build. The setup includes a Pi 4 (with a dedicated 5V PSU) running the standard full image from the Docs, as there was potential for a touchscreen interface later. However, I’m planning to test removing the SBC to rule it out as a potential bottleneck. If needed, I can always use an old PanelDue later.

            I manually flashed the boards to version 3.5.4 over USB using BOSSA and updated all peripherals via the SBC. Later, I updated to 3.6b3 through the SBC to address the extruder bug in 3.5.4.

            As a result, the machine hasn’t yet been tested under actual printing conditions on RRF.

            aetherialdesignundefined 1 Reply Last reply Reply Quote 0
            • aetherialdesignundefined
              aetherialdesign @aetherialdesign
              last edited by

              I removed 5v PSU and the SBC from the system and moved over to standalone mode.
              Error still reproduces whenever going into print status.

              All other functionalities and controls are perfectly fine as long as I don't try to print or emulate printing motions via macros

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

                @aetherialdesign we expect release 3.6.0-beta.4 later today. Please test again with this release on both boards. if the fault continues to occur then please post the result of running M122 B1 after the "reconnected" message appears. In this release it will produce full diagnostics instead of abbreviated ones, so there should be no need to connect to it via USB to get the full report.

                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

                aetherialdesignundefined 1 Reply Last reply Reply Quote 0
                • aetherialdesignundefined
                  aetherialdesign @dc42
                  last edited by aetherialdesign

                  @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

                  droftartsundefined dc42undefined 4 Replies Last reply Reply Quote 0
                  • droftartsundefined
                    droftarts administrators @aetherialdesign
                    last edited by

                    @aetherialdesign We have managed to reproduce this error. @dc42 is investigating.

                    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 1
                    • dc42undefined
                      dc42 administrators @aetherialdesign
                      last edited by

                      @aetherialdesign the fix for this is currently being tested.

                      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

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

                        @aetherialdesign please try this unofficial firmware build. Scratch that, there appears to be a second issue.

                        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

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

                          @aetherialdesign please test this 6HC firmware build.
                          Duet3Firmware_MB6HC.bin

                          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

                          aetherialdesignundefined 1 Reply Last reply Reply Quote 0
                          • aetherialdesignundefined
                            aetherialdesign @dc42
                            last edited by aetherialdesign

                            @dc42 That seems to have potentially done the trick! Its at least going into the print status and staying connected throughout so far.
                            DWC still doesn't show bed temp; will have to poke around about that as it is likely something in the macro workflows.
                            Edit:
                            Tools disappearing and temps not being set in DWC were due to some DWC settings that somehow got toggled at some point in time.
                            Have run several short test prints without any further disconnects now.

                            T3P3Tonyundefined 1 Reply Last reply Reply Quote 1
                            • T3P3Tonyundefined
                              T3P3Tony administrators @aetherialdesign
                              last edited by

                              @aetherialdesign thanks for reporting the fix appears to have worked. I am closing the github issue we opened for this:
                              https://github.com/Duet3D/RepRapFirmware/issues/1081

                              T3P3 created this issue in Duet3D/RepRapFirmware

                              closed 3.6.b3 mainboards as expansion boards disconnect during printing #1081

                              www.duet3d.com

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