Core XY - Y Homing not functioning correctly



  • I am in the process of building a CoreXY 3D pritner (BLV MGN Cube), and although I am still waiting on a few components to turn up, I have enough wired up to enable an initial trial at homing my X and Y axis (waiting on BL touch before I can trial Z homing).

    The X axis is homing perfectly; moves towards end stop (situated at low end), engages once, backs off and re-homes at a slower speed.

    When I try to home the Y axis (located in the rear left corner, which I have interpreted to be the high end, assuming 0,0 in front left corner of bed?) the X carriage moves 10mm in the wrong direction and stops.

    After the Y axis has 'homed' DWC gives the y position as '350.00', even though it hasnt even moved towards the end switch, let alone touched it!

    I am using the same type of switch for X and Y axis, and X works fine with it set to 'Active High (NC)', so have got Y set to the same.

    Diagnostics I have carried out so far;

    • Both end stop lights switch on/ off when the the relevant switches are actuated or open
    • It doesn't make a difference if I hold the Y switch closed and manually release it during a homing action (clutching at straws to see if the switch is in fact NO)
    • If I change the setting in configurator to have the Y axis as 'Active Low(NO)', then the carriage moves in the right direction, continuously but crashes into the end stop and have to E-stop to stop the stepper from skipping steps.
    • I have switched the end stop plugs over (Y end switch into X port on board), and manually pressed the Y switch while the X axis is homing, and all worked fine.

    The fact that the X axis homes OK gives me hope that its either me being really stupid, or there could be a fault on the board, but given the diagnostic lights appear to be doing what they should, im not sure whats going on!

    Let me know if there are any other files needed to help diagnose; here is the home y config for starters.

    ; homey.g
    ; called to home the Y axis
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Thu Oct 08 2020 21:04:28 GMT+0100 (British Summer Time)
    G91 ; relative positioning
    G1 S2 Z5 F6000 ; lift Z relative to current position
    G1 S1 Y355 F1800 ; move quickly to Y axis endstop and stop there (first pass)
    G1 Y-5 F6000 ; go back a few mm
    G1 S1 Y355 F360 ; move slowly to Y axis endstop once more (second pass)
    G1 S2 Z-5 F6000 ; lower Z again
    G90 ; absolute positioning



  • To clarify; when i say 'the x carriage moves 10mm in the wrong direction', I mean the central member moves in the Y direction, but only for 10mm; the hot end stays stationary in the x direction


  • Moderator

    Please post your entire config.g and the results of M122.

    Since this is a new build it would be a good time to go with RRF3. The syntax of your homey would indicate that it's for RRF2. (uses S1/S2 instead of H1/H2)

    What firmware do you have installed?



  • @wharris87 said in Core XY - Y Homing not functioning correctly:

    After the Y axis has 'homed' DWC gives the y position as '350.00', even though it hasnt even moved towards the end switch, let alone touched it!

    use M119 to verify your endstop configuration
    https://duet3d.dozuki.com/Wiki/Gcode#Section_M119_Get_Endstop_Status

    press it by hand and issue the command and see if the status changes.



  • thanks for you replies - I have just updated firmware to 3.0

    M122 Result;

    M122
    === Diagnostics ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 3.0 running on Duet WiFi 1.02 or later
    Board ID: 08DGM-917NK-F2MS4-7J1F8-3SD6N-KHT8F
    Used output buffers: 3 of 24 (6 max)
    === RTOS ===
    Static ram: 30516
    Dynamic ram: 91624 of which 152 recycled
    Exception stack ram used: 224
    Never used ram: 8556
    Tasks: NETWORK(ready,756) HEAT(blocked,1340) MAIN(running,3740) IDLE(ready,156)
    Owned mutexes:
    === Platform ===
    Last reset 00:00:16 ago, cause: software
    Last software reset at 2020-10-09 08:39, reason: User, spinning module GCodes, available RAM 8164 bytes (slot 2)
    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
    Error status: 0
    Free file entries: 10
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest block write time: 0.0ms, max retries 0
    MCU temperature: min 29.5, current 29.8, max 30.3
    Supply voltage: min 24.2, current 24.4, max 24.5, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: standstill, SG min/max not available
    Driver 1: standstill, SG min/max not available
    Driver 2: standstill, SG min/max not available
    Driver 3: standstill, SG min/max not available
    Driver 4: standstill, SG min/max not available
    Date/time: 2020-10-09 08:39:36
    Cache data hit count 33674276
    Slowest loop: 1.58ms; fastest: 0.09ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Move ===
    Hiccups: 0(0), FreeDm: 169, MinFreeDm: 169, MaxWait: 0ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    === GCodes ===
    Segments left: 0
    Stack records: 1 allocated, 0 in use
    Movement lock held by null
    http is idle in state(s) 0
    telnet is idle in state(s) 0
    file is idle in state(s) 0
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 13.96ms; fastest: 0.00ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
    HTTP sessions: 1 of 8

    • WiFi -
      Network state is running
      WiFi module is connected to access point
      Failed messages: pending 0, notready 0, noresp 0
      WiFi firmware version 1.21
      WiFi MAC address 84:0d:8e:b3:b4:98
      WiFi Vcc 3.40, reset reason Turned on by main processor
      WiFi flash size 4194304, free heap 16040
      WiFi IP address 192.168.1.170
      WiFi signal strength -64dBm, reconnections 0, sleep mode modem
      Socket states: 0 0 0 0 0 0 0 0

    M119 results (x and y switches physically 'open');

    M119
    Endstops - X: not stopped, Y: at max stop, Z: at min stop, Z probe: at min stop

    M119 Results (x and y both physically 'closed');

    M119
    Endstops - X: at min stop, Y: at max stop, Z: at min stop, Z probe: at min stop

    config.g;

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Fri Oct 09 2020 08:35:11 GMT+0100 (British Summer Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"BLV mgn Cube" ; set printer name
    M669 K1 ; select CoreXY mode

    ; Network
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S1 ; physical drive 0 goes forwards
    M569 P1 S1 ; physical drive 1 goes forwards
    M569 P2 S1 ; physical drive 2 goes forwards
    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 X160.00 Y160.00 Z400.00 E418.00 ; set steps per mm
    M566 X720.00 Y720.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 X500.00 Y500.00 Z250.00 E1000.00 ; set accelerations (mm/s^2)
    M906 X1600 Y1600 Z1600 E1600 I30 ; 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 X350 Y350 Z350 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
    M574 Y2 S1 P"ystop" ; configure active-high endstop for high end on Y via pin ystop

    ; Z-Probe
    M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
    M557 X15:285 Y15:285 S20 ; define mesh grid

    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; 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
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; 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 ; disable bang-bang mode for heater and set PWM limit

    ; 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 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on
    M950 F2 C"fan1" Q500 ; create fan 2 on pin fan1 and set its frequency
    M106 P2 S1 H1 T45 ; set fan 2 value. Thermostatic control is turned on

    ; 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

    ; Miscellaneous
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss



  • The status of the y endstop is not changing when being pressed or not.
    This suggests a wiring issue.
    Time to break out your multimeter and get testing



  • @wharris87 said in Core XY - Y Homing not functioning correctly:

    have just updated firmware to 3.0

    please now update to 3.1.1



  • @jay_s_uk love a big of rewiring! but would this explain how/why the indicator light on the board changes when the switch is pressed/depressed?



  • @wharris87 no, it would not, so theres definitely something dodgy going on.
    Is it plugged into the correct port?



  • @jay_s_uk im assuming the light wouldnt be coming on if it was plugged into the wrong port?



  • The lights function regardless of whether the endstop is configured in firmware or not.
    maybe a photo would help?



  • To quote my initial post... 'its either the board, or im being really stupid'.

    It was the latter; i had the y stop plugged into the 'E0 Stop' port, which meant 'a' light was switching on/off, but it was the wrong one!; helps if i read the very helpful text etched onto the board!!

    Thanks for your help everyone!



  • @wharris87 Glad you got it sorted!


Log in to reply