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

    Print head crashing into X/Y axis!

    Scheduled Pinned Locked Moved
    General Discussion
    4
    7
    662
    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.
    • en_passantundefined
      en_passant
      last edited by

      Hello all,

      I've had something of a nightmare getting my printer going of late; it's a coreXY Fusion3 F400-S, which came with an 0.8.5 when I got it and the firmware wasn't straight-up DuetFirmware -it was edited of some sorts. It was also old, so far as I can tell (1.17 was my most recent.)

      I've changed it due to faults with the board and got a Wifi - also changed out the PanelDue controller from a v1.1 to a v3 - hadn't intended to, but it didn't play nice with the firmware when I loaded it. It was Fusion3's again. So then, I thought sod it - and got rid of the Fusion3 firmware and loaded up 2.02 (had more issues...) then upped it to 2.03 where it's at now along with web controller 1.22.6.

      Have had so many issues with my printer I can't begin - but always with mechanically stuff... never with the board/ code etc. So, all that side of it is a learning curve to me at the moment.

      I'ver spent the day swapping out the 0.8.5 with the wifi (after getting connected to DWC this morning 🙂 ), then when I ran the axis homing earlier - it did the z, but gave me "g0/g1 insufficient axes homed" for x & y. I spent quite a while trying to understand what's going on with the gcode and editing my homely, home, homey, homez.g files but when I've just tried to get it going it's still not playing nicely and despite searching and looking over as much info as I can, I can't see why.

      I currently have:

      ; home all
      ; 21/7/19, duet 2.03

      ; g0 = current to new position, as quickly and efficiently as possible
      ; g1 = current to new position, as precisely as possible

      M561 ; transform identity: cancels bed-plane fitting (probing)
      G91 ; relative co-ords (from last position, not origin)

      ; home z axis

      G1 Z500 F500 S1 ; z 500mm (> max) @500mm/min - until limit sw. detects
      G1 Z-4 F200 ; z -4mm @ 200mm/min
      G1 Z10 S1 ; z 10mm @ 200mm/min - until limit sw. detects

      ; home x axis

      ;G1 Z1 F500 S2 ; not used for home all, only home x
      G1 X-500 F3000 S1 ; x -500mm (> max) @3000mm/min - until limit sw. detects
      G1 X4 F600 ; x 4mm @ 600mm/min
      G1 X-10 S1 ; x -10mm @ 600mm/min - until limit sw. detects
      ;G1 Z-1 F500 S2 ; not used for home all, only home x

      ; home y axis

      ;G1 Z1 F500 S2 ; not used for home all, only home y
      G1 Y-500 F3000 S1 ; y -500mm (> max) @3000mm/min - until limit sw. detects
      G1 Y4 F600 ; y 4mm @ 600mm/min
      G1 Y-10 S1 ; y -10mm @ 600mm/min - until limit sw. detects
      ;G1 Z-1 F500 S2 ; not used for home all, only home y

      G90 ; absolute co-ords (relative to origin)


      ; home x
      ; 21/7/19, duet 2.03

      ; g0 = current to new position, as quickly and efficiently as possible
      ; g1 = current to new position, as precisely as possible

      M561 ; transform identity: cancels bed-plane fitting (probing)
      G91 ; relative co-ords (from last position, not origin)

      G1 Z1 F500 S2 ; z 1mm @ 500mm/min
      G1 X-500 F3000 S1 ; x -500mm (> max) @3000mm/min - until limit sw. detects
      G1 X4 F600 ; x 4mm @ 600mm/min
      G1 X-10 S1 ; x -10mm @ 600mm/min - until limit sw. detects
      G1 Z-1 F500 S2 ; z -1mm @ 500mm/min

      G90 ; absolute co-ords (relative to origin)


      ; home y
      ; 21/7/19, duet 2.03

      ; g0 = current to new position, as quickly and efficiently as possible
      ; g1 = current to new position, as precisely as possible

      M561 ; transform identity: cancels bed-plane fitting (probing)
      G91 ; relative co-ords (from last position, not origin)

      G1 Z1 F500 S2 ; z 1mm @ 500mm/min
      G1 Y-500 F3000 S1 ; y -500mm (> max) @3000mm/min - until limit sw. detects
      G1 Y4 F600 ; y 4mm @ 600mm/min
      G1 Y-10 S1 ; y -10mm @ 600mm/min - until limit sw. detects
      G1 Z-1 F500 S2 ; z -1mm @ 500mm/min

      G90 ; absolute co-ords (relative to origin)


      ; home z
      ; 21/7/19, duet 2.03

      ; g0 = current to new position, as quickly and efficiently as possible
      ; g1 = current to new position, as precisely as possible

      M561 ; transform identity: cancels bed-plane fitting (probing)
      G91 ; relative co-ords (from last position, not origin)

      G1 Z500 F500 S1 ; z 500mm (> max) @500mm/min - until limit sw. detects
      G1 Z-4 F200 ; z -4mm @ 200mm/min
      G1 Z10 S1 ; z 10mm @ 200mm/min - until limit sw. detects

      G90 ; absolute co-ords (relative to origin)


      When I run the home all - the Z works a charm. I then moved the bed up 50mm and ran the home Z - lovely.

      I ran the home X and it moved in the Y - didn't stop at the limit and made a gut-wrenching loud noise as it continued to (try to) move through a solid object (the frame).

      I tried the home Y and it moves in the X - so I stopped it before it ran aground like the home X command.

      Am I missing something obvious?

      e_p

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

        It may help to go through this: https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter

        Especially the part where you test individual motor direction in the Movement section. I think you've probably got a direction reversed. This makes sense I think since there was a bug fix between your old firmware and the more recent 1.20 version.

        Once that's solved, everything else should work...

        Growing pains when going from a very old firmware to a very recent firmware. I think you're on your way though.

        Z-Bot CoreXY Build | Thingiverse Profile

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

          As @Phaedrux says, you will need to reverse one of the motor directions. From memory, I think it is the Y motor, and you need to change S0 to S1 or vice versa in the M569 P1 command in config.g.

          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

            As others have said, there was a change in the firmware which meant that CoreXY users had to alter the motor direction for one of the motors. I believe it was the beta motor (normally connect to "Y" but the safest thing is to run through the motor testing in the link that @Phaedrux posted.

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

            1 Reply Last reply Reply Quote 0
            • en_passantundefined
              en_passant
              last edited by

              Thanks all.

              @Phaedrux: I had a read over the link you sent over earlier as best I could whilst at work. Home now and trying to edit the config.g - it has M667 S1 set, so that's now commented out and I have M669 K1 in it's place.

              Fingers crossed - will keep you all informed on my progress! 🙂

              e_p

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

                @en_passant said in Print head crashing into X/Y axis!:

                it has M667 S1 set, so that's now commented out and I have M669 K1 in it's place.

                Currently either will work, but M667 K1 is the correct way going forward.

                Z-Bot CoreXY Build | Thingiverse Profile

                en_passantundefined 1 Reply Last reply Reply Quote 0
                • en_passantundefined
                  en_passant @Phaedrux
                  last edited by

                  @phaedrux said in Print head crashing into X/Y axis!:

                  @en_passant said in Print head crashing into X/Y axis!:

                  it has M667 S1 set, so that's now commented out and I have M669 K1 in it's place.

                  Currently either will work, but M667 K1 is the correct way going forward.

                  Cool, thanks. I'll keep that from now on.

                  Just now managed to get it running and I'm very pleased!

                  @dc42 said in Print head crashing into X/Y axis!:

                  As @Phaedrux says, you will need to reverse one of the motor directions. From memory, I think it is the Y motor, and you need to change S0 to S1 or vice versa in the M569 P1 command in config.g.

                  Indeed it was. Presumably, the more au fait around here could write it out in 10 minutes but getting used to the code is time consuming wrapping my head around it.

                  For reference (if anyone should ever come across this in the future):

                  ; home all
                  ; 22/7/19, duet 2.03

                  M561 ; transform identity: cancels bed-plane fitting (probing)
                  G91 ; relative co-ords (from last position, not origin)

                  ; home z

                  G1 Z500 F500 S1 ; z 500mm (> max) @500mm/min - until limit sw. detects
                  G1 Z-4 F200 ; z -4mm @ 200mm/min
                  G1 Z10 S1 ; z 10mm @ 200mm/min - until limit sw. detects

                  ; home x & y simultaneously

                  G1 X-500 Y-500 F3000 S1 ; x & y -500mm (> max) @3000mm/min - until limit sw. detects
                  G1 X-500 S1 ; x -500mm (> max) @3000mm/min - until limit sw. detects
                  G1 Y-500 S1 ; y -500mm (> max) @3000mm/min - until limit sw. detects
                  G1 X4 Y4 F600 ; x & y 4mm @ 600mm/min
                  G1 X-10 S1 ; x -10mm @ 600mm/min - until limit sw. detects
                  G1 Y-10 S1 ; y -10mm @ 600mm/min - until limit sw. detects

                  G90 ; absolute co-ords (relative to origin)


                  ; home x
                  ; 22/7/19, duet 2.03

                  M561 ; transform identity: cancels bed-plane fitting (probing)
                  G91 ; relative co-ords (from last position, not origin)

                  G1 Z1 F500 S2 ; z 1mm @ 500mm/min
                  G1 X-500 F3000 S1 ; x -500mm (> max) @3000mm/min - until limit sw. detects
                  G1 X4 F600 ; x 4mm @ 600mm/min
                  G1 X-10 S1 ; x -10mm @ 600mm/min - until limit sw. detects
                  G1 Z-1 F500 S2 ; z -1mm @ 500mm/min

                  G90 ; absolute co-ords (relative to origin)


                  ; home y
                  ; 22/7/19, duet 2.03

                  M561 ; transform identity: cancels bed-plane fitting (probing)
                  G91 ; relative co-ords (from last position, not origin)

                  G1 Z1 F500 S2 ; z 1mm @ 500mm/min
                  G1 Y-500 F3000 S1 ; y -500mm (> max) @3000mm/min - until limit sw. detects
                  G1 Y4 F600 ; y 4mm @ 600mm/min
                  G1 Y-10 S1 ; y -10mm @ 600mm/min - until limit sw. detects
                  G1 Z-1 F500 S2 ; z -1mm @ 500mm/min

                  G90 ; absolute co-ords (relative to origin)


                  ; home z
                  ; 22/7/19, duet 2.03

                  M561 ; transform identity: cancels bed-plane fitting (probing)
                  G91 ; relative co-ords (from last position, not origin)

                  G1 Z500 F500 S1 ; z 500mm (> max) @500mm/min - until limit sw. detects
                  G1 Z-4 F200 ; z -4mm @ 200mm/min
                  G1 Z10 S1 ; z 10mm @ 200mm/min - until limit sw. detects

                  G90 ; absolute co-ords (relative to origin)

                  most importantly, config.g:

                  ; fusion3 f400-s, s/n: 1067

                  M111 S0 ; debug off
                  M550 PFusion3 F400 ; web control printer name ("P" then name)
                  M551 Preprap ; web control password ("P" then pass, reprap = no password required)
                  M540 EC:FA:BC:01:D8:E5 ; MAC address
                  M552 S1 ; enable wifi module

                  ; M552 P192.168.1.50 S1 ; ip address (0.0.0.0 = use DHCP)
                  ; M554 P192.168.1.1 ; gateway
                  ; M553 P255.255.255.0 ; netmask
                  M555 P2 ; output looks like marlin
                  M575 P1 B57600 S1 ; comms parameters for paneldue

                  ; machine configuration

                  M569 P0 S1 ; drive 0 - forward [x motor]
                  ; M569 P1 S0 ; drive 1 - backward [y motor] (pre 2.03)
                  M569 P1 S1 ; drive 1 - forward [y motor] (2.03+)
                  M569 P2 S0 ; drive 2 - backward [z motor]
                  M569 P3 S0 ; drive 3 - backward [e motor]
                  M569 P4 S0 ; drive 4 - backward *comment out? not used on f400?
                  M574 X1 Y1 Z2 S1 ; endstop config
                  ; M667 S1 ; op mode [corexy] (pre 2.03)
                  M669 K1 ; op mode [corexy] (2.03+)
                  M92 X43.56 Y43.56 Z426.67 E464.93 ; steps/mm [x,y,z,extruder]
                  M906 X1300 Y1300 Z1400 E1400 I100 ; motor currents (mA)
                  M201 X2000 Y2000 Z300 E4000 ; accelerations (mm/s^2)
                  M203 X33000 Y33000 Z1000 E10000 ; max speeds (mm/min)
                  M566 X600 Y600 Z40 E950 ; max jerk speeds mm/minute
                  M208 X355 Y355 Z323 ; axis max
                  M208 X0 Y0 Z0 S1 ; axis min
                  G21 ; work in mm
                  G90 ; absolute co-ords
                  M83 ; relative extruder movements

                  ; z-probe

                  M558 P1 X0 Y0 Z0 ; probe type & if used for axis homing (no for f400-s)
                  G31 Z1.20 P500 ; probe height and threshold (smaller number = further away from bed)

                  ; thermistors and heaters

                  M305 P0 T100000 B4036 R4700 ; *** put your own H and/or L values here to set the bed thermistor ADC correction
                  M305 P1 T100000 B4725 R4700 ; *** put your own H and/or L values here to set the first nozzle thermistor ADC correction

                  M307 H0 A153.5 C534.2 D6.7 B0 ; configure H0 (bed) heater model
                  M307 H1 A511.8 C169.0 D5.9 B0 ; configure H1 (print head) heater model

                  M143 S330 ; max print head temp
                  M143 H0 S140 ; max heat bed temp

                  ; tool definitions

                  M563 P0 D0 H1 ; define tool 0 [hot end]
                  G10 P0 S0 R0 ; tool 0 [hot end] operating & standby temps

                  M563 P2 H0 ; define tool [2??] [heat bed]
                  G10 P2 S0 R0 ; tool [2??] [heat bed] operating & standby temps

                  ; M572 D0 S0.20 ; extruder pressure advance [*current setting is from fusion3 - update as needed...]

                  T0 ; select hot end

                  ; Play startup beep
                  G4 P1000
                  G4 P50
                  M300 S3000 P250
                  G4 P250
                  G4 P50
                  M300 S3000 P250
                  G4 P350
                  G4 P50

                  *e_p

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