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

    Prints flipped/mirrored

    Scheduled Pinned Locked Moved
    General Discussion
    6
    27
    4.6k
    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.
    • GBusy24undefined
      GBusy24
      last edited by

      I have my Duet Wifi running a core xy machine. X endstop is to the left, Y endstop is in the rear. Homing is to left rear. X+ moves gantry to the right, Y+ moves gantry towards front of machine. Ran a print of an automotive emblem that stretched across bed diagonally from front left corner to rear right corner, but when it started printing, it was stretched across from rear left to front right and it was upside down. I'm @ work right now so I can't include my config.g files. Can anyone help me with this? Thanks in advance.

      No such thing as spare time. No such thing as free time No such thing as down time. All you got is lifetime. Go!

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

        That's because you have your X and Y axes in the wrong orientation. The relationship between them needs to be like this:

        Y
        ^
        |
        |
        *–--> X

        You have them the opposite way round. Choose between the following:

        1. X=0 Y=0 at the front left of the machine. So +Y moves towards the rear. If you leave your homing switches where they are, you will need to home Y to max Y instead of to Y-0. You will need to swap the X and Y motor connections (TURN THE POWER OFF FIRST!) and adjust your homey and homeall.g files to home to maximum Y. Then adjust the two motor directions to get +X and +Y moving in the right directions.

        2. Exchange the X and Y axes. You will need to swap the X and Y motor connections (TURN THE POWER OFF FIRST!) and also exchange the X and Y endstop connections. Then adjust the two motor directions to get +X and +Y moving in the right directions.

        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
        • GBusy24undefined
          GBusy24
          last edited by

          Thanks dc42. I'll try and rectify things when I get home.

          No such thing as spare time. No such thing as free time No such thing as down time. All you got is lifetime. Go!

          1 Reply Last reply Reply Quote 0
          • GBusy24undefined
            GBusy24
            last edited by

            dc42, I chose the 1st option you offered. swapped out the X and Y connections only, made adjustments in homeall g and homey g. Now it homes nicely to front left. X+ moves correctly, but for the life of me I can't get Y+, i.e. gantry moving from front to rear, to move appropriately. It's my understanding that I have a total of 4 possible combinations within the M569 command for the X and Y motor configs.(P0-S1/P1-S0) (P0-S1/P1-S1) (P0-S0/P1-S0) (P0-S1/P1-S1) I've tried them all. What am I missing?

            P.S.
            I realize that is your name silk screened on my board, so all of my questions are humbly asked.

            Sincere Thanks!

            No such thing as spare time. No such thing as free time No such thing as down time. All you got is lifetime. Go!

            1 Reply Last reply Reply Quote 0
            • GBusy24undefined
              GBusy24
              last edited by

              Here's my config.g Don't laugh too hard…..........; Configuration file for Mini Kossel kit from Think3DPrint3D for testing Duet WiFi

              ; Communication and general
              M111 S0 ; Debug off
              M550 PGBusyDBot ; Machine name and Netbios name (can be anything you like)
              M551 Preprap ; Machine password (used for FTP)
              ;*** If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits
              M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED ; MAC Address
              ;*** Wifi Networking
              M552 S1 ; Enable WiFi

              M555 P2 ; Set output to look like Marlin
              M575 P1 B57600 S1 ; Comms parameters for PanelDue

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

              ; Axis and motor configuration
              M569 P0 S0 ; Drive 0 goes forwards
              M569 P1 S1 ; Drive 1 goes forwards
              M569 P2 S0 ; Drive 2 goes forwards
              M569 P3 S1 ; Drive 3 goes forwards
              M569 P4 S0 ; Drive 4 goes forwards
              M574 X1 Y1 Z1 S0 ; set endstop configuration (all endstops at high end, active high)
              ;*** The homed height is deliberately set too high in the following - you will adjust it during calibration
              M667 S1 ; set CoreXY mode
              M666 X0 Y0 Z0 ; put your endstop adjustments here, or let auto calibration find them
              M350 X16 Y16 E16 I1 ; Set 16x microstepping with interpolation
              M92 X80 Y80 Z160 ; Set axis steps/mm
              M906 X800 Y800 Z800 E800 I60 ; Set motor currents (mA) and increase idle current to 60%
              M201 X2000 Y2000 Z100 E4000 ; Accelerations (mm/s^2)
              M203 X30000 Y3000 Z300 E1500 ; Maximum speeds (mm/min)
              M566 X600 Y600 Z24 E300 ; Maximum instant speed changes mm/minute
              M208 X350 Y220 Z300 ; set axis maxima ( adjust to suit your machine)
              M208 X0 Y0 Z0 S1 ; set axis minima ( adjust to make X=0 and Y=0 the edges of the bed)

              ; Thermistors
              M305 P0 T100000 B4388 R4700 H0 L0 ; Put your own H and/or L values here to set the bed thermistor ADC correction
              M305 P1 T100000 B4388 R4700 H0 L0 ; Put your own H and/or L values here to set the first nozzle thermistor ADC correction
              M305 P2 T100000 B3974 R4700 H0 L0 ; Put your own H and/or L values here to set the second nozzle thermistor ADC correction
              M570 S180 ; Hot end may be a little slow to heat up so allow it 180 seconds

              ; Fans
              M106 P1 H-1 ; disable thermostatic mode for fan 1

              ; Tool definitions
              M563 P0 D0 H1 ; Define tool 0
              G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures
              ;*** If you have a single-nozzle build, comment the next 2 lines
              ; M563 P1 D1 H2 ; Define tool 1
              ; G10 P1 S0 R0 ; Set tool 1 operating and standby temperatures
              M92 E418.5:418.5 ; Set extruder steps per mm

              M307 H0 A125.6 C331.8 D3.8 B0
              M307 H1 A568.7 C235.4 D6.3 B0
              ; Z probe and compensation definition
              ;*** If you have a switch instead of an IR probe, change P1 to P4 in the following M558 command
              M558 P1 X0 Y0 Z0 ; Z probe is an IR probe and is not used for homing any axes
              G31 X0 Y0 Z4.80 P500 ; Set the zprobe height and threshold (put your own values here)

              ;*** If you are using axis compensation, put the figures in the following command
              M556 S78 X0 Y0 Z0 ; Axis compensation here

              M208 S1 Z-0.2 ; set minimum Z
              ;
              T0 ; select first hot end

              No such thing as spare time. No such thing as free time No such thing as down time. All you got is lifetime. Go!

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

                I suggest you put the print head near the middle of the bed, send G91 to enable relative movement, then use G1 S2 commands to move the X and Y motors independently. For example, G1 S2 X10 will move the X motor forwards by 10mm. You are aiming to get the movement specified in the GCode wiki listing for the M667 S1 command:

                Forward movement of the X motor moves the head in the +X and +Y directions. Forward movement of the Y motor moves the head in the -X and +Y directions.

                where +X is to the right and +Y is towards the back.

                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
                • GBusy24undefined
                  GBusy24
                  last edited by

                  I've got the motors moving correctly now i.e. G1 S2 X10 moves print head towards the right and Y towards the rear. G1 S2 Y10 moves print head to the left and Y towards the rear, but right now with what I have set up in my homing files, X and Y make no attempt to move towards the endstops Should I change the Y value in M574 in config.g from Y1 to Y2? I'm just going to paste my homing files here and let you have a look.
                  ; homeall file for use with dc42 Duet firmware on CoreXY printers
                  ; This file assumes the endstop switches are at the low end of each axis.
                  ; Reverse the X and Y movement for high-end switches.
                  ; Adjust the bed upper and lower limits in config.g (M208 commands) to get the correct homing positions

                  G91 ; relative mode
                  G1 S1 X-375 F3000 ; course home X
                  G1 X4 F600 ; move away from endstop
                  G1 S1 X-10 ; fine home X
                  G1 X0 F2000
                  G1 S1 Y-220 F3000 ; course home Y
                  G1 Y4 F600 ; move away from endstop
                  G1 S1 Y-10 ; fine home Y
                  G1 Y0 F2000
                  G1 S1 Z-350 F200 ; Course home Z
                  G1 Z2 F50 ; move away from endstops
                  G1 S1 Z-10 ; fine home Z
                  G1 Z0 F200

                  ; If you are using a microswitch for Z homing, insert similar code for the Z axis here,
                  ; but use lower feed rates suitable for your Z axis.

                  G90 ; back to absolute mode

                  ; If you homed the Z axis using an endstop switch, you can insert a G92 command here to correct the height.

                  ; The following code assumes you are using a Z probe to do Z homing. Remove it if you are using a microswitch.
                  ; Adjust the XY coordinates in the following to place the Z probe over a suitable spot,
                  ; preferably near the centre of the bed if your Z probe supports that

                  G1 X100 Y100 F2000
                  G30
                  ; This file leaves the head at the zprobe trigger height so that you can slip a piece of paper under it and then do G0 Z0 to check the height.
                  ; If you prefer to send the printer to X0Y0Z0, un-comment the following lines
                  ;G1 X0 Y0 F5000
                  ; G1 Z0

                  X Homing
                  G91
                  G1 S1 X-375 F3000
                  G1 X4 F600
                  G1 S1 X-10
                  G1 X0 F2000
                  G90

                  Y Homing
                  G91
                  G1 S1 Y-220 F3000
                  G1 Y4 F600
                  G1 S1 Y-10
                  G1 Y0 F2000
                  G90

                  Z Homing

                  G91
                  G1 S1 Z-320 F200
                  G1 Z2 F50
                  G1 S1 Z-10
                  G1 Z0 F200
                  G90

                  No such thing as spare time. No such thing as free time No such thing as down time. All you got is lifetime. Go!

                  1 Reply Last reply Reply Quote 0
                  • lignumaquaundefined
                    lignumaqua
                    last edited by

                    Yes, from how you've described the set up, M574 should be

                    [c]M574 X1 Y2 Z1 S0[/c]

                    Also, youhave your Y maximum speed set much slower than X. Is that deliberate?

                    [c]M203 X30000 Y3000 Z300 E1500 ; Maximum speeds (mm/min)[/c]

                    I'd have expected them to match with a CorexXY:

                    [c]M203 X30000 Y30000 Z300 E1500 ; Maximum speeds (mm/min)[/c]

                    (You also have Z max speed set very slow - 300 mm/min is only 5 mm/sec. But maybe that's right?)

                    1 Reply Last reply Reply Quote 0
                    • GBusy24undefined
                      GBusy24
                      last edited by

                      Okay, I made the changes you pointed out, but there is something evidently wrong with my homing files that prevents X or Y from approaching the endstops. When I home all, X is going right approx. 200mm, Y goes to front of machine. Neither approaches it's endstop. Z goes to endstop and tries to keep going, ignoring the stop.

                      No such thing as spare time. No such thing as free time No such thing as down time. All you got is lifetime. Go!

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

                        Do you have movement in the correct directions now, i.e. positive X moves to the right and positive Y moves towards the front back?

                        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
                        • deckingmanundefined
                          deckingman
                          last edited by

                          @GBusy24:

                          I've got the motors moving correctly now i.e. G1 S2 X10 moves print head towards the right and Y towards the rear. G1 S2 Y10 moves print head to the left and Y towards the rear,…...............................

                          That ain't right. If you command the machine to move in the X axis (G1 X10) then there should be no movement of the Y axis. Conversely, if if you command it to move in Y (G10 Y10), there should be no movement in X.

                          So assuming you have configured your printer to work in coreXY mode by having M667 S1 in you config.g, then it seems that you might need to swap the X and Y motor connections (with the power off !!!) then play around with the S values for M569 P0 and P1 until you get the motion correct. You can send M569 commands from the =web interface so no need to keep editing the config.g and restarting every time.

                          Also, just use G1 X10 or G1 Y10 and if you want with S1 to check for end stops. S0 is the default and ignores end stops. S2 I think is only for Delta printers.

                          HTH

                          Ian

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

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

                            Ian, if he is using the S2 modifier then the movements he said are correct. The S2 modifier allows you to control individual motors on both delta and CoreXY printers.

                            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
                            • GBusy24undefined
                              GBusy24
                              last edited by

                              Yes, dc-42 motor directions are correct per the G1 S2 commands I send. Moving X+ manually also goes right by itself and moving Y+ manually sends the gantry away from me by itself. My biggest problem now I feel that I have something terribly wrong in my homing files preventing X and Y from searching out the endstops. I realize that I don't have the correct Y homing position entered at the moment. I believe per a previous conversation we had that it needs to be set to a positive number that correlates to front of bed. I've just gotten really hung up on why it wont search out the X and Y endstops per my homing at the moment. If I hit homeall right now, X travels 10mm to the right from whichever current position it's in and Y moves directly forward from the new X position and stops at the front of the bed. Z goes to the endstop, ignores it and tries to keep going.

                              No such thing as spare time. No such thing as free time No such thing as down time. All you got is lifetime. Go!

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

                                Sorry, my bad - just what I read here http://reprap.org/wiki/G-code#G0_.26_G1:_Move only mentions Deltas' not coreXY.

                                Anyway, I'm a bit confused. The first post states that homing is to left rear. So if the motors are moving correctly, shouldn't Y+ be moving away from home -i.e. towards the front rather than away towards the rear?

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

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

                                  The description of events when you press homeall and looking at your homeall.g fiile, seems to me that the endstops are permanently triggered as if they are wired active high but they are set to active low by using S0 in M574. Also, I'm a bit confused as to what you are using form Z homing. Is it a switch or is it a probe? - you seem to have both in your homeall.g file,

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

                                  1 Reply Last reply Reply Quote 0
                                  • GBusy24undefined
                                    GBusy24
                                    last edited by

                                    Z homing is endstop switch. It seems to me that regardless of everything, that if I go to the G code console in DWC and send a G1 S1 X-300 command that my X should go to the endstop, but it doesn't. As soon as I send that command, it immediately shows the X being at Home position.Yes, I've been wondering about those Z probe definitions and whether I need to comment them out. I've just had the Z endstop so far, but will be receiving the mini ir probe tomorrow and hope to implement it ASAP.

                                    No such thing as spare time. No such thing as free time No such thing as down time. All you got is lifetime. Go!

                                    1 Reply Last reply Reply Quote 0
                                    • GBusy24undefined
                                      GBusy24
                                      last edited by

                                      The config.g towards the top of this thread is outdated. Here's the current….........; CoreXY sample config file for dc42 Duet firmware

                                      M111 S0 ; Debug off
                                      M550 PDBot CoreXY ; Machine name (can be anything you like)
                                      M551 Preprap ; Machine password (used for FTP connections)
                                      ns)
                                      ;*** If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits
                                      M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED ; MAC Address
                                      ;*** Wifi Networking
                                      M552 S1 ; Enable WiFi

                                      M555 P2 ; Set output to look like Marlin
                                      M575 P1 B57600 S1 ; Comms parameters for PanelDue

                                      ; Machine configuration
                                      M569 P0 S0 ; Drive 0 goes forwards (change to S0 to reverse it)
                                      M569 P1 S1 ; Drive 1 goes forwards
                                      M569 P2 S0 ; Drive 2 goes forwards
                                      M569 P3 S0 ; Drive 3 goes forwards
                                      M569 P4 S1 ; Drive 4 goes forwards
                                      ; If you use an endstop switch for Z homing, change Z0 to Z1 in the following line, and see also M558 command later in this file
                                      M574 X1 Y1 Z1 S1 ; set endstop configuration (X and Y and endstops only, at low end, active high)
                                      M667 S1 ; set CoreXY mode
                                      M350 X16 Y16 E16 I1 ; Set 16x microstepping with interpolation
                                      M92 X80 Y80 Z160 ; Set axis steps/mm
                                      M92 E418.5:418.5 ; Set extruder steps/mm
                                      M906 X800 Y800 Z1000 E800 ; Set motor currents (mA)
                                      M201 X2000 Y2000 Z100 E4000 ; Accelerations (mm/s^2)
                                      M203 X30000 Y30000 Z300 E1500 ; Maximum speeds (mm/min)
                                      M566 X600 Y600 Z24 E300 ; Maximum jerk speeds mm/minute
                                      M208 X300 Y180 Z320 ; set axis maxima (adjust to suit your machine)
                                      M208 X0 Y0 Z0 S1 ; set axis minima (adjust to make X=0 and Y=0 the edges of the bed)
                                      G21 ; Work in millimetres
                                      G90 ; Send absolute coordinates...
                                      M83 ; ...but relative extruder moves

                                      ; Z probe
                                      ;M558 P1 X0 Y0 Z1 ; Analog Z probe, also used for homing the Z axis
                                      ;G31 Z1.20 P500 ; Set the probe height and threshold (put your own values here)
                                      ; The following M557 commands are not needed if you are using a bed.g file to perform bed compensation
                                      ;*** Adjust the XY coordinates in the following M557 commands to suit your build and the position of the Z probe
                                      ;M557 P0 X60 Y0 ; Four...
                                      ;M557 P1 X60 Y165 ; ...probe points...
                                      ;M557 P2 X222 Y165 ; ...for bed...
                                      ;M557 P3 X222 Y0 ; ...levelling
                                      ;M557 P4 X141 Y82.5 ; 5th probe point for levelling

                                      ; Thermistors and heaters
                                      ;*** You can use S and B parameters to define the parameters of the thermistors you are using
                                      M305 P0 T100000 B4388 R4700 H0 L0 ; Put your own H and/or L values here to set the bed thermistor ADC correction
                                      M305 P1 T100000 B4388 R4700 H0 L0 ; Put your own H and/or L values here to set the first nozzle thermistor ADC correction
                                      M305 P2 T100000 B3974 R4700 H0 L0 ; Put your own H and/or L values here to set the second nozzle thermistor ADC correction
                                      M301 H1 P10 I0.10 D100 T0.50 S1.0 ; PID settings for extruder 0
                                      M301 H2 P10 I0.10 D100 T0.50 S1.0 ; PID settings for extruder 1
                                      M570 S120 ; Increase to allow extra heating time if needed

                                      ; Tool definition
                                      M563 P0 D0 H1 ; Define tool 0
                                      G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures
                                      ;*** If you have a dual-nozzle build, un-comment the following 3 lines
                                      ;M563 P1 D1 H2 ; Define tool 1
                                      ;G10 P1 S0 R0 ; Set tool 1 operating and standby temperatures

                                      ;*** If you are using axis compensation, put the figures in the following command
                                      M556 S78 X0 Y0 Z0 ; Axis compensation here
                                      T0 ; select first hot end
                                      the current.

                                      No such thing as spare time. No such thing as free time No such thing as down time. All you got is lifetime. Go!

                                      1 Reply Last reply Reply Quote 0
                                      • StephenRCundefined
                                        StephenRC
                                        last edited by

                                        You need to use M119 to make sure the endstops are working as expected.

                                        1 Reply Last reply Reply Quote 0
                                        • GBusy24undefined
                                          GBusy24
                                          last edited by

                                          M119 shows;Endstops - X: at min stop, Y: at min stop, Z: at min stop, Z probe: not stopped. My print head is currently near the center of the bed and Z is about 10mm from nozzle.

                                          No such thing as spare time. No such thing as free time No such thing as down time. All you got is lifetime. Go!

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

                                            @GBusy24:

                                            M119 shows;Endstops - X: at min stop, Y: at min stop, Z: at min stop, Z probe: not stopped. My print head is currently near the center of the bed and Z is about 10mm from nozzle.

                                            You have your endstops inverted. If they are simple microswitches, rewire them to use the two outer connections on each switch (the normally closed contacts). Otherwise, change S1 to S0 in the M574 command in config.g. See https://duet3d.com/wiki/Connecting_endstop_switches.

                                            Additionally, if your Y endstop is at the back of the printer then it is a max stop not a min stop, and you need to change Y1 to Y2 in your M574 command.

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