Print head crashing into X/Y axis!



  • 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



  • 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.


  • administrators

    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.



  • 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.



  • 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



  • @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.



  • @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


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.