• Tags
  • Documentation
  • Order
  • Register
  • Login
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.
  • undefined
    TC
    last edited by 14 Oct 2020, 17:49

    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?

    undefined 1 Reply Last reply 14 Oct 2020, 20:39 Reply Quote 0
    • undefined
      Phaedrux Moderator
      last edited by 14 Oct 2020, 17:59

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

      Z-Bot CoreXY Build | Thingiverse Profile

      undefined 1 Reply Last reply 14 Oct 2020, 18:44 Reply Quote 0
      • undefined
        TC
        last edited by 14 Oct 2020, 18:43

        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
        undefined 1 Reply Last reply 14 Oct 2020, 20:26 Reply Quote 0
        • undefined
          TC @Phaedrux
          last edited by 14 Oct 2020, 18:44

          @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
          • undefined
            Phaedrux Moderator @TC
            last edited by Phaedrux 14 Oct 2020, 20:26

            @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
            • undefined
              dc42 administrators @TC
              last edited by 14 Oct 2020, 20:39

              @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

              undefined 2 Replies Last reply 15 Oct 2020, 09:16 Reply Quote 0
              • undefined
                TC @dc42
                last edited by 15 Oct 2020, 09:16

                @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.

                undefined 1 Reply Last reply 15 Oct 2020, 09:24 Reply Quote 0
                • undefined
                  TC @dc42
                  last edited by 15 Oct 2020, 09:20

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

                  1 Reply Last reply Reply Quote 0
                  • undefined
                    dc42 administrators @TC
                    last edited by 15 Oct 2020, 09:24

                    @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

                    undefined 1 Reply Last reply 15 Oct 2020, 09:29 Reply Quote 0
                    • undefined
                      TC @dc42
                      last edited by 15 Oct 2020, 09:29

                      @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
                      10 out of 10
                      • First post
                        10/10
                        Last post
                      Unless otherwise noted, all forum content is licensed under CC-BY-SA