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

    CoreXY Mirrored and flipped prints

    Scheduled Pinned Locked Moved
    General Discussion
    5
    10
    2.2k
    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.
    • id104335409undefined
      id104335409
      last edited by

      After laying down my thoughts to clear them out it became more difficult to understand what IS my question. So my condensed question is: From mirrored print to correct print - Homing and printing all works in the desired direction, but when I cancel the print - it goes to the opposite direction. How is that possible?

      So I noticed that my CoreXY machine was printing flipped at 180 degrees from what the slicer thinks is correct, but that didn't bothered me. (Viewed from front - X and Y motors on the right side, gantry moving right to left). Then I found that it was also printing mirrored. So I decide to change things around. I flipped the X and Y directions in the config.g (many many times) until I was confident I understand everything correctly. This created the endstop problem, as now the print head was homing all wrong. I fixed that as well by switching low end/high end X and Y endstops. Now the printer was homing correctly.
      Now that the print head was moving in the right direction I tested with a print only to crash in the wrong direction. The print bed was now with the wrong coordinates. I changed everything again until I had every axis homing and moving correctly and the bed correct starting point. Print started flipped back to normal (as it should) and this should have been it, BUT as soon as I aborted it - the head went in the wrong direction! How is this possible? Homing and printing all works in the desired direction, but when I cancel the print - it goes to the opposite direction.
      I flipped everything again to try to compensate for that and I got the print printing flipped at 90 degrees, but still mirrored. Aborted and still the print head went in the wrong direction. Which means no matter how much I home and flip, unless I rebuild my whole printer in a conventional orientation (all homing censors to the bottom left, X and Y motors to the back) (Which I am about to do as a last resort) I can't get rid of the mirroring effect. I simply couldn't find a working option for that. Which makes the many options for custom positioning of endstops and motor directions worthless. As even with a working machine the prints would always be either flipped or mirrored or both.
      Anyways, I would love to give you my config file, but as it is - it would not help anyone understand how to solve the problem. I even ripped the board from it's place and all the cables. I need to start with a fresh config.

      I decide to post to General discussion, as I don't really see a way it can be helped. If anyone has experienced this - leave a comment.

      1 Reply Last reply Reply Quote 0
      • mrehorstdmdundefined
        mrehorstdmd
        last edited by mrehorstdmd

        Setting up a corexy mechanism can be confusing. I have written a couple blog posts on the subject here: https://drmrehorst.blogspot.com/2017/08/setting-up-3d-printers-origin.html
        and here:
        https://drmrehorst.blogspot.com/2018/07/ummd-better-way-to-set-up-origin-and.html

        Maybe you'll find some of the info useful.

        Mirror image prints implies that you have inadvertently set up a left-hand-rule coordinate system. That will be the first thing to fix.

        https://drmrehorst.blogspot.com/

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

          The normal directions for a CoreXY are that +X is to the right and +Y is to the back. The important thing is that viewed from above, +Y is 90deg anticlockwise from +X. If it's 90deg clockwise instead, then you need to swap the X and Y motor connections, either physically or in M584.

          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

          1 Reply Last reply Reply Quote 0
          • Garfieldundefined
            Garfield
            last edited by

            My money is on X and Y crossed, rotation in wrong directions, would seem correct but would be backwards, for printing.

            One thing many of the setup guides leave out is the position and orientation of the steppers on the top. As in at the front or the back, upright or inverted, many guides are based on them being at the front and 'upright'.

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

              @Garfield said in CoreXY Mirrored and flipped prints:

              As in at the front or the back, upright or inverted, many guides are based on them being at the front and 'upright'.

              Good point, though following the commissioning steps should make solving it quite easy.

              https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter

              Z-Bot CoreXY Build | Thingiverse Profile

              1 Reply Last reply Reply Quote 0
              • id104335409undefined
                id104335409
                last edited by

                So I started fresh and I think I know where I took the easy road.
                When configuring X and Y motion you are asked to test in which diagonal the head moves. If you test X and it goes +X+Y all is fine. But it's not. Because Y needs to be tested as well. I assumed that it needs to go +Y-X.
                But then when you test the home buttons - X and Y are switched - If you home X - Y is being homed and vice versa.
                Swapping the motors or changing direction in the config file only makes everything go in reverse. So when I first tested the printer I just "decided" that my X axis will be used as Y and my Y as X. (and that is what came to bite me when I found that I have been printing mirrored prints)
                Now, how do I make correct movements AND homing if I am looking at the printer from the "front" where the XY motors are, one of them is reversed (one goes over, one goes under with the belts), and my XYZ stops are located in the lower left corner and G1 H2 X10 moves +X+Y while G1 H2 Y10 moves +Y-X
                but when I try to home = Home X pulls the gantry Y towards me while Home Y pulls the print head X to the left?
                My setup is like that because of the cabling. Cables won't reach if I put the XY motors on the back and they are 2 meters long. Also I assembled/disassembled this bastard 3 times already.
                Here is my new config:

                ; Configuration file for Duet WiFi (firmware version 3)
                ; executed by the firmware on start-up
                ;
                ; generated by RepRapFirmware Configuration Tool v2.1.8 on Mon Feb 24 2020 22:48:22 GMT+0200 (Eastern European Standard Time)

                ; General preferences
                G90 ; send absolute coordinates...
                M83 ; ...but relative extruder moves
                M550 P"QB" ; set printer name

                M667 S1 ; select CoreXY mode

                ; Network
                M552 S1 ; enable network
                M586 P0 S1 ; enable HTTP
                M586 P1 S0 ; disable FTP
                M586 P2 S0 ; disable Telnet

                ; Drives
                M569 P0 S0 ; physical drive 0 goes backwards
                M569 P1 S1 ; physical drive 1 goes forwards
                M569 P2 S1 ; physical drive 2 goes forwards
                M569 P3 S1 ; physical drive 3 goes forwards
                M584 X0 Y1 Z2 E3 ; set drive mapping
                M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
                M92 X80.00 Y80.00 Z410.00 E407.00 ; set steps per mm
                M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
                M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
                M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
                M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
                M84 S30 ; Set idle timeout

                ; Axis Limits
                M208 X0 Y0 Z0 S1 ; set axis minima
                M208 X700 Y650 Z800 S0 ; set axis maxima

                ; Endstops
                M574 X1 S1 P"!xstop" ; configure active-low endstop for low end on X via pin xstop
                M574 Y1 S1 P"!ystop" ; configure active-low endstop for low end on Y via pin ystop
                M574 Z1 S1 P"!zstop" ; configure active-low endstop for low end on Z via pin zstop

                ; Z-Probe
                M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
                M557 X15:215 Y15:195 S20 ; define mesh grid

                ; 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
                M143 H0 S120 ; set temperature limit for heater 0 to 120C
                M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
                M140 H0 ; map heated bed to heater 0
                M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
                M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
                M143 H1 S280 ; set temperature limit for heater 1 to 280C
                M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit

                ; 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"fan1" 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

                ; Tools
                M563 P0 D0 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

                ; Custom settings are not defined

                1 Reply Last reply Reply Quote 0
                • Garfieldundefined
                  Garfield
                  last edited by

                  Switch the X and Y and change the rotation direction - but X and Y should both be the same rotation if the steppers are the same and wired the same.

                  This vid explains it really well (I think)

                  Explained with Paper

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

                    Why do I bother writing wiki pages when people don't follow them? https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter#Section_Testing_motor_movement.

                    Get the motors moving the axes in the right directions when you jog them. When they are, sort out the homing without messing with motor directions any more.

                    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

                    1 Reply Last reply Reply Quote 0
                    • id104335409undefined
                      id104335409
                      last edited by

                      Will do!

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

                        @id104335409 Perhaps take a look at this post: https://forum.duet3d.com/topic/14518/trying-to-set-starting-point-that-is-not-at-the-end-stops/13?_=1582653501451

                        There have been a couple threads similar to yours recently, they may also be worth checking out.

                        https://forum.duet3d.com/topic/13946/hypercube-fusion-movement-help?=1582657700774
                        https://forum.duet3d.com/topic/14291/paneldue-and-motors-will-not-function-properly-with-duet-wifi?
                        =1582657700779

                        Z-Bot CoreXY Build | Thingiverse Profile

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