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

    CoreXYU second extruder offset and stuttering

    Scheduled Pinned Locked Moved
    General Discussion
    4
    12
    487
    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.
    • sharcticundefined
      sharctic
      last edited by

      config.g

      ; General preferences
      G21 ; Work in millimetres
      G90 ; Send absolute coordinates...
      M83 ; ...but relative extruder moves

      M669 K5 ; Select CoreXYU mode

      ; Network
      M550 P"My Printer" ; Set machine name
      M552 S1 ; Enable network
      ;*** Access point is configured manually via M587
      M586 P0 S1 ; Enable HTTP
      M586 P1 S0 ; Disable FTP
      M586 P2 S0 ; Disable Telnet

      ; Axis, endstop and motor configuration
      M584 X0 Y1 Z2 U3 V4 E5:6 ; Set up steppers for x, y, u, v, z and e
      M574 X2 Y1 Z1 U1 S1 ; set endstop configuration. X endstop at max, Y and U and Z at min, all NO active low (S0)

      ; Core xyu + axis limits
      M669 K5 ; Select CoreXYU mode
      M208 X0 Y0 U-89 V0 Z-0.5 S1 ; Set axis minima
      M208 X389 Y300 U300 V389 Z300 S0 ; Set axis maxima

      ; Drives
      M569 P0 S0 ; Physical drive 0 goes forwards X
      M569 P1 S1 ; Physical drive 1 goes forwards Y
      M569 P2 S0 ; Physical drive 2 goes forwards Z
      M569 P3 S1 ; Physical drive 3 goes forwards E1 aka U
      M569 P4 S0 ; Physical drive 4 goes forwards E2 aka V
      M569 P5 S1 ; Physical drive 5 goes forwards E3 aka Ex1
      M569 P6 S1 ; Physical drive 6 goes forwards E4 aka Ex2

      M350 X16 Y16 U16 V16 Z16 E16:16 I1 ; Configure microstepping with interpolation
      M92 X66.67 Y66.67 U66.67 V66.67 Z1600 E678:678 ; Set steps per mm
      M566 X20 Y20 U20 V20 Z15 E120:120 ; Set maximum instantaneous speed changes (mm/min)
      M203 X12000 Y12000 U12000 V12000 Z350 E2100:2100 ; Set maximum speeds (mm/min)
      M201 X3000 Y3000 U3000 V3000 Z75 E250:250 ; Set accelerations (mm/s^2)
      M906 X2200 Y2200 U2200 V2200 Z2200 E650:650 I30 ; Set motor currents (mA) and motor idle factor in per cent
      M84 S30 ; Set idle timeout

      ; Z-Probe
      M558 P0 H5 F120 T6000 ; Disable Z probe but set dive height, probe speed and travel speed
      M557 X15:290 Y15:290 S25 ; Define mesh grid

      ; Heaters
      ; Chamber
      M141 H3 ; Assign chamber heater to heater 3
      M305 P3 T100000 B4138 R4700 ; Set thermistor + ADC parameters for heater 3
      M143 H3 S180 ; Set temperature limit for heater 3 to 180C
      ; Bed
      M307 H0 B0 S1.00 ; Disable bang-bang mode for the bed heater and set PWM limit
      M305 P0 T100000 B4138 R4700 ; Set bed thermistor + ADC parameters for heater 0
      M143 H0 S200 ; Set bed temperature limit for heater 0 to 200C
      ; E0
      M307 H1 B0 S1.00 ; Disable bang-bang mode for the E0 heater and set PWM limit
      M305 P1 X200 ; Configure PT100 for heater 1
      M143 H1 S500 ; Set temperature limit for heater 1 to 500C
      ; E1
      M307 H2 B0 S1.00 ; Disable bang-bang mode for the E1 heater and set PWM limit
      M305 P2 X201 ; Configure PT100 for heater 2
      M143 H2 S500 ; Set temperature limit for heater 2 to 500C

      ; Fans
      M106 P0 S0.0 I0 F1000 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
      M106 P1 S0 I0 F500 H-1 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off

      ; Tools
      M563 P0 D0 H1 ; 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 D1 H2 X3 ; Define tool 1 and bind it to U-axis (X3)
      G10 P1 X0 Y0 Z0 ; Set tool 1 axis offsets
      G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C

      ; Automatic power saving
      M911 S16 R25 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss

      ; Custom settings are not configured

      ; Miscellaneous
      M501 ; Load saved parameters from non-volatile memory
      T0 ; Select first tool

      1 Reply Last reply Reply Quote 0
      • sharcticundefined
        sharctic
        last edited by

        I finally found the cause for the stuttering:
        When controlling jerk by Cura (eg 12mm/s) it adds a "M566 X720 Y720" command.
        However for it to work on a the second carriage of a CoreXYU it has to be "M566 X720 Y720 U720 V720".

        At the same time I noticed that in Cura you set jerk in mm/s while the M566 needs a mm/min value, or so I think. So my jerk setting in config.g was totally wrong all the time...

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

          Be sure to set Cura to reprap flavour gcode.

          Z-Bot CoreXY Build | Thingiverse Profile

          1 Reply Last reply Reply Quote 0
          • sharcticundefined
            sharctic
            last edited by

            Yes, I had it set to reprap flavor, however Cura does not know about any U or V axes of the machine. I add the correct jerk settings for U and V manually when a print starts, but maybe there is a better solution? (but I assume this has to be dealt with on the Cura side...)

            Tool offset:
            After further testing I noticed that the tool offset does not work, when the print starts with the second extruder (T1). I can see it immediately from the Z offset.
            Prints that start with the first extruder (T0) work fine, first layer sticks to bed perfectly and when the second extruder (T1) comes into play next, it also has the correct position.
            However when a print starts with the second extruder (T1) the first layer is too high and does not stick to the bed. (Maybe I can work around by babystepping down the Z offset, but thats not a real solution)

            These are my current tool settings in config:
            M563 P0 D0 H1 ; Define tool 0
            G10 P0 X0.10 Y0 Z0 ; Set tool 0 axis offsets
            M563 P1 D1 H2 X3 ; Define tool 1 and bind it to U-axis (X3)
            G10 P1 X0 Y-0.40 Z0.4 ; Set tool 1 axis offsets
            In the homing files for first layer height:
            G1 S1 Z-310 F100 ; move slowly to Z axis endstop once more (second pass)
            G92 Z0.7 ; set Z to axis minimum

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

              You would normally set the M566 jerk settings in config.g, not in the slicer.

              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

              sharcticundefined 1 Reply Last reply Reply Quote 0
              • sharcticundefined
                sharctic @dc42
                last edited by

                @dc42 Yes I set the max jerk in cofig. But I can't get the benefit of slicer jerk control (eg for different materials, detail grades, travel vs drive moves, etc)

                I find it curious that XY speed and XY accelleration applies to a UV tool, but XY jerk does not

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

                  @sharctic said in CoreXYU second extruder offset and stuttering:

                  But I can't get the benefit of slicer jerk control (eg for different materials, detail grades, travel vs drive moves, etc)

                  Do you really think there is any benefit in that?

                  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

                  sharcticundefined 1 Reply Last reply Reply Quote 0
                  • sharcticundefined
                    sharctic @dc42
                    last edited by

                    @dc42 said in CoreXYU second extruder offset and stuttering:

                    @sharctic said in CoreXYU second extruder offset and stuttering:

                    But I can't get the benefit of slicer jerk control (eg for different materials, detail grades, travel vs drive moves, etc)

                    Do you really think there is any benefit in that?

                    I have to admit I was writing this as I was having a hard time getting PVA to stick on PLA, especially line ends and corners, thinking that smoother movement might be the key. So being able to go fast with PLA while going buttersmooth with PVA is definitely an application for this kind of thing, or so I think
                    Now after some testing and tweaking rather than jerk I found low accelleration to be the better solution, which is something I can control via Cura.

                    On the tool offset:
                    For prints that start with Tool1 I found out that at least the Z height works when I add the Z offset to the homing file. You would think that T0 then bumps into the bed, as it should now sit double the offset lower, but actually both tools are level, the offset flipped?!.....I dont even know what happens to XY offset on those prints. When I get a print that starts with T0 I have to modify the homing file back again. This cant be the right way?
                    Do you know anything about this offset matter? Or do you at least know that it SHOULD work firmware-wise and that the error is somewhere else?

                    deckingmanundefined 1 Reply Last reply Reply Quote 0
                    • deckingmanundefined
                      deckingman @sharctic
                      last edited by

                      @sharctic Just out of curiosity, does Cura add U and V values to the M201 commands? It just seems odd that you can control accelerations for all axes via Cura but not the instantaneous speed threshold (jerk).

                      Ian
                      https://somei3deas.wordpress.com/
                      https://www.youtube.com/@deckingman

                      sharcticundefined 1 Reply Last reply Reply Quote 0
                      • sharcticundefined
                        sharctic @deckingman
                        last edited by sharctic

                        @deckingman said in CoreXYU second extruder offset and stuttering:

                        @sharctic Just out of curiosity, does Cura add U and V values to the M201 commands? It just seems odd that you can control accelerations for all axes via Cura but not the instantaneous speed threshold (jerk).

                        No, it does not use M201 at all, but M204 which works independently from axis names. AFAIK, since T1 (U&V) is mapped to X and Y, the M204 command applies to T1 movement in that moment

                        Apparently , the M566 command works differently. Cura spits out M566 commands but only for Y and X axis. For Cura jerk control to work on my machine it would have to generate something like M566 X720 Y720 U600 V600 for example. However Cura does not even know what axis I'm using, there is no setting to enter the axis setup. I guess Cura just expects a single carriage with 2 nozzles, like the Ultimaker

                        deckingmanundefined 1 Reply Last reply Reply Quote 1
                        • deckingmanundefined
                          deckingman @sharctic
                          last edited by

                          @sharctic Ahh OK. Make sure you set the values for M201 high enough in your config.g because M204 will still respect those limits.

                          Ian
                          https://somei3deas.wordpress.com/
                          https://www.youtube.com/@deckingman

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