@dc42 That's an interesting idea. I do have io3 available on each board that I could put to some use.

Posts made by Gamefanatic3D
-
RE: Toolboard onboard configuration
-
Toolboard onboard configuration
I'm just curious if it's plausible to store a tool's configuration file on the Duet Toolboard itself through the DWC?
While I know I can have several configurations stored on the duet SDCard, I'm moving to streamline my toolsets. There are situations where I might pull a tool out, say a "Revo6," and swap in a tool such as a Mosquito into the same location. While I could utilize a different CAN address, the complication comes with determining which tool slot it's in specifically.
Without having to add more hardware to detect tools in the slot. I thought it might work to be able to pull the config straight from the tool and utilize the CAN addresses to assign the tool numbers accordingly.I'm already detecting if a tool is loaded successfully using a TCRT5000 on my tool changer so it seems a bit overkill to have to now detect the tool in the tool slot. But that might be the next direction I go.
-
RE: Echo command syntax
@dc42 Tracking the syntax. However with the example at the bottom of the page not following the syntax it's not clear, so I thought it worth reporting such that either the "Examples of Use" section or the syntax would be updated.
Saving and restoring variables across a reset
- persistentGlobal.g
- loadPersistentGlobal.g
-
Echo command syntax
I was working with the echo syntax to incorporate the ">" & ">>" capabilities and was using the persistentGlobal.g file identified in the "GCode Meta Commands. However, when executing the file I receive the error:
Error: in file macro line 6 column 7: meta command: expected a string expression
file: _TestVar1
M98 P"/sys/scripts/persistentGlobal.g" V"testVar" X"one"
After some back-and-forth, I found the root cause to be that the example had a space the ">" Removing the space resolved the problem. I only noticed this after looking at the earlier examples in the documentation which did not have the additional space where the filename was being provided.
Old code:
var id = param.V ; name of the global variable var value = param.X ; value to save var filepath = "globals/"^{var.id} ; internal file path where the global variable is saved ; Save the global variable as a file so it is persistent echo > {var.filepath} "if exists(global."^{var.id}^")" echo >> {var.filepath} " set global."^{var.id}^" = "^{var.value} echo >> {var.filepath} "else" echo >> {var.filepath} " global "^{var.id}^" = "^{var.value} M98 P{var.filepath} ; load the global variable
Working code:
var id = param.V ; name of the global variable var value = param.X ; value to save var filepath = "globals/"^{var.id} ; internal file path where the global variable is saved ; Save the global variable as a file so it is persistent echo >{var.filepath} "if exists(global."^{var.id}^")" echo >>{var.filepath} " set global."^{var.id}^" = "^{var.value} echo >>{var.filepath} "else" echo >>{var.filepath} " global "^{var.id}^" = "^{var.value} M98 P{var.filepath} ; load the global variable
I just thought I'd pass this along.
Using v3.6 rc1 & rc2 both produced the error.
-
RE: 1LC Driver 0 not responding
@droftarts
There is a sticker right under that driver.
This was a brand new board, but puchased in August 2024. I believe this might have been my fault. When creating my initial power cable to the Tool Distribution board about a month ago and got the PINs reversed in the circuit layout. I immediately powered off and reversed things at one end and plugged it in and didn't notice any issues. At least not until now...
None of the other boards had this issue since I had updated the build guide for those circuits.
-
RE: 1LC Driver 0 not responding
@Gamefanatic3D
Okay so I'm certain the driver is blown by the look in this picture.
Swapped out the board, and now to the next problem I'm sure I will have!I knew I'd figure it out once I asked for help!
-
RE: 1LC Driver 0 not responding
@Gamefanatic3D
Okay, so I went through and tested each 1LC board without them all connected at the same time. It appears the issue is only with the (21.0) board. The other boards (22.0, 23.0) all work to include (20.0) which is running the tool head.I believe this may be an issue with the single board. Does this sound like a hardware issue?
I'll swap out this board soon to validate my assumption.
-
1LC Driver 0 not responding
I am standing up a Duet3 Mini 5+ and 3 x 1LC (v1.3) boards that are connected to Obriter 2.0 extruders.
I'm banging my head against the printer trying to figure out what I am missing here.
I am unable to get the Orbiter motor to engage when connected to the 1LC. If I connect the motor to an open driver on the Duet (driver 0.4) I can get it to engage.
I am running the following Macro to test the motor operations:
M302 P1 T0 P0 echo "Begin Move" G1 E100 F100 echo "End Move" T-1 P0 M302 P0
When doing this with the motor connected to (0.4) on the Mini I see the motor turn. However, when I put the motor back to the 1LC (21.0) and execute the macro above I see the system show "Busy" in the web browser, but the motor never turns.
I've tried unplugging the motor and getting the same effect, the system never tells me any errors or wiring problems when on (21.0), but when on (0.4) it returns the expected error:
Warning: Driver 0.4 warning: phase A may be disconnected, phase B may be disconnected
I attempted to probe the B- & B+ / A- & A+ terminals after executing the Macro above on while connected to (21.0) I see no voltage. When I perform the same test with the motor connected to (0.4) I can see voltage.
I don't have everything configured on the 1LC, but so far I have validated all the other components are working so I know that the board is still good (same issue across 3 x 1LC's so far).
Any suggestions on what I can do to get some feedback from the 1LC as to why it's not working?
Below is the diagnostics right after attempting a move while the motor is connected to (21.0)
M122 B21 Diagnostics for board 21: Duet TOOL1LC rev 1.1 or later firmware version 3.6.0-rc.1 (2025-02-28 15:03:36) Bootloader ID: SAMC21 bootloader version 2.8 (2023-07-25) All averaging filters OK Never used RAM 7528, free system stack 94 words Tasks: Move(3,nWait 7,0.0%,96) TMC(2,nWait 6,0.5%,52) HEAT(2,nWait 6,0.3%,112) CanAsync(5,nWait 4,0.0%,58) CanRecv(3,nWait 1,0.0%,70) CanClock(5,nWait 1,0.0%,58) ACCEL(3,nWait 6,0.0%,72) MAIN(1,running,94.4%,318) IDLE(0,ready,0.0%,26) AIN(2,delaying,4.8%,112), total 100.0% Owned mutexes: Last reset 00:11:33 ago, cause: power up Last software reset data not available Moves scheduled 1, hiccups 0 (0.00/0.00ms), segs 3, step errors 0 (types 0x0), maxLate 0 maxPrep 95, ebfmin 0.00 max 0.00 Peak sync jitter -3/8, peak Rx sync delay 212, resyncs 0/0, no timer interrupt scheduled, next step interrupt due in 3867598156 ticks, disabled VIN voltage: min 24.3, current 24.4, max 24.4 MCU temperature: min 20.4C, current 36.4C, max 36.4C Driver 0: pos 68999, 690.0 steps/mm, not present Last sensors broadcast 0x00000002 found 1 173 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 13892, send timeouts 0, received 6086, lost 0, ignored 0, errs 0, boc 0, free buffers 18, min 18, error reg 0 dup 0, oos 0/0/0/0, rxMotionDelay 292, adv 37067/37067 Accelerometer: LIS3DH, status: 00 I2C bus errors 0, naks 3, contentions 0, other errors 0
config.g (while connected to 1LC)
G90 ; absolute coordinates M83 ; relative extruder moves M911 S19.8 R22 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss ;;;;;;;;;;;;;;;;;;; ;;; Network ;;; ;;;;;;;;;;;;;;;;;;; M552 S1 ; configure WiFi adapter M586 P0 S1 ; configure HTTP ;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Smart Drivers ;;; ;;;;;;;;;;;;;;;;;;;;;;;;; M569 P0.0 S0 D2 ; driver 0.0 goes forwards (Z0 axis) M569 P0.1 S0 D2 ; driver 0.1 goes forwards (Z1 axis) M569 P0.2 S1 D2 ; driver 0.2 goes forwards (X axis) M569 P0.3 S1 D2 ; driver 0.3 goes forwards (Y axis) M569 P20.0 S0 D3 V4000 ; Tool Changer ; Motor Idle Current Reduction M906 I30 ; set motor current idle factor M84 S30 ; set motor current idle timeout ;;;;;;;;;;;;;;;; ;;; Axes ;;; ;;;;;;;;;;;;;;;; M584 X0.2 Y0.3 Z0.0:0.1 ; set axis mapping M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M906 X800 Y800 Z800 ; set axis driver currents M92 X200.0157 Y200.0157 Z1601.584008 ; configure steps per mm M208 X0:427 Y0:410 Z0:380 ; set minimum and maximum axis limits M566 X900 Y900 Z12 ; set maximum instantaneous speed changes (mm/min) M203 X6000 Y6000 Z180 ; set maximum speeds (mm/min) M201 X500 Y500 Z20 ; set accelerations (mm/s^2) ; Tool Changer Start (C-Axis) ; M584 C20.0 ; Set Axis Motor M906 C400 ; Set Motor Currents (mA) M350 C8 I0 ; Set Interpolation M92 C100 ; Set Microstepping M201 C500 ; Set Accellerations M203 C5000 ; Set Maximum speed (mm/min) M566 C2 ; Set maximum instantaneous speed changes (mm/min) M208 C0:240 ; Set axis Min/Max travel ;M915 C S3 F0 H200 R0 ; Stall Detection ; Tool Changer End ; ; Kinematics M669 K1 ; configure CoreXY kinematics M575 P1 B115200 S1 ; PanelDue communications ;;;;;;;;;;;;;;;;;; ;;; Probes ;;; ;;;;;;;;;;;;;;;;;; ; Z-Axis (BLTouch) M558 K0 P9 C"20.io0.in" H5 F120 T6000 ; configure BLTouch probe via slot #0 G31 P500 X0 Y0 Z0.7 ; set Z probe trigger value, offset and trigger height M950 S0 C"20.io0.out" ; create servo #0 for BLtouch ; Z-Axis End ;; Sensor to right (negative X) of hotend G31 P25 K0 X31.75 Y-34.4 Z0.90 ; Z probe trigger value, offset in relation to nozzle. Larger trigger brings hotend closer to bed. M557 X40:360 Y40:340 S40 ; Define mesh grid Offset X to account for Z-Trigger. ;;;;;;;;;;;;;;;;;; ;;; Endstops ;;; ;;;;;;;;;;;;;;;;;; ;M574 X1 S3 ; configure X axis endstop ;M574 Y1 S3 ; configure Y axis endstop M574 X1 S1 P"!20.io1.in" ; X-Axis Switch High Trigger M574 Y1 S1 P"io6.in" ; Y-Axis Switch High Trigger M574 Z1 S2 ; Z-Axis end stop is probe. ;;;;;;;;;;;;;;;;;;; ;;; SENSORS ;;; ;;;;;;;;;;;;;;;;;;; M308 S0 P"temp0" Y"thermistor" A"Heated Bed" T100000 B4725 C7.06e-8 ; configure sensor #0 M308 S10 Y"mcu-temp" A"MCU" M950 J0 C"!20.io3.in" ; Tool Optical Sensor ;;;;;;;;;;;;;;;;;;; ;;; Heaters ;;; ;;;;;;;;;;;;;;;;;;; M950 H0 C"out0" T0 ; create heater #0 M143 H0 P0 T0 C0 S140 A0 ; configure heater monitor #0 for heater #0 M307 H0 R2.43 D5.5 E1.35 K0.56 B1 ; configure model of heater #0 G4 S1 ; Heated beds M140 P0 H0 ; configure heated bed #0 ;;;;;;;;;;;;;;;;; ;;; Tools ;;; ;;;;;;;;;;;;;;;;; ;; Tool0 ;; ; !!! DEFINE MOTOR FOR EXTRUDER !!! M584 E21.0 ; set extruder mapping M906 E1000 I10 M350 E16 I1 ; configure microstepping with interpolation ; NOTE: See Smart Drivers section for motor currents M92 E690 ; configure steps per mm M566 E300 ; set maximum instantaneous speed changes (mm/min) M203 E7200 ; set maximum speeds (mm/min) M201 E3000 ; set accelerations (mm/s^2) ;; TEMP SENSOR M308 S1 P"21.temp0" Y"thermistor" A"Nozzle" T100000 B4725 C7.06e-8 ; configure sensor #1 ;M308 S2 P"21.temp1" Y"thermistor" A"Tool0_Temp_Extruder" T100000 B4725 C7.06e-8 ; configure sensor #1 ;; Heater M950 H1 C"21.out0" T1 ; create heater #1 M143 H1 P0 T1 C0 S285 A0 ; configure heater monitor #0 for heater #1 M307 H1 R2.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #1 ;; FANS ;;; Tool Fan M950 F0 C"21.out2" ; create fan #0 M106 P0 S0 B0.3 H1 T45 ; configure fan #0 ;;; Extruder Fan ;M950 F1 C"21.out1" ; create fan #1 ;M106 P1 C"Tool0_Fan_Extruder" S0 L0 X1 B0.1 H2 T45 ; configure fan #1 ;;; Extruder Fan ;; Create Tool0 M563 P0 D0 H1 ; create tool #0 M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C ;; Tool0 End ;; ;M98 P"/sys/CAN_22.g" ;M98 P"/sys/CAN_23.g" ; Miscellaneous M501 ; load saved parameters from non-volatile memory ;M98 P"/sys/custom_global_vars.g"
I was running v3.5.4, but upgraded to 3.6.1 rc1 last night in an attempt to see if maybe it was just a bug, but no change.
-
RE: Printer hanging during tool change with v3.5.1
@T3P3Tony I'm in the process of converting that machine from a Duet2 Wifi to Duet3. I'm conceding I've gone beyond the limits of a Duet2 and looking to move to 5 tools, plus filament box sensors and possibly even filament changers. I'll test once I get it FoC, but I can't guarantee when that will be with my hectic schedule.
-
RE: Printer hanging during tool change with v3.5.1
@dc42 Let me know if you need anything from me. I realize I am probably apart a small few experiencing this issue.
-
RE: Printer hanging during tool change with v3.5.1
@dc42 Wow, thank you for the second pair of eyes on this. Yes, it was stuck in the tconfig0.g. Putting the M400 just before the M98 command to load my configs is working!
-
RE: Printer hanging during tool change with v3.5.1
I tested a bit further tonight on this. I ran a Debug log file and added a "M118 P3" in my Pickup macros so I can tell when they execute. I can confirm that it's not making it to the Pickup macro, but the Debug log shows an M568 P0 A2 which tells me it's executing the tpre0.g file. I cannot say as of yet if it's making it to tpost0.g. Will test further when I get a moment.
-
RE: Duet web control connection interrupted
@chrishamm Changing AJAX to 5 seems to have worked.
-
RE: Duet web control connection interrupted
@chrishamm Yes, I have a PanelDue. I don't know if it matters, but I am utilizing the CONN_LCD.3 for one of my MFM's.
I did increase the AJAX to 3 before, but I suppose I didn't go high enough. I'll set it to 5 and see how things go.
-
RE: Printer hanging during tool change with v3.5.1
Updated to v3.5.1 again.
I ran the attached sliced file and it makes it all the way through to the second T0 (line 1637). Heaters all reach their nominal temperatures, even though my Macro's M116 is only looking at the T0 before it wants to pick it up. The bed will lower, but will not go further.
10x10x10_Cube-T0T1T2-S3D.gcode
- I cannot pause the print.
- M108 does nothing
- M25 - From Web just hangs waiting for a response from the printer.
- From the Web Control:
- I can navigate around and send some commands IE) M122
- I can upload a Macro and edit files
- I can click the "Emergency Stop"
- From the PanelDue
- I cannot pause the print
- I can move around / navigate
- I can execute Macro's
- I can change the temperatures of all the tools / bed.
- I can click the stop button.
5/5/2024, 2:58:24 PM M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.5.1 (2024-04-19 14:40:46) running on Duet WiFi 1.02 or later + DueX5 Board ID: 08DGM-9T6BU-FG3S8-6J1F8-3SJ6S-1BL7H Used output buffers: 3 of 26 (26 max) === RTOS === Static ram: 23256 Dynamic ram: 78496 of which 28 recycled Never used RAM 7932, free system stack 108 words Tasks: NETWORK(1,ready,12.6%,202) HEAT(3,nWait 5,0.2%,309) Move(4,nWait 5,0.4%,258) DUEX(5,nWait 5,0.0%,24) MAIN(1,running,86.7%,747) IDLE(0,ready,0.1%,29), total 100.0% Owned mutexes: === Platform === Last reset 00:17:34 ago, cause: software Last software reset at 2024-05-05 14:40, reason: User, Gcodes spinning, available RAM 8748, slot 1 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x04 Aux0 errors 0,0,0 MCU temperature: min 41.8, current 46.1, max 46.5 Supply voltage: min 23.8, current 24.2, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/51, heap memory allocated/used/recyclable 2048/1348/140, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 167 Driver 1: standstill, SG min 119 Driver 2: standstill, SG min 0 Driver 3: standstill, SG min 0 Driver 4: standstill, SG min 0 Driver 5: standstill, SG min 0 Driver 6: standstill, SG min n/a Driver 7: standstill, SG min 0 Driver 8: standstill, SG min 0 Driver 9: standstill, SG min n/a Driver 10: Driver 11: Date/time: 2024-05-05 14:58:23 Cache data hit count 4294967295 Slowest loop: 241.50ms; fastest: 0.16ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 9 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest read time 2.0ms, write time 5.2ms, max retries 0 === Move === DMs created 83, segments created 24, maxWait 497256ms, bed compensation in use: mesh, height map offset 0.000, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 1.00 no step interrupt scheduled Moves shaped first try 150, on retry 35, too short 65, wrong shape 408, maybepossible 0 === DDARing 0 === Scheduled moves 735, completed 735, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.3 Heater 1 is on, I-accum = 0.5 === GCodes === Movement locks held by File HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 8 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger is idle in state(s) 0 Queue is doing "G10 P0 X-6.71" in state(s) 0 LCD is idle in state(s) 0 Daemon is idle in state(s) 0 Autopause is idle in state(s) 0 Q0 segments left 0 Queue 0 has 'G10 P0 Y35.17' for move 735 Queue 0 has 'G10 P0 Z-1.55' for move 735 === Filament sensors === check 7281348 clear 2324874 Extruder 0: pos 2469.73, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 Extruder 1: pos 13973.55, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 Extruder 2: pos 2390.27, errs: frame 0 parity 0 ovrun 0 pol 14549 ovdue 0 === DueX === Read count 1, 0.06 reads/min === Network === Slowest loop: 131.31ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) HTTP sessions: 1 of 8 === WiFi === Interface state: active Module is connected to access point Failed messages: pending 0, notrdy 0, noresp 0 Firmware version 2.1.0 MAC address cc:50:e3:14:e3:17 Module reset reason: Turned on by main processor, Vcc 3.32, flash size 4194304, free heap 39504 WiFi IP address 192.168.0.90 Signal strength -48dBm, channel 2, mode 802.11n, reconnections 0 Clock register 00002002 Socket states: 0 0 0 0 0 0 0 0
-
RE: Printer hanging during tool change with v3.5.1
Using the Duet2 Wifi + DUEX5. Hopefully, things are updated a bit better. The forum code interpreter seems to be having issues with some of the code I pasted and not giving it proper formatting.
The "tactive.g" file is generated by the "pickup.g" when a tool has been successfully picked up and deleted when it has been successfully returned. I use it in lieu of a switch on the tool to detect if a tool is loaded.
I'll upload an M122 once I get a chance to swap back to the 3.5.1 firmware and run through the paces again.
-
Printer hanging during tool change with v3.5.1
I upgraded to v3.5.1 from v3.4.5. When I attempt a test print utilizing multiple tools and find that at some point during the print when changing tools it hangs. At first, I thought it was due to waiting on a heater, but I could not reproduce the issue when manually changing tools. It only occurs when attempting to print.
When I revert to v3.4.5 I have no issues with the same prints.
Here is an example of one of my tool-changing scripts. I have been able to reproduce the issue with T0 and T2 (did not test against T1).
SYS Files
tfree0.g
; tfree0.g ; Runs at the start of a toolchange if the current tool is tool-0. ; Note: tool offsets are applied at this point unless we preempt commands with G53! ; called when tool 0 is freed ; ; Move Z out of way. G91 ; relative positioning G1 Z5 F6000 H2 ; lift Z relative to current position G90 ; absolute positioning M98 P"/macros/Tools/T0/Drop" ; Drop Tool G91 ; relative positioning G1 Z-5 F6000 H2 ; lift Z relative to current position G90 ; absolute positioning ;fan off M106 P1 S0 ; Disable Filament Monitor M591 D0 P3 c{global.tool0_mfm_PIN} S0 ; Duet3D rotating magnet sensor disabled ; Clear Tool Specific variables set global.currentTool_fan = ""
tpost0.g
; tpost0.g ; called after tool 0 has been selected ; M703 ; Load filament configuration ; Squeeze Filament out. M116 P0 S3 M98 P"/sys/prime.g" ; Pickup Tool M98 P"/macros/Tools/T0/Pickup" ; restore print cooling fan speed ;M106 P1 R2 M106 P1 S{state.restorePoints[2].fanPwm} if global.restoreToolPosition = 1 G0 R2 X0 Y0 F7000 ; Restore to X and Y position prior to tool change G1 R2 Z0 ; Restore prior Z position before tool change was initiated. ; Note: tool tip position is automatically saved to slot 2 upon the start of a tool change. ; Restore Z first so we don't crash the tool on retraction. G1 E{tools[{state.currentTool}].retraction.length} ; Prime Nozzle.
tpre0.g
; tpre0.g ; called before tool 0 is selected ; ; Check if we have another tool selected ; Is this even necessary with our tool detection script in play? M98 P"/sys/thome_check.g" G60 S0 ; Save Current Position to Slot 0 ;;;;;;;;;;;;;;;;;;;;; ;; FILAMENT SENSOR ;; ;;;;;;;;;;;;;;;;;;;;; ; Duet3D rotating magnet sensor extruder drive 0 is connected to E0, enabled, sensitivity 24.8mm.rev, 70% to 130% tolerance, 3mm detection length 'agc' of 50 to 105 if {global.tool0_mfm_defaults} == false M591 D0 P3 c{global.tool0_mfm_PIN} S{global.tool0_mfm_S} R{global.tool0_mfm_R_min}:{global.tool0_mfm_R_max} L{global.tool0_mfm_L} E{global.tool0_mfm_E} else M591 D0 P3 c{global.tool0_mfm_PIN} S1 R20:180 L25.0 E3.0 ;;;;;;;;;;;;;;;;;;;;;; ;; Tool Variables ;; ;;;;;;;;;;;;;;;;;;;;;; set global.currentTool_fan = 1 ;;;;;;;;;;;;;;;;;;;;;; ;; Load Tool ;; ;;;;;;;;;;;;;;;;;;;;;; ; Turn on heater if tools[0].active[0] > 0 M568 P0 A2 elif tools[0].standby[0] > 0 M568 P0 A1 ; Wait for set temperatures to be reached M116 P0 S2 ; Note that commands preempted with G53 will NOT apply the tool offset. if move.axes[2].machinePosition < abs(tools[0].offsets[2]) G1 Z{(abs(tools[0].offsets[2])+5)} ; Load T0 Configuration M98 P"/sys/tconfig0.g"
tconfig0.g
; tconfig0.g ; Retraction M207 P0 S0.50 ;; OFFSET ;; X ;; ; Set tool 0 axis offsets for X coordinate G10 P0 X-6.71 ;; Y ;; ; Set tool 0 axis offsets for Y coordinate G10 P0 Y35.17 ;; Z ;; ; Set tool 0 axis offsets for Z coordinate G10 P0 Z-1.55
prime.g
; prime.g if {global.primeTool}!=0 G92 E0 G1 F200 G1 E10 F100 M106 P{global.currentTool_fan} S255 G4 S1 G1 E20 F500 M106 P{global.currentTool_fan} S0 G92 E0 G1 F200 G1 E{-1*(tools[{state.currentTool}].retraction.length)} F100 G4 S3
MACROS
Pickup
; Pickup ; This will grab the tool from the dock ;Open Coupler M98 P"/macros/Tools/Tool-Unlock" ; Pickup Tool M98 P"/macros/Tools/T0/Dock" ; Lock Coupler M98 P"/macros/Tools/Tool-Lock" ;; Tool Wipe ;; ; Lock Coupler M98 P"/macros/Tools/Tool-Wipe-Dock" ; Move away from dock G1 Y320 F6000 ; Identify tool has been picked up. ; We need to know if a tool is in hand. This ; will execute code to drop tool enabling ; the next step of picking up a tool or homing Z M28 "/sys/tactive.g" ; Play Alert Sound M300 S500 P200 G4 P250 M300 S500 P200 G4 P250 M300 S500 P200 ; Prompt we detected a tool and will dock (10 second default) M291 S1 R"Tool Warning" P"Tool 0 detected in carriage. Preparing to Dock..." M98 P"/macros/Tools/T0/Drop" M29
Dock
; Dock ; This file will align the tool head with the tool and ; Tool changer we want to home Y first to pull away from tools. if !move.axes[0].homed ; Home Y G28 X if !move.axes[1].homed ; Home X G28 Y ; move to prep for lock. ; move to Y 1st for safety ; Prefix commands with G53 to ignore offsets!! ; align with tool G53 G1 Y300 F8000 G53 G1 Y300 X417 ; move to tool G53 G1 Y375 F4000 G53 G1 Y397 F2500
Drop
; Drop ; This will put the tool back in the dock. ; Dock Tool M98 P"/macros/Tools/T0/Dock" ; Unlock Coupler M98 P"/macros/Tools/Tool-Unlock" ; Move away from dock fast in hopes it shakes a sticky tool off like a string. G53 G1 Y320.5 F12000 ; Cleanup tool register M30 "/sys/tactive.g"
Tool-Lock
; Tool-Lock M400 M906 C600 ; Raise motor current a bit. M400 G1 C206 F2500 M400 M906 C400 ; Put it back to normal M400
Tool-UnLock
; Tool-UnLock M400 M906 C600 ; Raise motor current a bit. M400 if !move.axes[3].homed && move.axes[3].userPosition==0 ; We are assuming a tool is loaded and we want to unload it. ; echo "C-Axis not homed" G1 C-83 F2500 H2 else G1 C125 F2500 M400 M906 C400 ; Put it back to normal M400
I believe the problem to be occurring during the tfree0.g as the tool has the active temperature set and I see the bed lower. I would expect it to attempt to pick up the tool at this point, so I'm expecting the hang is occuring between the first G90 and M98 Macro (which I do not see execute).
; Move Z out of way. G91 ; relative positioning G1 Z5 F6000 H2 ; lift Z relative to current position G90 ; absolute positioning M98 P"/macros/Tools/T0/Drop" ; Drop Tool
I have tried an M108 in hopes it was stuck in a temperature wait loop, but that does not stop it. The only way I have been able to make things work again at this point is to stop the machine through the emergency stop on the Duet PanelDue or Web Console.
No issues with a single tool print or manually cycling through the tools. It's only happening while printing and almost always after cycling through the tools at least once. It will occur in a print job in the same place each time, so it is reproducible.
I have tried to upload the firmware a second time, with the same results.
Moving back to v3.4.5 doing the same print jobs it works without a problem and no changes are required to any macros. Which at least gives me a solution to print, but was hoping to see if I was missing something.
-
Duet web control connection interrupted
I am getting the following error when connecting to the Duet 2 Wifi, after updating to the latest firmware. I get it approximately every 2 minutes if I have a single browser open, but if I open 2 browsers it happens every 5-10 seconds.
Connection interrupted, attempting to reconnect... Operation failed (Reason: Service Unavailable)
M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.5.1 (2024-04-19 14:40:46) running on Duet WiFi 1.02 or later + DueX5 Board ID: 08DGM-9T6BU-FG3S8-6J1F8-3SJ6S-1BL7H Used output buffers: 3 of 26 (26 max) === RTOS === Static ram: 23256 Dynamic ram: 78508 of which 0 recycled Never used RAM 8260, free system stack 118 words Tasks: NETWORK(1,ready,14.2%,200) HEAT(3,nWait 5,0.1%,328) Move(4,nWait 5,0.0%,258) DUEX(5,nWait 5,0.0%,24) MAIN(1,running,85.5%,743) IDLE(0,ready,0.2%,29), total 100.0% Owned mutexes: === Platform === Last reset 00:16:34 ago, cause: software Last software reset at 2024-05-03 22:27, reason: User, Gcodes spinning, available RAM 8604, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x04 Aux0 errors 0,0,0 MCU temperature: min 38.5, current 40.7, max 41.1 Supply voltage: min 24.0, current 24.0, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/48, heap memory allocated/used/recyclable 2048/1176/64, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 166 Driver 1: standstill, SG min 202 Driver 2: ok, SG min 0 Driver 3: standstill, SG min n/a Driver 4: standstill, SG min n/a Driver 5: ok, SG min 0 Driver 6: standstill, SG min n/a Driver 7: standstill, SG min n/a Driver 8: standstill, SG min n/a Driver 9: standstill, SG min n/a Driver 10: Driver 11: Date/time: 2024-05-03 22:43:43 Cache data hit count 4294967295 Slowest loop: 349.38ms; fastest: 0.20ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 7 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest read time 8.5ms, write time 122.0ms, max retries 0 === Move === DMs created 83, segments created 11, maxWait 964256ms, 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 next step interrupt due in 43 ticks, disabled Moves shaped first try 5, on retry 0, too short 2, wrong shape 2, maybepossible 0 === DDARing 0 === Scheduled moves 27, completed 26, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state 3 === Heat === Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.6 Heater 1 is on, I-accum = 0.5 Heater 3 is on, I-accum = 0.3 === GCodes === Movement locks held by File HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 44 0 5, running macro 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 Daemon is idle in state(s) 0 Autopause is idle in state(s) 0 Q0 segments left 0 Code queue 0 is empty === Filament sensors === check 2500602 clear 7408764 Extruder 0: pos 2516.48, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 Extruder 1: pos 2160.00, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 Extruder 2: pos 2160.00, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 === DueX === Read count 1, 0.06 reads/min === Network === Slowest loop: 345.81ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) HTTP sessions: 1 of 8 === WiFi === Interface state: active Module is connected to access point Failed messages: pending 0, notrdy 0, noresp 0 Firmware version 2.1.0 MAC address cc:50:e3:14:e3:17 Module reset reason: Turned on by main processor, Vcc 3.32, flash size 4194304, free heap 42948 WiFi IP address 192.168.0.90 Signal strength -42dBm, channel 2, mode 802.11n, reconnections 0 Clock register 00002002 Socket states: 0 0 0 0 0 0 0 0
I have attempted to download the firmware again and still the same issue persists.
Product Short Name Version Duet 2 WiFi 2WiFi 3.5.1 Duet WiFi Server n/a 2.1.0 Duet Web Control DWC 3.5.1
Help and TIA!
-
RE: More than 12 fans
@droftarts Thank you, I'll look into this. Might be the right solution. Alternatively I had planed to just setup a hardware thermistor, but it would be nice to just control things from the tool change macros. I had thought also going after the firmaware and changing the value, but seems like that might be more work overall.
I'll likely use the Duet3 for my larger format system in the future, but already have this one wired up. Yeah its more wires, but its working.