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

    Wrong return point after tool change

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    3
    10
    429
    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.
    • TCundefined
      TC
      last edited by

      Hi, I am doing first prints with my new tool changer but i dont understand the behavior of the tool change procedure. The new tool allways returns to the point the other tool left the print and contaminates it with its color. It is doing it automatically, I have no such command in my tpost file. I want it to go directly to the point it is supposed to start printing... is there a wa to achieve that?

      dc42undefined 1 Reply Last reply Reply Quote 0
      • Phaedruxundefined
        Phaedrux Moderator
        last edited by

        Can you post your config.g and tool change files? What slicer are you using?

        Z-Bot CoreXY Build | Thingiverse Profile

        TCundefined 1 Reply Last reply Reply Quote 0
        • TCundefined
          TC
          last edited by

          Sure, would be awsome if you find something. I am a little under time pressure here šŸ˜‰

          ; Configuration file for Duet WiFi (firmware version 3)
          ; executed by the firmware on start-up
          ;
          ; generated by RepRapFirmware Configuration Tool v3.1.4 on Fri Sep 25 2020 15:34:47 GMT+0200 (MitteleuropƤische Sommerzeit)
          
          ; General preferences
          G90                                            ; send absolute coordinates...
          M83                                            ; ...but relative extruder moves
          M550 P"Hydra TC One"                           ; set printer name
          M669 K1                                        ; select CoreXY mode
          
          ; Network
          M551 P"LivMatS"                                ; set password
          M540 PBE:78:4F:38:52:3A
          M552 S1 P0.0.0.0	                           ; enable network and set IP address
          M553 P255.255.255.0                            ; set netmask
          M554 P10.5.154.254                            ; set gateway
          M586 P0 S1                                     ; enable HTTP
          M586 P1 S0                                     ; disable FTP
          M586 P2 S0                                     ; disable Telnet
          
          ; Drives
          M569 P0 S1                                     ; physical drive 0 goes forwards
          M569 P1 S1                                     ; physical drive 1 goes forwards
          M569 P2 S0                                     ; physical drive 2 goes backwords
          M569 P3 S1                                     ; physical drive 3 goes forwards
          M569 P5 S1                                     ; physical drive 3 goes forwards
          M569 P6 S1                                     ; physical drive 3 goes forwards
          
          M584 X0 Y1 Z2 C3 E5:6                              ; set drive mapping
          M350 X16 Y16 Z16 C16 E16:16 I1                        ; configure microstepping with interpolation
          M92 X100.00 Y100.00 Z400.00 C1312.36 E370.00:370.00          ; set steps per mm
          
          M566 X900.00 Y900.00 Z12.00 C900.00 E120:120           ; set maximum instantaneous speed changes (mm/min)
          M203 X6000.00 Y6000.00 Z1000.00 C600.00 E1200:1200        ; set maximum speeds (mm/min)
          M201 X500.00 Y500.00 Z20.00 C100.00 E250:250           ; set accelerations (mm/s^2)
          M906 X1200 Y1200 Z1450 C1200 E1200:1200 I100               ; set motor currents (mA) and motor idle factor in per cent
          ;M84 S30                                        ; Set idle timeout
          
          ; Axis Limits
          M208 X0 Y0 Z-1 C0 S1                               ; set axis minima
          M208 X305 Y260 Z350 C50 S0                         ; set axis maxima
          ;M208 C50 S0				                         ; set axis maxima
          
          ; Endstops
          M574 X1 S3                                     ; configure sensorless endstop for low end on X
          M574 Y2 S3                                     ; configure sensorless endstop for high end on Y
          M574 Z1 S2           			               ; configure sensorless endstop for low end on Z
          M574 C1 S3                                     ; configure sensorless endstop for low end on U
          M915 X R1 F0 S4
          M915 Y R1 F0 S4
          ;M915 Z R1 F0 S3
          M915 C R1 F0 S4
          
          ; Z-Probe
          M558 P1 C"!zprobe.in" R1.0 H3.0 T4000 F200 A6 S0.02
          ;M558 P0 H5 F120 T6000                         ; disable Z probe but set dive height, probe speed and travel speed
          M557 X{move.axes[0].min + 10}:{move.axes[0].max - 10} Y{move.axes[1].min + 10}:{move.axes[1].max -10} P3                      ; define mesh grid
          G31 P500 Z0.0
          
          ; Heaters
          M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
          M950 H0 C"bedheat" T0                          ; create bed heater output on bedheat and map it to sensor 0
          M307 H0 A176.8 B1 C500.5 D1.7 S1.00 V24.1
          M140 H0                                        ; map heated bed to heater 0
          M143 H0 S120                                   ; set temperature limit for heater 0 to 120C
          
          M308 S1 P"exp.thermistor3" Y"thermistor" T100000 B4138  ; configure sensor 1 as thermistor on pin e0temp
          M950 H1 C"duex.e2heat" T1                           ; create nozzle heater output on e0heat and map it to sensor 1
          M307 H1 A480.5 B0 C213.4 D5.7 S1.00 V24.1
          
          M308 S2 P"exp.thermistor4" Y"thermistor" T100000 B4138  ; configure sensor 1 as thermistor on pin e0temp
          M950 H2 C"duex.e3heat" T2                           ; create nozzle heater output on e0heat and map it to sensor 1
          M307 H2 A480.5 B0 C213.4 D5.7 S1.00 V24.1
          
          ; Fans
          M950 F0 C"fan0" Q500                           ; create fan 0 on pin fan0 and set its frequency
          M106 P0 S0 H-1                                 ; set fan 0 value. Thermostatic control is turned off
          M950 F1 C"duex.fan3" Q500                           ; create fan 1 on pin fan1 and set its frequency
          M106 P1 S1 H1 T45                              ; set fan 1 value. Thermostatic control is turned on
          M950 F2 C"duex.fan4" Q500                           ; create fan 1 on pin fan1 and set its frequency
          M106 P2 S1 H2 T45                              ; set fan 1 value. Thermostatic control is turned on
          
          ; Tools
          M563 P0 D1 H1 F0                               ; define tool 0
          G10 P0 X0 Y0 Z0                                ; set tool 0 axis offsets
          G10 P0 R0 S0                                   ; set initial tool 0 active and standby temperatures to 0C
          
          M563 P1 D0 H2 F0                               ; define tool 0
          ;G10 P1 X0 Y0 Z0                                ; set tool 0 axis offsets
          G10 P1 R0 S0                                   ; set initial tool 0 active and standby temperatures to 0C
          
          ; Custom settings are not defined
          
          ; Miscellaneous
          M950 J0 C"^!zstop"
          
          M501                                           ; load saved parameters from non-volatile memory
          T0 P0
          T1 P0
          T-1 P0                                         ; deselect tool
          
          G29 S1
          
          if sensors.gpIn[0].value == 1
          	M291 P"Attached tool detected - please select in DWC" R"Warning" S2
          
          ; tfree1.g
          ; called when tool 1 is freed
          ;
          ; generated by RepRapFirmware Configuration Tool v3.1.4 on Fri Sep 25 2020 15:34:48 GMT+0200 (MitteleuropƤische Sommerzeit)	
          
          G1 C0 F600
          
          G91
          G1 Z5 F1000
          G90
          
          G53 G1 X47.7 Y0 F4000
          
          M400
          
          M208 S1 Y-70
          
          G1 Y-70 F3000
          
          M98 P"release_tool.g"
          
          M208 S1 Y0
          
          
          ; tpost1.g
          ; called after tool 1 has been selected
          ;
          ; generated by RepRapFirmware Configuration Tool v3.1.4 on Fri Sep 25 2020 15:34:48 GMT+0200 (MitteleuropƤische Sommerzeit)
          ; Wait for set temperatures to be reached
          
          if sensors.gpIn[0].value == 1 && state.previousTool == -1 && state.status != "processing"
          	abort "Tool selected without change procedure"   
              
          G1 C0 F600
          
          G91
          G1 Z5 F1000
          G90
          
          G1 X47.7 Y0 F4000
          
          M208 S1 Y-70
          
          G1 Y-70 F3000
          
          M98 P"pick_tool.g"
          
          G1 Y0 F4000
          
          M208 S1 Y0
          ;M208 S1 Z{-tools[0].offsets[2]}
          
          if sensors.gpIn[0].value != 1
          	M25
          
          if state.status == "processing" && sensors.gpIn[0].value == 1
          	M98 P"wipe_tool.g"
          	G1 R2 X0 Y0 Z20 F4000
          	
          
          Phaedruxundefined 1 Reply Last reply Reply Quote 0
          • TCundefined
            TC @Phaedrux
            last edited by

            @Phaedrux it is supposed to go back 20mm above the print and then it should go directly to the new starting point

            1 Reply Last reply Reply Quote 0
            • Phaedruxundefined
              Phaedrux Moderator @TC
              last edited by Phaedrux

              @TC said in Wrong return point after tool change:

              M563 P1 D0 H2 F0 ; define tool 0 ;G10 P1 X0 Y0 Z0 ; set tool 0 axis offsets

              Why do you have the tool offset for T1 commented out?

              @TC said in Wrong return point after tool change:

              G29 S1

              You should not load the heightmap in config.g because your z0 datum has not been established at power on. This can lead to unintended offsets.

              Can you also share the macros called in your tool change files?

              Also please the results of M122 to show me hardware and firmware combo.

              Can you also describe what your conditional gcode is doing?

              Z-Bot CoreXY Build | Thingiverse Profile

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

                @TC said in Wrong return point after tool change:

                I want it to go directly to the point it is supposed to start printing... is there a wa to achieve that?

                Not currently, because when the slicer issues the T command, the firmware doesn't know where that point will be, or whether the slicer will issue a travel move at all before printing again.

                It's usual to retract some filament when a tool has finished being used (in the tfree file), and re-prime it just before printing again (in the tpost file). If there has been significant oozing, then you may need to wipe the tool after re-priming.

                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

                TCundefined 2 Replies Last reply Reply Quote 0
                • TCundefined
                  TC @dc42
                  last edited by

                  @dc42 Ah thanks David. It would be great if the firmware could just know the next G1 command allready in the tpost.g file. That would solve the problem. I am doing it as you described. I even have a cleaning station but I am printing Pla combined with extremly flexible TPU so the ozzing is a serious problem.

                  dc42undefined 1 Reply Last reply Reply Quote 0
                  • TCundefined
                    TC @dc42
                    last edited by

                    @dc42 But is there a way to stop the printer from going back to restore point automatically?

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

                      @TC said in Wrong return point after tool change:

                      @dc42 Ah thanks David. It would be great if the firmware could just know the next G1 command allready in the tpost.g file. That would solve the problem. I am doing it as you described. I even have a cleaning station but I am printing Pla combined with extremly flexible TPU so the ozzing is a serious problem.

                      To minimize oozing I suggest the following in the tpost#.g file:

                      • prime nozzle
                      • wipe nozzle
                      • retract
                      • move explicitly to just above the resume point using G1 R2 X0 Y0 Z2
                      • prime (i.e. undo the retract)

                      This won't do exactly what you are looking for, but at least it will delay the reprime until after moving to the resume point.

                      Are you using firmware retraction? If so then I could add a feature whereby if a G10 command occurs during a tpost file and it is not undone with G11, then G11 is inserted immediately before the first extruding move.

                      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

                      TCundefined 1 Reply Last reply Reply Quote 0
                      • TCundefined
                        TC @dc42
                        last edited by

                        @dc42 Ah that is a nice idea. What would be the best way to store this information about a former retraction in RRF 3.1.1?

                        And are there more than 3 restore points? if so I could save the last position for each tool so it could go back to where this exact tool left the print last time.

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