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

    CoreXY intermittant 45 deg. layer shift on larger prints

    Scheduled Pinned Locked Moved
    General Discussion
    7
    16
    656
    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.
    • dlc60undefined
      dlc60
      last edited by

      I have a scratch built CoreXY that I use a Duet 2 Maestro on. For two weeks this worked perfectly. Then I started to get intermittent 45 degree layer shifts toward the "back right" stepper, which I will call the "Y" stepper since that is the port it is connected to. When this happens and I cancel the print, the X axes homes, the Y axis always stops short of home. The cancel.g file says it should have homed both X and Y. I think that these two symptoms are related to whatever the problem is. A small model that does not have any long distance travels will print just fine.
      I use Simplify3D as my slicer.
      My geometry is 155mmx200mm/180mm (yes, a small printer)
      I am using NEMA17 37oz.in(26Ncm) 12V 0.4Amp 1.8deg steppers

      These are the things that I have checked and changed, to no avail.
      I have checked the wiring and connector crimps and solder connections.
      Checked limit switches for correct signal and operation
      made sure that the mechanics do not bind by loosening the stepper pulleys and moving the carriage, it is smooth.
      checked my belts for equal tension and tested all of my idlers.
      Slowed acceleration from 1000mm/s to 200mm/s
      reduced jerk from 15 mm/s to 5mm/s
      increased stepper current from 800ma to 1000ma, and down to 500ma (this is too low)
      slowed print speeds down to between 24 and 40mm/s
      even tried the silly stepper "smoothers" (yeah, but I'm getting desperate)
      Since the layer shift is always 45 deg. to the "Y" stepper, this means that the "X" stepper had to have stopped or that belt jammed for the slide to go that path. I have a new stepper on order in case I actually have a bad one, which seems really unlikely, but...
      I wrote a gcode to exercise the steppers in a variety of motions and speeds, which works flawlessly, unfortunately.

      This is my config.g file:

      ; Configuration file for Duet Maestro (firmware version 3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.1.1 on Thu Jun 04 2020 20:04:14 GMT-0600 (Mountain Daylight Time)
      
      ; General preferences
      G90                                                    ; send absolute coordinates...
      M83                                                    ; ...but relative extruder moves
      M550 P"MiniCoreXY"                                     ; set printer name
      M669 K1                                                ; select CoreXY mode
      M918 P1 E-4 F2000000                                   ; configure direct-connect display
      
      ; Network
      M551 P"Kevy!!"                                         ; set password
      M552 P0.0.0.0 S1                                       ; enable network and acquire dynamic address via DHCP
      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 S0                                             ; physical drive 2 goes backwards
      M569 P3 S0                                             ; physical drive 3 goes backwards
      M584 X0 Y1 Z2 E3                                       ; set drive mapping
      M350 X16 Y16 Z16 E16 I1                                ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z400.00 E420.00                      ; set steps per mm
      M566 X300.00 Y300.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 X200.00 Y200.00 Z20.00 E250.00                    ; set accelerations (mm/s^2)
      M906 X1000 Y1000 Z800 E800 I50                         ; 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 X155 Y200 Z180 S0                                 ; set axis maxima
      
      ; Endstops
      M574 X1 S1 P"!xstop"                                   ; configure active-high endstop for low end on X via pin !xstop
      M574 Y1 S1 P"!ystop"                                   ; configure active-high endstop for low end on Y via pin !ystop
      M574 Z1 S1 P"!zstop"                                   ; configure active-high 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:155 Y15:195 S20                               ; define mesh grid
      
      ; Heaters
      M308 S0 P"bedtemp" Y"thermistor" T100000 B3950         ; 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 B1 S1.00                                       ; enable bang-bang mode for the bed heater and set PWM limit
      M140 H0                                                ; map heated bed to heater 0
      M143 H0 S100                                           ; set temperature limit for heater 0 to 100C
      M307 H0 B1 A103.3 C481.9 D3.0 V11.7 P0.8			   ; bed tuned values
      
      M308 S1 P"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; 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
      M307 H1 B0 S1.00 A911.9 C295.5 D4.2 V11.9              ; disable bang-bang mode for heater  and set PWM limit and PID tune values
      
      ; 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 S0 H-1                                         ; set fan 1 value. Thermostatic control is turned off
      
      ; 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
      

      This is the result of an M122 command shortly after the layer shift and before I canceled the print:

      M122
      === Diagnostics ===
      RepRapFirmware for Duet 2 Maestro version 3.1.1 running on Duet Maestro 1.0
      Board ID: 08DAM-9F9GA-J24TD-6J1DJ-3SS6K-KR1AV
      Used output buffers: 3 of 24 (18 max)
      === RTOS ===
      Static ram: 21924
      Dynamic ram: 95296 of which 52 recycled
      Exception stack ram used: 408
      Never used ram: 13392
      Tasks: NETWORK(ready,408) HEAT(blocked,1316) MAIN(running,1992) IDLE(ready,84)
      Owned mutexes:
      === Platform ===
      Last reset 01:43:26 ago, cause: power up
      Last software reset at 2020-06-17 22:06, reason: User, spinning module GCodes, available RAM 13604 bytes (slot 0)
      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0400f000 BFAR 0xe000ed38 SP 0xffffffff Task MAIN
      Error status: 0
      MCU temperature: min 24.4, current 41.9, max 42.7
      Supply voltage: min 0.0, current 11.8, max 12.1, under voltage events: 0, over voltage events: 0, power good: yes
      Driver 0: ok, read errors 0, write errors 0, ifcount 13, reads 51469, timeouts 0
      Driver 1: ok, read errors 0, write errors 0, ifcount 13, reads 51469, timeouts 0
      Driver 2: standstill, read errors 0, write errors 0, ifcount 13, reads 51469, timeouts 0
      Driver 3: standstill, read errors 0, write errors 0, ifcount 9, reads 51472, timeouts 1
      Driver 4: standstill, read errors 0, write errors 0, ifcount 6, reads 51476, timeouts 0
      Driver 5: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 51481
      Driver 6: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 51481
      Date/time: 2020-06-18 20:22:07
      Slowest loop: 115.22ms; fastest: 0.12ms
      I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
      === Storage ===
      Free file entries: 9
      SD card 0 detected, interface speed: 15.0MBytes/sec
      SD card longest read time 2.6ms, write time 1.0ms, max retries 0
      === Move ===
      Hiccups: 0(0), FreeDm: 166, MinFreeDm: 139, MaxWait: 263594ms
      Bed compensation in use: none, comp offset 0.000
      === MainDDARing ===
      Scheduled moves: 41353, completed moves: 41333, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: 3
      === AuxDDARing ===
      Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0  CDDA state: -1
      === Heat ===
      Bed heaters = 0 -1, chamberHeaters = -1 -1
      Heater 0 is on, I-accum = 0.0
      Heater 1 is on, I-accum = 0.4
      === GCodes ===
      Segments left: 1
      Movement lock held by null
      HTTP is idle in state(s) 0
      Telnet is idle in state(s) 0
      File is doing "G1 X69.976 Y22.159 E1.5796" in state(s) 0
      USB is idle in state(s) 0
      Aux is idle in state(s) 0
      Trigger is idle in state(s) 0
      Queue is idle in state(s) 0
      LCD is idle in state(s) 0
      Daemon is idle in state(s) 0
      Autopause is idle in state(s) 0
      Code queue is empty.
      === Network ===
      Slowest loop: 31.96ms; fastest: 0.02ms
      Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
      HTTP sessions: 2 of 8
      Interface state active, link 100Mbps full duplex
      

      I am completely out of ideas. I feel that I have eliminated mechanical and wiring errors and am left with either a faulty board in some fashion or a mistake in my config.g file.

      Does anyone have any other ideas?

      DLC

      zaptaundefined Phaedruxundefined PDBealundefined 3 Replies Last reply Reply Quote 0
      • zaptaundefined
        zapta @dlc60
        last edited by

        @dlc60 said in CoreXY intermittant 45 deg. layer shift on larger prints:

        the Y axis always stops short of home. The cancel.g file says it should have homed both X and Y...

        By 'homing', do you mean actual homing with end switches and such, or that you just tell the head to go to a certain (x, y) and the y position doesn't seem right?

        dlc60undefined 1 Reply Last reply Reply Quote 1
        • Phaedruxundefined
          Phaedrux Moderator @dlc60
          last edited by Phaedrux

          @dlc60 said in CoreXY intermittant 45 deg. layer shift on larger prints:

          0.4Amp

          Are they really 0.4a? That seems incredibly low even for a very small printer. Do you have a link on the motor specs? Target 60-85% of the motor rated max current.

          Do you have the Maestro actively cooled?

          the Y axis always stops short of home.

          This could be due to missed steps. If it's actually running a homing command here, you can change your homing macro to increase the distance the axis moves towards the endstop and see if that fixes it after it's done some layer shifts.

          Z-Bot CoreXY Build | Thingiverse Profile

          dlc60undefined 1 Reply Last reply Reply Quote 0
          • DIY-O-Sphereundefined
            DIY-O-Sphere
            last edited by

            @dlc60 said in CoreXY intermittant 45 deg. layer shift on larger prints:

            Does anyone have any other ideas?

            Try to turn off StealthChop for the X and Y drive.
            You can do that by adding a D2 option to the M569 code.

            M569 P0 S0 D2
            M569 P1 S1 D2

            It's a common issue with the maestro.
            In my case that had solved the problem reliably.

            (UTC+1)

            dlc60undefined 1 Reply Last reply Reply Quote 0
            • pandaymundefined
              pandaym
              last edited by

              Have you seen my thread? I had the same sort of thing happen yesterday. I think I solved it now with upping motor currents to 75% of motor rating.

              dlc60undefined 1 Reply Last reply Reply Quote 0
              • PDBealundefined
                PDBeal @dlc60
                last edited by

                @dlc60 said in CoreXY intermittant 45 deg. layer shift on larger prints:

                Then I started to get intermittent 45 degree layer shifts toward the "back right" stepper, which I will call the "Y" stepper since that is the port it is connected to. When this happens and I cancel the print, the X axes homes, the Y axis always stops short of home. The cancel.g file says it should have homed both X and Y.

                Since you mentioned the Y axis stops short trying to home, what's your homey.g file look like? Are you sure your homey file homes the y axis through a length greater than your actual machine maximum?

                Do your steppers have cables coming out of them or are they connectors with cables plugged in? If you have connectors, its possible one of those is loose or not making good contact?

                dlc60undefined 1 Reply Last reply Reply Quote 0
                • dlc60undefined
                  dlc60 @zapta
                  last edited by

                  @zapta said in CoreXY intermittant 45 deg. layer shift on larger prints:

                  @dlc60 said in CoreXY intermittant 45 deg. layer shift on larger prints:

                  the Y axis always stops short of home. The cancel.g file says it should have homed both X and Y...

                  By 'homing', do you mean actual homing with end switches and such, or that you just tell the head to go to a certain (x, y) and the y position doesn't seem right?

                  I mean "go until you activate the end stop switch". What is weird is that it simply doesn't get all the way home, but stops.

                  DLC

                  1 Reply Last reply Reply Quote 0
                  • dlc60undefined
                    dlc60 @Phaedrux
                    last edited by

                    @Phaedrux said in CoreXY intermittant 45 deg. layer shift on larger prints:

                    @dlc60 said in CoreXY intermittant 45 deg. layer shift on larger prints:

                    0.4Amp

                    Are they really 0.4a? That seems incredibly low even for a very small printer. Do you have a link on the motor specs? Target 60-85% of the motor rated max current.

                    Do you have the Maestro actively cooled?

                    the Y axis always stops short of home.

                    This could be due to missed steps. If it's actually running a homing command here, you can change your homing macro to increase the distance the axis moves towards the endstop and see if that fixes it after it's done some layer shifts.

                    The advert title was totally whack. This is the stepper:
                    17HD48002H-22B Nema 17 Stepper Motor 1.7 A, 0.59 Nm and I am driving them at 1.0Amp. There should be plenty of muscle there. However, I tried driving them at 1.3Amp and they got hot pretty quickly. Quicker than I would think a 1.7Amp spec should.

                    DLC

                    1 Reply Last reply Reply Quote 0
                    • dlc60undefined
                      dlc60 @pandaym
                      last edited by

                      @pandaym said in CoreXY intermittant 45 deg. layer shift on larger prints:

                      Have you seen my thread? I had the same sort of thing happen yesterday. I think I solved it now with upping motor currents to 75% of motor rating.

                      That might work, I tried that though and shut it down because the steppers got very hot by the time it was 1/3 through the print. It didn't seem like a good idea.

                      DLC

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

                        Unless it was over 80c the steppers probably didn't mind.

                        Z-Bot CoreXY Build | Thingiverse Profile

                        dlc60undefined 1 Reply Last reply Reply Quote 1
                        • dlc60undefined
                          dlc60 @PDBeal
                          last edited by

                          @PDBeal said in CoreXY intermittant 45 deg. layer shift on larger prints:

                          @dlc60 said in CoreXY intermittant 45 deg. layer shift on larger prints:

                          Then I started to get intermittent 45 degree layer shifts toward the "back right" stepper, which I will call the "Y" stepper since that is the port it is connected to. When this happens and I cancel the print, the X axes homes, the Y axis always stops short of home. The cancel.g file says it should have homed both X and Y.

                          Since you mentioned the Y axis stops short trying to home, what's your homey.g file look like? Are you sure your homey file homes the y axis through a length greater than your actual machine maximum?

                          Do your steppers have cables coming out of them or are they connectors with cables plugged in? If you have connectors, its possible one of those is loose or not making good contact?

                          The wires go directly into the stepper. Hmm, I didn't look before at homey, homex. That would tend to support the thought of missing steps.

                          DLC

                          1 Reply Last reply Reply Quote 0
                          • dlc60undefined
                            dlc60 @Phaedrux
                            last edited by

                            @Phaedrux said in CoreXY intermittant 45 deg. layer shift on larger prints:

                            Unless it was over 80c the steppers probably didn't mind.

                            It was more like 50, by my calibrated finger tips... Heat like that might shorten the life span of the motor by a bit. Still, if nothing else works, I will try that again when I can keep an eye on the system all the time, just in case.

                            DLC

                            mendenmhundefined 1 Reply Last reply Reply Quote 0
                            • dlc60undefined
                              dlc60 @DIY-O-Sphere
                              last edited by

                              @DIY-O-Sphere said in CoreXY intermittant 45 deg. layer shift on larger prints:

                              @dlc60 said in CoreXY intermittant 45 deg. layer shift on larger prints:

                              Does anyone have any other ideas?

                              Try to turn off StealthChop for the X and Y drive.
                              You can do that by adding a D2 option to the M569 code.

                              M569 P0 S0 D2
                              M569 P1 S1 D2

                              It's a common issue with the maestro.
                              In my case that had solved the problem reliably.

                              Sadly, this had no effect at all.

                              DLC

                              dlc60undefined 1 Reply Last reply Reply Quote 0
                              • dlc60undefined
                                dlc60 @dlc60
                                last edited by

                                I was actually able to be right there when the problem happened this time. The hot end was striking plastic, like the Z had not dropped to the next level.
                                This is a completely different kind of problem. I wonder why it always shifts the same direction? Maybe that belt is looser or that stepper is just a little weaker...
                                This is why my exercise program showed no issue, it drops the Z about 5mm and then jams the X/Y directions around. I need to add a Z movement section to the test.

                                DLC

                                dlc60undefined 1 Reply Last reply Reply Quote 1
                                • dlc60undefined
                                  dlc60 @dlc60
                                  last edited by

                                  Much strangeness.
                                  I swapped X and Y steppers and saw the shift move to the other diagonal, which implies that it could be related to the stepper motor. I also found that my Z platform was not flat anymore, one side was off by 2mm, so I re-trimmed the screws and re-leveled the bed and started another test. On the second layer of the next test, when I wasn't looking, I heard a loud "bzzzt" kind of grindy, buzzy sound and the layer shifted a huge amount straight towards X0, no diagonal at all. The Z had already moved and about half of the layer had already been printed when this happened. While the motors were all powered I tried moving the X/Y carriage, and I could move the (now) Y motor, but not the X. It looks like I may have found my problem. I should not have been able to move that stepper pulley with a court order, but it moved when I turned it with my fingers, that shouldn't be. Since my shift moved when I swapped the steppers, that means that bind was not in either belt circuit, it is in the motor. I have a new one from the seller coming, I just don't know when. Or, hmm, move my Z motor to Y and get another stepper from the junk box for Z, it does not have to match the other two.

                                  This story just keeps changing...

                                  DLC

                                  1 Reply Last reply Reply Quote 0
                                  • mendenmhundefined
                                    mendenmh @dlc60
                                    last edited by

                                    @dlc60 50C is stone cold for the surface temperature of the motor. They can easily run 60-80C for the surface, without noticeably changing the lifespan (80C keeps the windings below 120C, probably, which is their full industrial-lifetime rating in low-temperature motors, typically). I tend to run a surface temp of around 60C under normal, fast-ish printing. During my print run making face shields, I upped my motor current to 80-90% of spec, so I could run faster. Surface temp was then about 70C. If the motors eventually die, tough luck, but they are designed for this.
                                    I have a personal philosophy about tools: they are meant to be used. i don't abuse them, but I use them in a way that gets work done, and if it wears them out, they are doing what they should.

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