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

    Core XY Inverted Axis & Endstop Issues

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    3
    4
    1.7k
    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.
    • Shivenundefined
      Shiven
      last edited by

      Hi All,
      Have built my 3d Printer (Hypercube - Core XY Design) and have been running it on RAMPs the last couple of weeks. All went well and i've got some decent calibration prints out of it. The printer itself is functional.

      I've just migrated my way over to the DuetWifi, and have been fiddling about with anything and everything i can find to get a handle on how it all comes together; I've found myself in a spot of bother however. Following this article in particular: https://duet3d.com/wiki/Configuring_RepRapFirmware_for_a_CoreXY_printer

      if i run;

      [[language]]
      M569 P0 S0
      M569 P1 S0
      
      G91 G1 S2 X10 F3000
      G91 G1 S2 Y10 F3000
      
      

      These appear to function as intended; origin at front left of cube, +y is towards the rear of the cube, +x is to the right of the cube and their respective negative counterparts. This suggests that my motors are running as i'd expect them to.

      I come along to the front page of the wifi control, click x+10, and y+10 triggers. As the code above (& the page) suggests that my motors are in their correct holsters, has anyone got an idea as to why that is the way it is? I'll attach my config below.

      I have one further issue, this is to do with Endstops however. As above, i hit Y-100 and then trip my Y endstop by hand. The system does come to a halt but there seems to be a significant delay between the trigger occurring and the system actually stopping. My X carriage was able to move 50mm or so before coming to a stop, AFTER the endstop had triggered.

      Configuration attached below, any help is much appreciated!

      [[language]]
      ; Configuration file for Duet WiFi (firmware version 1.17)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool on Sat Jul 22 2017 23:44:03 GMT+0000
      
      ; General preferences
      M111 S0 ; Debugging off
      G21 ; Work in millimetres
      G90 ; Send absolute coordinates...
      M83 ; ...but relative extruder moves
      M555 P2 ; Set firmware compatibility to look like Marlin
      
      M667 S1 ; Select CoreXY mode
      M208 X0 Y0 Z0 S1 ; Set axis minima
      M208 X200 Y190 Z155 S0 ; Set axis maxima
      
      ; Endstops
      M574 X1 Y1 Z1 S0 ; Define active low and unused microswitches
      M558 P0 X0 Y0 Z0 H5 F120 T6000 ; Set Z probe type to switch, the axes for which it is used and the probe + travel speeds
      G31 P600 X0 Y0 Z2.5 ; Set Z probe trigger value, offset and trigger height
      M557 X15:185 Y15:175 S20 ; Define mesh grid
      
      ; Drives
      M569 P0 S0 ; Drive 0 goes forwards
      M569 P1 S0 ; Drive 1 goes forwards
      M569 P2 S1 ; Drive 2 goes forwards
      M569 P3 S1 ; Drive 3 goes forwards
      M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
      M92 X87.489 Y87.489 Z4000 E420 ; Set steps per mm
      M566 X900 Y900 Z12 E120 ; Set maximum instantaneous speed changes (mm/min)
      M203 X6000 Y6000 Z180 E1200 ; Set maximum speeds (mm/min)
      M201 X500 Y20 Z250 E250 ; Set accelerations (mm/s^2)
      M906 X1400 Y1400 Z1400 E1400 I30 ; Set motor currents (mA) and motor idle factor in per cent
      M84 S30 ; Set idle timeout
      
      ; Heaters
      M143 S260 ; Set maximum heater temperature to 260C
      M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
      M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1
      
      ; Tools
      M563 P0 D0 H1 ; 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
      
      ; Network
      M550 PHypercube ; Set machine name
      M552 S1 ; Enable network
      M586 P0 S1 ; Enable HTTP
      M586 P1 S1 ; Enable FTP
      M586 P2 S0 ; Disable Telnet
      
      ; Fans
      M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
      M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
      M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on
      
      ; Custom settings are not configured
      
      

      Thanks!
      Shiven

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

        1. Try swapping the one of the XY motor directions as both motors on a corexy contribute to movement. Usually (but not always) a corexy is something like M569 P0 S0 and M569 P1 S1.

        2. When doing a move such as Y-100, it'll only stop when it senses the end stop if you tell it to by using the S1 parameter. The buttons on the web interface use the default which is S0 (do not sense end stop). So if you do a slow move by sending G1 Y-100 S1 F(something low) the hit the end stop switch, it should stop instantly. If you don't stipulate S1, it'll ignore the switch. When you tried it, the move probably carried on until it hit the axis minima or maxima.

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

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

          1. You need to put the G91 on a separate line when testing the motor directions:

          G91
          G1 S2 X10 F3000
          G1 S2 Y10 F3000

          2. In RRF versions prior to 1.19, the X and Y motors are swapped compared to most other firmwares. So you probably need to swap your X and Y motor connections. Or you could upgrade to firmware 1.10beta10 instead, but read https://duet3d.com/wiki/DuetWiFiFirmware_1.19beta first in that case.

          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
          • Shivenundefined
            Shiven
            last edited by

            Excellent, thanks guys.

            I've managed to resolve the issues as noted, here is my updated config.g for anyone lurking on this forum with the same issue. As stated each of these machines are different so ymmv.

            [[language]]
            ; Configuration file for Duet WiFi (firmware version 1.17)
            ; executed by the firmware on start-up
            ;
            ; generated by RepRapFirmware Configuration Tool on Sat Jul 22 2017 23:44:03 GMT+0000
            
            ; General preferences
            M111 S0 ; Debugging off
            G21 ; Work in millimetres
            G90 ; Send absolute coordinates...
            M83 ; ...but relative extruder moves
            M555 P2 ; Set firmware compatibility to look like Marlin
            
            M667 S1 ; Select CoreXY mode
            M208 X0 Y0 Z0 S1 ; Set axis minima
            M208 X200 Y190 Z155 S0 ; Set axis maxima
            
            ; Endstops
            M574 X1 Y1 Z1 S0 ; Define active low and unused microswitches
            M558 P0 X0 Y0 Z0 H5 F120 T6000 ; Set Z probe type to switch, the axes for which it is used and the probe + travel speeds
            G31 P600 X0 Y0 Z2.5 ; Set Z probe trigger value, offset and trigger height
            M557 X15:185 Y15:175 S20 ; Define mesh grid
            
            ; Drives
            M569 P0 S0 ; X Goes Forwards
            M569 P1 S1 ; Y Goes Backwards
            M569 P2 S0 ; Z Goes Backwards
            M569 P3 S1 ; Drive 3 goes forwards
            M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
            M92 X87.489 Y87.489 Z4000 E420 ; Set steps per mm
            M566 X900 Y900 Z12 E120 ; Set maximum instantaneous speed changes (mm/min)
            M203 X6000 Y6000 Z180 E1200 ; Set maximum speeds (mm/min)
            M201 X500 Y20 Z250 E250 ; Set accelerations (mm/s^2)
            M906 X1400 Y1400 Z1400 E1400 I30 ; Set motor currents (mA) and motor idle factor in per cent
            M84 S30 ; Set idle timeout
            
            ; Heaters
            M143 S260 ; Set maximum heater temperature to 260C
            M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
            M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1
            
            ; Tools
            M563 P0 D0 H1 ; 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
            
            ; Network
            M550 PHypercube ; Set machine name
            M552 S1 ; Enable network
            M586 P0 S1 ; Enable HTTP
            M586 P1 S1 ; Enable FTP
            M586 P2 S0 ; Disable Telnet
            
            ; Fans
            M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
            M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
            M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on
            
            ; Custom settings are not configured
            
            

            Off to fiddle!

            Thanks again~

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