Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. PDBeal
    3. Posts
    • Profile
    • Following 0
    • Followers 0
    • Topics 28
    • Posts 108
    • Best 14
    • Controversial 0
    • Groups 0

    Posts made by PDBeal

    • [3.5.2] DWC has some bad noticeable display lag

      Very noticeable display lag on 3.5.2 on DWC when using Duet + SBC + PanelDue. Watching the temperatures rise/fall appears to be frozen, then quickly counts, then holds, then quickly counts again. Even watching the X, Y, Z, U positions also has this delayed display.

      Functionally, it works, but it was not like this prior to 3.5.2.

      posted in Duet Web Control
      PDBealundefined
      PDBeal
    • RE: DOA PanelDue V3?

      I decided to test a little further back to see if it was firmware issues or hardware. I'm definitely leaning towards hardware issue.

      I went and flashed the PanelDue V3.0a board with firmware 1.17 which was the oldest firmware I could find for V3 and connected it to the SSD1963QL9AU608F LCD screen. No good. The backlight comes on, but it just flashes a white line across the edge of the LCD screen. This PanelDue V3.0a refuses to drive this specific 7" LCD. It works with the PanelDue V1.1 and PanelDue V2.0 boards but does not work with the PanelDue V3.0a board. Go figure, but there must be something different on this specific LCD panel that's not compatible with this newer board.

      Either way, I have a fix and will just swap the LCD panels on the machines until I get combinations that work.

      posted in PanelDue
      PDBealundefined
      PDBeal
    • RE: DOA PanelDue V3?

      @droftarts Yea, I'll check again, but that may just be a typo. Searching for SSD1936QL9 results in only entries for SSD1963QL9

      Edit: So yea, I checked again. All the chips say SSD1963QL9 on one line, and the AUxxxxx on a second line underneath. Typo when I listed 1936QL9.

      posted in PanelDue
      PDBealundefined
      PDBeal
    • RE: DOA PanelDue V3?

      Only case where I'd buy another one would be if I upgraded my final Duet 0.8.5 Flexion machine to something newer. With the new Jubilee printer I've finished building and it having multiple tool heads, I may just dismantle the Duet 0.8.5 Flexion machine anyway. Will have to see how the Jubilee runs my Ninjaflex prints.

      And the infrequent updates for PanelDue firmware, I'll never buy another integrated PanelDue LCD.

      posted in PanelDue
      PDBealundefined
      PDBeal
    • RE: DOA PanelDue V3?

      After Tim from Filastruder proved the PanelDue V3 board worked, I did some more testing with the one I still had and some older ones. It appears I came into an incompatible LCD screen that does not work with the PanelDue V3.

      SSD1963QL9AU608F LCD screen works with PanelDue V2.0, and PanelDue V1.1 board, but does NOT work with the PanelDue V3.0a board
      SSD1963QL9AU542AF LCD screen works with PanelDue V3.0a and a PanelDue V1.1
      SSD1963QL9AU622F LCD screen works with PanelDue V2.0 board and a PanelDue V3.0a.

      All of the combinations tried did not involve flashing any firmware. Only plugging in the already functional PanelDue boards to the various 7" LCD panels.

      One additional thing to note, my PanelDue V2.0 board is pre-August 2016 and does not accept any firmware files above 1.25.

      I'll just have to shuffle some LCD screens between printers for combinations that work, but I'll definitely think twice before order a new PanelDue interface board due to some of these unpublished incompatibilities.

      Edit: corrected typo on SSD1963 part numbers.

      posted in PanelDue
      PDBealundefined
      PDBeal
    • Error: Pop(): stack underflow on Aux

      Noticed I keep getting an error message showing up on the PanelDue. It states "Error: Pop(): stack underflow on Aux" This also shows up on the console if I have DWC already open.

      This usually happens when I do some command on a PanelDue like Extrusion or home, or some other movement command. Then when I start a Macro, I get this error message pop-up. The Macro appears to run though, its just an annoyance message. I usually see this after I'm manually priming the extruder, and then run my macro to set the filament position prior to starting a print job.

      Duet 3 Mini 5+ Mini5plus 3.5.1
      Duet Software Framework DSF 3.5.1
      Duet Web Control DWC 3.5.1
      PanelDue 3.5.0 (4-wire connection only)

      And yes, I am running a Duet 3 Mini 5+ in SBC mode with a PanelDue. I like the responsiveness of DWC from a Raspberry Pi 4, and the flexibility of going wired or wireless without any config change. It's also very interesting that the PanelDue can see and control the Duet 3 Mini 5+ even after I command the SBC to shutdown, but all the config is on the Raspberry Pi 4 with no MicroSD card in the Duet 3.

      I've also seen the occasional message about slowing polling down, but that's only on the console of the PanelDue and not a pop-up message.

      posted in PanelDue
      PDBealundefined
      PDBeal
    • RE: DOA PanelDue V3?

      @Phaedrux Email sent and Filastruder copied. Thanks!

      posted in PanelDue
      PDBealundefined
      PDBeal
    • RE: DOA PanelDue V3?

      @droftarts

      Tried the following firmware files:
      https://github.com/Duet3D/PanelDueFirmware/releases/download/3.5.0/PanelDueFirmware-3.5.0-v3-7.0.bin
      https://github.com/Duet3D/PanelDueFirmware/releases/download/3.4.1/PanelDueFirmware-3.4.1-v3-7.0.bin
      https://github.com/Duet3D/PanelDueFirmware/releases/download/3.4.0/PanelDueFirmware-3.4.0-v3-7.0.bin
      https://github.com/Duet3D/PanelDueFirmware/releases/download/1.25.0/PanelDueFirmware-v3-7.0-nologo.bin

      I even tried a V2 firmware just to see if it acted any differently.
      https://github.com/Duet3D/PanelDueFirmware/releases/download/3.5.0/PanelDueFirmware-3.5.0-v2-7.0.bin

      I also tried a 7.0c version. This one didn't blink anything on my LCD which I wouldn't expect it to, but figured it was worth a try.
      https://github.com/Duet3D/PanelDueFirmware/releases/download/3.4.0/PanelDueFirmware-3.4.0-v3-7.0c.bin

      I also tried the other resolution ones to see if there was a difference.
      https://github.com/Duet3D/PanelDueFirmware/releases/download/3.5.0/PanelDueFirmware-3.5.0-v3-5.0.bin
      https://github.com/Duet3D/PanelDueFirmware/releases/download/3.5.0/PanelDueFirmware-3.5.0-v3-4.3.bin

      BOSSAC flashes them all without issue, but nothing ever shows up on the LCD screen. Even just plugging in the USB cable to power the screen, the V3 PanelDue does not work.

      I even tried flashing with BOSSAC on my Macbook Air and my Windows 11 PC, both using V1.9.1.

      The LCD and the 4-pin cable work with the old V1.1 board, but not with this new V3 board. I'm wondering if this is a D.O.A. V3 PanelDue. It was still sealed in a pink bag prior to me connecting my LCD and flashing the firmware over USB the first time.

      posted in PanelDue
      PDBealundefined
      PDBeal
    • RE: M950 with Expansion Boards, odd config required on part coolers

      @droftarts
      I can try put my Flea-Scope on it and see if it can see any differences.

      Although, with all of these boards being brand new and only in operation a week or so, I wouldn't expect it to have a failed part already unless defective from the start.

      posted in Tuning and tweaking
      PDBealundefined
      PDBeal
    • RE: DOA PanelDue V3?

      @droftarts The cabling works if I replace the V3 board with the older V1.1 board.

      posted in PanelDue
      PDBealundefined
      PDBeal
    • M950 with Expansion Boards, odd config required on part coolers

      So I noticed a strange issue with my Part Cooler Fans that are all connected to the Duet3 3HC Expansion boards. All of my part coolers are connected to 1.out3/1.out4/2.out3/2.out4 respectively and are all plain 2-wire 24V DC 5015 Blower (technically 2 identical blowers on a y-cable) The blowers are specifically https://www.digikey.com/en/products/detail/mechatronics-fan-group/B5015E24B-BSR/5209731, and I have 8 of them with 2 per tool head.

      And for some detail, the relevant sections of my config.g file:

      ; Tool 0 (Autotune - M303 T0 S275)
      M950 H1 C"1.out0" T1                ; create heater #1
      M143 H1 P0 T1 C0 S300 A0            ; configure heater monitor #1 for heater #1
      M307 H1 R3.284 K0.589:0.183 D1.93 E1.35 S1.00 B0 V24.2  ; from pid tuning
      
      ; Tool 0 Fans
      M950 F0 C"1.out6"                     ; create fan #0
      M106 P0 S255 H1 T45 C"HotendFan0"     ; configure fan #0
      M950 F1 C"1.out3" Q10000              ; create fan #1
      M106 P1 S0 H-1 C"PartCooler0"         ; configure fan #1
      
      ; Tool 1 (Autotune - M303 T1 S275)
      M950 H2 C"1.out1" T2                ; create heater #2
      M143 H2 P0 T2 C0 S300 A0            ; configure heater monitor #2 for heater #2
      M307 H2 R3.714 K0.459:0.277 D1.82 E1.35 S1.00 B0 V24.2  ; from pid tuning
      
      ; Tool 1 Fans
      M950 F2 C"1.out7"                     ; create fan #2
      M106 P2 S255 H2 T45 C"HotendFan1"     ; configure fan #2
      M950 F3 C"1.out4" Q25000              ; create fan #3
      M106 P3 S0 H-1 C"PartCooler1"         ; configure fan #3
      
      ; Tool 2 (Autotune - M303 T2 S275)
      M950 H3 C"2.out0" T3                ; create heater #3
      M143 H3 P0 T3 C0 S300 A0            ; configure heater monitor #3 for heater #3
      M307 H3 R3.458 K0.551:0.199 D1.96 E1.35 S1.00 B0 V24.2  ; from pid tuning
      
      ; Tool 2 Fans
      M950 F4 C"2.out6"                     ; create fan #4
      M106 P4 S255 H3 T45 C"HotendFan2"     ; configure fan #4
      M950 F5 C"2.out3" Q25000              ; create fan #5
      M106 P5 S0 H-1 C"PartCooler2"         ; configure fan #5
      
      ; Tool 3 (Autotune - M303 T3 S275)
      M950 H4 C"2.out1" T4                ; create heater #4
      M143 H4 P0 T4 C0 S300 A0            ; configure heater monitor #4 for heater #4
      M307 H4 R3.209 K0.533:0.229 D1.99 E1.35 S1.00 B0 V24.2  ; from pid tuning
      
      ; Tool 3 Fans
      M950 F6 C"2.out7"                     ; create fan #6
      M106 P6 S255 H4 T45 C"HotendFan3"     ; configure fan #6
      M950 F7 C"2.out4" Q25000              ; create fan #7
      M106 P7 S0 H-1 C"PartCooler3"         ; configure fan #7
      
      
      ; Tool definitions
      ;-------------------------------------------------------------------------------
      M563 P0 S"Tool 0" D0 H1 F1
      M563 P1 S"Tool 1" D1 H2 F3
      M563 P2 S"Tool 2" D2 H3 F5
      M563 P3 S"Tool 3" D3 H4 F7
      
      G10  P0 S0 R0               ; Set tool 0 operating and standby temperatures
      G10  P1 S0 R0               ; Set tool 1 operating and standby temperatures
      G10  P2 S0 R0               ; Set tool 2 operating and standby temperatures
      G10  P3 S0 R0               ; Set tool 3 operating and standby temperatures
      
      ; Filament Sensor
      M591 D0 P1 C"1.io0.in" S0   ; Simple filament sensor on toolboard 1 in0, disabled, output low when no filament
      M591 D1 P1 C"1.io1.in" S0   ; Simple filament sensor on toolboard 1 in1, disabled, output low when no filament
      M591 D2 P1 C"2.io0.in" S0   ; Simple filament sensor on toolboard 2 in0, disabled, output low when no filament
      M591 D3 P1 C"2.io1.in" S0   ; Simple filament sensor on toolboard 2 in2, disabled, output low when no filament
      
      

      The blowers that are connected to 1.out3 work with M950 using Q10000, but the other blowers connected to 1.out4 and 2.out3 and 2.out4 all needed Q25000. If I used Q10000 across all the PartCoolers, they would not run at 5% and only started blowing at 40% except the blowers connected to 1.out3 would run at 1% with Q10000. I had to change 1.out4, 2.out3, and 2.out4 to use Q25000 before the behaviors matched the blower connected to 1.out3 (I did try Q15000, but it didn't push the same amount of air until it was at Q25000 against my un-calibrated hand)

      It also doesn't seem to matter which blowers I plugged into 1.out3. They would operate without issue with Q10000 and actually pushed too much air if it ran at Q25000.

      I have my setup working, but with this weird difference on 1.out3 compared to the other outputs I figured I should at least report it incase there is a bug in the firmware that is causing this. Or if I have something odd in my blower configuration that's causing this I'd like to know also. I can also upload the entire config if necessary.

      The Mainboard is a Duet3 6HC with SBC and (2) Duet3 3HC expansion boards on CAN1 and CAN2. All are running 3.5.1 firmware files with 3.5.1 DWC.

      posted in Tuning and tweaking
      PDBealundefined
      PDBeal
    • RE: DOA PanelDue V3?

      @Phaedrux

      No, It's just the PanelDue V3 board, not the Integrated displays.

      https://github.com/Duet3D/PanelDueFirmware/releases/download/3.5.0/PanelDueFirmware-3.5.0-v3-7.0.bin was the file I flashed to the new V3 PanelDue Board.

      No, even just connecting the 7" LCD and the PanelDue to the USB cable on my laptop and disconnecting the 4-wire cable, it doesn't display anything.

      I can try older firmware files, but I've used this firmware file on my other 7" LCD with V3 PanelDue (although that was upgraded through DWC several times)

      posted in PanelDue
      PDBealundefined
      PDBeal
    • DOA PanelDue V3?

      I recently purchased a new PanelDue V3 board from Filastruder for my existing PanelDue that was currently using a V1.1 board. The PanelDue V1.1 has been working with my Duet 0.8.5 controller since I built the machine before Duet2 boards were even available and the only reason I purchased a newer PanelDue V3 board was to move this PanelDue display to my newest tool changer machine that has the Duet3 6HC board.

      I flashed the firmware for 3.5.0 for the 7" V3 board and plugged the PanelDue into my display. When I turn the machine on, the screen flashes white, and then subsequently has a single line of white near the top of the screen that just flashes. If I plug the V1.1 board into the 7" Screen it all works without issue. Same 4-pin cable, same 7" screen, except it's stuck on V1.24 firmware since it's a V1.1 PanelDue.

      Bossac seems to be capable of flashing firmware over USB to this PanelDue V3 board, but it just does not work with my existing 7" LCD. I'm using the 4-pin connector on IO_0. It works with my V1.1 board, just not this new V3 board. The original V1.1 board, the new V3 board, and the 7" LCD screen were all purchased from Filastruder with the V3 board being purchased a few weeks ago and the existing items back in 2016.

      What other troubleshooting steps do I need to take before I reach out to Filastruder for a replacement board?

      posted in PanelDue
      PDBealundefined
      PDBeal
    • RE: Conditional Code Based on temperature

      @deckingman said in Conditional Code Based on temperature:
      Not specifically. I was looking for something that would return true if M116 P0 was satisified that I could then check with a minimum setpoint for extrusion.

      I have what I want working now, although having to proceed all defined variables with "var." was interesting. I saw that in the documentation, but it didn't click till I tried to run my gcode files.

      In the end, this is what I came up with if anyone else needs something like this in the future and it works for my intended purposes without interfering with manual tool changes.

      tretract.g

      ; tretract.g
      ; This will retract filament from the heatzone on tool change if printing and at temperature
      ;
      ; Variable details
      ;------------------------------------------------------------------------------------
      ; state.currentTool - Number of the currently selected tool or -1 if none is selected
      ; tools[].heaters[] - List of associated heaters (indices)
      ; heat.heaters[].state == "active"
      ; heat.heaters[].active - Active temperature of the heater (in C)
      ; heat.heaters[].current - Current temperature of the heater (in C)
      ; heat.coldExtrudeTemperature - Minimum required temperature for extrusion moves (in C)
      ; heat.coldRetractTemperature - Minimum required temperature for retraction moves (in C)
      
      M116 P0                    ; Wait for set temperatures to be reached
      M302 P0                    ; Prevent Cold Extrudes, just in case temp setpoints are at 0
      
      var tool = state.currentTool;
      var heater = tools[var.tool].heaters[0];
      var minPrintTemp = max(heat.coldExtrudeTemperature, heat.coldRetractTemperature);
      var curPrintTempTol = 5;
      var curTemp = heat.heaters[var.heater].current;
      var minActiveTemp = heat.heaters[var.heater].active - var.curPrintTempTol;
      var isActive = heat.heaters[var.heater].state == "active";
      
      if state.status == "processing"
        if var.curTemp > var.minActiveTemp && var.curTemp > var.minPrintTemp && var.isActive
          M83                          ; Relative extrusion mode
          G1 E-18 F800                 ; retract 18mm filament
      

      tprime.g

      ; tprime.g
      ; This will prime the heatzone on tool change if printing and at temperature
      ;
      ; Variable details
      ;------------------------------------------------------------------------------------
      ; state.currentTool - Number of the currently selected tool or -1 if none is selected
      ; tools[].heaters[] - List of associated heaters (indices)
      ; heat.heaters[].state == "active"
      ; heat.heaters[].active - Active temperature of the heater (in C)
      ; heat.heaters[].current - Current temperature of the heater (in C)
      ; heat.coldExtrudeTemperature - Minimum required temperature for extrusion moves (in C)
      ; heat.coldRetractTemperature - Minimum required temperature for retraction moves (in C)
       
      M116 P0                    ; Wait for set temperatures to be reached
      M302 P0                    ; Prevent Cold Extrudes, just in case temp setpoints are at 0
      
      var tool = state.currentTool;
      var heater = tools[var.tool].heaters[0];
      var minPrintTemp = max(heat.coldExtrudeTemperature, heat.coldRetractTemperature);
      var curPrintTempTol = 5;
      var curTemp = heat.heaters[var.heater].current;
      var minActiveTemp = heat.heaters[var.heater].active - var.curPrintTempTol;
      var isActive = heat.heaters[var.heater].state == "active";
      
      if state.status == "processing"
        if var.curTemp > var.minActiveTemp && var.curTemp > var.minPrintTemp && var.isActive
          M83                          ; Relative extrusion mode
          G1 E20 F800                  ; prime 20mm filament
      

      And I just use this in my postX.g files

      ; tpost0.g
      ; called after firmware thinks Tool0 is selected
      ; Note: tool offsets are applied at this point!
      ; Note that commands preempted with G53 will NOT apply the tool offset.
      
      M116 P0                    ; Wait for set temperatures to be reached
      M302 P0                    ; Prevent Cold Extrudes, just in case temp setpoints are at 0
      
      G90                        ; Ensure the machine is in absolute mode before issuing movements.
      
      G53 G1 Y-40 F6000          ; Move to the pickup position with tool-0.
      M98 P"/macros/tool_lock.g" ; Lock the tool
      M98 P"/sys/tprime.g"       ; prime filament into the heatzone
      G53 G1 Y-5 F6000           ; Move off the parking posts
      
      M591 D0 S1                 ; Enable filament sensor
      
      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 R0 Y0                   ; Retract tool by restoring Y position next now accounting for new tool offset.
                                 ; Restoring Y next ensures the tool is fully removed from parking post.
      G1 R0 X0                   ; Restore X position now accounting for new tool offset.
      M106 R2                    ; restore print cooling fan speed
      
      

      And this in my tfreeX.g files

      ; 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!
      
      G91                          ; Relative Mode.
      G1 Z2                        ; Pop Z up slightly so we don't crash while traveling over the usable bed region.
      G90                          ; Absolute Mode.
      
      G53 G0 X11 Y5 F12000         ; Rapid to the back of the post. Stay away from the tool rack so we don't collide with tools.
      ;                            ; This position must be chosen such that the most protruding y face of the current tool
      ;                            ; (while on the carriage) does not collide with the most protruding y face of any parked tool.
      
      M98 P"/sys/tretract.g"       ; retract filament out of heatzone
      
      M591 D0 S0                   ; Disable filament sensor
      
      G53 G1 Y-40 F6000            ; Controlled move to the park position with tool-1. (park_x, park_y)
      M98 P"/macros/tool_unlock.g" ; Unlock the tool
      G53 G1 Y-5 F6000             ; Retract the pin.
      
      
      posted in Gcode meta commands
      PDBealundefined
      PDBeal
    • RE: Conditional Code Based on temperature

      So, after reading through some of the object model documentation, I think I'm going to try it with this section tonight and see if I get the desired behavior. I just wish there was an easier way to duplicate a similar behavior to M116 and check the temp is above cold extrusion.

      ; state.currentTool - Number of the currently selected tool or -1 if none is selected
      ; tools[].heaters[] - List of associated heaters (indices)
      ; heat.heaters[].state == "active"
      ; heat.heaters[].active - Active temperature of the heater (in C)
      ; heat.heaters[].current - Current temperature of the heater (in C)
      ; heat.coldExtrudeTemperature - Minimum required temperature for extrusion moves (in C)
      ; heat.coldRetractTemperature - Minimum required temperature for retraction moves (in C)
      
      var tool = state.currentTool;
      var heater = tools[tool].heaters[0];
      var minPrintTemp = max(heat.coldExtrudeTemperature, heat.coldRetractTemperature);
      var curPrintTempTol = 5;
      var curTemp = heat.heaters[heater].current;
      var minActiveTemp = heat.heaters[heater].active - curPrintTempTol;
      var isActive = heat.heaters[heater].state == "active";
      
      if state.status == "processing"
        if curTemp > minActiveTemp && curTemp > minPrintTemp && isActive
          M83                          ; Relative extrusion mode
          G1 E-18 F800                 ; retract 18mm filament
      
      

      But, one question regarding the use of var. If I define a var in a macro such as the tool change macro. Since it is only local to my tool change, I can basically use the same var/code in all my tool change macros. If that's true, then the above code will become it's own macro that'll becalled from the tool change macros to reduce the amount of copied code.

      posted in Gcode meta commands
      PDBealundefined
      PDBeal
    • Conditional Code Based on temperature

      So, I've just finished building a Jubilee Tool Changer with 4 tools. On my single nozzle machines, I usually have a prime and retract command to pull and push the filament through the Revo nozzle to prevent oozing when it starts and stops. I'd like to do something similar with my Jubilee Tool Changer printer.

      It normally goes something like this for retract

      M83                          ; Relative extrusion mode
      G1 E-18 F800                 ; retract 18mm filament
      

      and then this for priming.

      M83                         ; Relative extrusion mode
      G1 E18 F800                 ; prime 18mm filament
      

      I have the tfreeX.g, tpreX.g, tpostX.g files for each tool to dock and undock, but experimenting with PrusaSlicer trying to make it do it through start code and tool change code doesn't work well if I don't start with T0.

      So, is there any way to check the tool is active, at active temperature, and currently printing a file within my tfreeX.g for a retract something like:

      ; 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!
      
      G91                          ; Relative Mode.
      G1 Z2                        ; Pop Z up slightly so we don't crash while traveling over the usable bed region.
      G90                          ; Absolute Mode.
      
      G53 G0 X11 Y5 F12000         ; Rapid to the back of the post. Stay away from the tool rack so we don't collide with tools.
      ;                            ; This position must be chosen such that the most protruding y face of the current tool
      ;                            ; (while on the carriage) does not collide with the most protruding y face of any parked tool.
      
      if job.file.fileName!=null
        if heat.heaters[1].current = heat.heaters[1].active
          M83                          ; Relative extrusion mode
          G1 E-18 F800                 ; retract 18mm filament
      
      M591 D0 S0                   ; Disable filament sensor
      
      G53 G1 Y-40 F6000            ; Controlled move to the park position with tool-1. (park_x, park_y)
      M98 P"/macros/tool_unlock.g" ; Unlock the tool
      G53 G1 Y-5 F6000             ; Retract the pin.
      

      And then something like this for initial tool pickup and prime

      ; tpost0.g
      ; called after firmware thinks Tool0 is selected
      ; Note: tool offsets are applied at this point!
      ; Note that commands preempted with G53 will NOT apply the tool offset.
      
      M116 P0                    ; Wait for set temperatures to be reached
      M302 P0                    ; Prevent Cold Extrudes, just in case temp setpoints are at 0
      
      G90                        ; Ensure the machine is in absolute mode before issuing movements.
      
      G53 G1 Y-40 F6000          ; Move to the pickup position with tool-0.
      M98 P"/macros/tool_lock.g" ; Lock the tool
      
      if job.file.fileName!=null
        if heat.heaters[1].current = heat.heaters[1].active
          M83                         ; Relative extrusion mode
          G1 E18 F800                 ; prime 18mm filament
      
      G53 G1 Y-5 F6000           ; Move off the parking posts
      
      M591 D0 S1                 ; Enable filament sensor
      
      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 R0 Y0                   ; Retract tool by restoring Y position next now accounting for new tool offset.
                                 ; Restoring Y next ensures the tool is fully removed from parking post.
      G1 R0 X0                   ; Restore X position now accounting for new tool offset.
      M106 R2                    ; restore print cooling fan speed
      

      Is there a way to check the tool is at or close to active temperatures? And that those temperatures aren't below the cold extrusion? Something like what M116 does, but in an if statement? I know I could do this without the if statements, but I'd rather avoid the warning messages when I'm manually changing tools not in a print or not at temperature. That's partly why I enable/disable the filament sensor for the tool change.

      posted in Gcode meta commands
      PDBealundefined
      PDBeal
    • RE: Software 3.5.1 released

      Will there be a PanelDue release to coincide with 3.5.1, or is it only ever going to be release candidates from this point forward?

      It appears as though the PanelDue has been left behind in leu of running a SBC these days. I'm actually wondering about doing exactly this with all my other machines based on how it seems to work with the newest one I am building now.

      posted in Firmware installation
      PDBealundefined
      PDBeal
    • RE: DuetPi Bookworm builds featuring v3.5.1 stable now available

      @chrishamm I noticed this new DuetPi image still uses the unstable repo for Duet files. Not a huge deal as I just pointed mine back to stable, but I'm assuming it might be an oversight in your images.

      posted in Firmware installation
      PDBealundefined
      PDBeal
    • DuetPi Management Plugin download location?

      Is there a download location for the DuetPi Management Plugin? I see the source on the GitHub link https://github.com/Duet3D/DuetSoftwareFramework/tree/master/src/DuetPiManagementPlugin with vague instructions about building with dotnet and zipping a folder. Or is this something that should be installed with apt?

      There is only a brief mention of it on https://docs.duet3d.com/User_manual/Machine_configuration/DSF_Other, but no explanation of where to get it from. Is it supposed to be installed with duetsoftwareframework or is it an addon? I don't see it on my DWC for plugins or external plugins.

      posted in Plugins for DWC and DSF
      PDBealundefined
      PDBeal
    • RE: Safe to update Raspbian version?

      So, I really don't like the idea of using the rc versions with past experiences. So instead of installed a fresh version of Raspbian Bookworm and then followed https://docs.duet3d.com/User_manual/Machine_configuration/DSF_Other.

      The only difference here is the spi configuration appears to have changed. The /etc/modprobe.d/spidev.conf doesn't seem to be applied. So I deleted that file and added spidev.bufsize=8192 to the /boot/firmware/cmdline.txt file instead and it all works.

      Still have to setup the auto launch chromium full screen, but thats not a big deal.

      It does appear that 3.4.6 works just fine with Rasbian Bookworm.

      posted in Firmware installation
      PDBealundefined
      PDBeal